انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: geeksesi | javad در 25 اردیبهشت 1396، 03:10 ق‌ظ

عنوان: کپی پیست کردن متن با بش (حل شد )
ارسال شده توسط: geeksesi | javad در 25 اردیبهشت 1396، 03:10 ق‌ظ
سلام
ببخشید چجوری می تونم یک متنی رو به وسیله بش پیست کنم ؟

یعنی مثلا وقتی ctrl+shift+s رو می زنم کلمه ی سلام رو برام چاپ کنه توی اونجایی که هستم !
حالا یا دارم توی یه فایل متنی چیزی می نویسم با زدن این کلید این کار انجام بشه یا توی تلگرام یا .....

یا حتی اگه بگید که کلید  ctrl+v چجوری یه چیزی رو از داخل کلیپ بورد چاپ می کنه ( یا پیست می کنه ) خیلی ممنون میشم  ;)
عنوان: پاسخ : کپی پیست کردن متن با بش
ارسال شده توسط: دانیال بهزادی در 25 اردیبهشت 1396، 09:31 ق‌ظ
نیازی به دکمه‌های صفحه‌کلید نیست. می‌تونی متنی که می خوای رونوشت بشه رو با موشی گزینش کنی و بعد بری اون‌جا که می‌خوای چسبونده بشه، دکمهٔ وسط موشی رو بزنی.
عنوان: پاسخ : کپی پیست کردن متن با بش
ارسال شده توسط: geeksesi | javad در 25 اردیبهشت 1396، 10:27 ق‌ظ
خب نه کارم یکم پیچیده تر از اینیه که گفتم توی این قسمتش گیر کردم !
خلاصش اینه که می خوام یه سری متن ها رو با  دکمه های صفحه کلید چاپ کنم ( یا paste ) کنم !

یعنی مثلا کنترل + شیفت + L ===> سلام
کنترل + شیفت + M ===>  خداحافظ

به طور مثال !

چطوری می تونم این کار رو انجام بدم ‌؟‌
عنوان: پاسخ : کپی پیست کردن متن با بش
ارسال شده توسط: علیرضاامیرصمیمی در 25 اردیبهشت 1396، 11:11 ق‌ظ
سلام

میتونید از ابزاری مثل xdotools استفاده کنید و برای مدیریت clipboard هم از xclip استفاده کنید.
مثلا با استفاده از xdotools یه اسکریپت بنویسید که بنویسیه سلام ! و به وسیله میزکارتون برای اجرای اون اسکریپت شرتکات تعیین کنید
عنوان: پاسخ : کپی پیست کردن متن با بش
ارسال شده توسط: M!lad در 25 اردیبهشت 1396، 01:08 ب‌ظ
xdotool رو نصب کن:

sudo apt install xdotool
برو توی تنظیمات، قسمت صفحه کلید، میانبرهای شخصی‌سازی شده.
یک میانبر جدید تعریف کن با کلیدهای مورد نظرت و با یک دستوری به این شکل:

sh -c "xdotool type سلام"
عنوان: پاسخ : کپی پیست کردن متن با بش
ارسال شده توسط: geeksesi | javad در 25 اردیبهشت 1396، 01:37 ب‌ظ
سلام

میتونید از ابزاری مثل xdotools استفاده کنید و برای مدیریت clipboard هم از xclip استفاده کنید.
مثلا با استفاده از xdotools یه اسکریپت بنویسید که بنویسیه سلام ! و به وسیله میزکارتون برای اجرای اون اسکریپت شرتکات تعیین کنید


سلام اقای امیر صمیمی :)
خب من میز کارم i3 هست
و این رو گزاشتم توی فایل کانفیگ
bindsym $mod+Shift+n exec "xdotool type slm"


ولی کار نمی کنه‌!

و جالب تر این جاست
وقتی می خوام با  xclip همین کار رو بکنم :
bindsym $mod+Shift+n exec "echo hi | xclip"     این دستور کار می کنه
 ولی
 bindsym $mod+Shift+n exec "xclip -o"      این کار نمی کنه !

راستی بگم بالا رو دوبار تست کردم یعنی اول خط اولی رو گزاشتم و کار کرد

بعد پاک کردم دومی رو گزاشتم و کار نکرد !

ظاهرا توی خروجی دادن مشکل داره
عنوان: پاسخ : کپی پیست کردن متن با بش
ارسال شده توسط: علیرضاامیرصمیمی در 25 اردیبهشت 1396، 03:14 ب‌ظ
من نمیدونم مدیرپنجره i3 چه جوری هست . استفاده نکردم (البته علاقه ای هم بهش ندارم :D)
ولی در کل این دو خط رو باید در اسکریپت بگذارید . خط اول معلوم میکنه چه پنجره ای فعال هست و خطا دوم سعی میکنه کلمه سلام رو در اون پنجره فعال بنویسه
دقت کنید هر دو باید پشت سر هم در اسکریپت شما با کلید شرتکات تعیین شده اجرا بشن.


window_pid=$(xdotool getactivewindow) #get active window PID

xdotool type --delay 400 --window $window_pid "سلام"


البته delay رو هم میتونید به سلیقه خودتون تغییر بدید بعد
عنوان: پاسخ : کپی پیست کردن متن با بش
ارسال شده توسط: geeksesi | javad در 26 اردیبهشت 1396، 01:06 ق‌ظ
من نمیدونم مدیرپنجره i3 چه جوری هست . استفاده نکردم (البته علاقه ای هم بهش ندارم :D)
ولی در کل این دو خط رو باید در اسکریپت بگذارید . خط اول معلوم میکنه چه پنجره ای فعال هست و خطا دوم سعی میکنه کلمه سلام رو در اون پنجره فعال بنویسه
دقت کنید هر دو باید پشت سر هم در اسکریپت شما با کلید شرتکات تعیین شده اجرا بشن.


window_pid=$(xdotool getactivewindow) #get active window PID

xdotool type --delay 400 --window $window_pid "سلام"


البته delay رو هم میتونید به سلیقه خودتون تغییر بدید بعد

سلام
این کد شما کار نکرد
ولی یکی از دوستان توی irc راهنمایی کردن با  این  دستور مشکل حل شد :)‌

bindsym --release $mod+Control+t    exec --no-startup-id xdotool type --clearmodifiers 'slm'