انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: geeksesi | javad در 25 اردیبهشت 1396، 03:10 قظ
-
سلام
ببخشید چجوری می تونم یک متنی رو به وسیله بش پیست کنم ؟
یعنی مثلا وقتی ctrl+shift+s رو می زنم کلمه ی سلام رو برام چاپ کنه توی اونجایی که هستم !
حالا یا دارم توی یه فایل متنی چیزی می نویسم با زدن این کلید این کار انجام بشه یا توی تلگرام یا .....
یا حتی اگه بگید که کلید ctrl+v چجوری یه چیزی رو از داخل کلیپ بورد چاپ می کنه ( یا پیست می کنه ) خیلی ممنون میشم ;)
-
نیازی به دکمههای صفحهکلید نیست. میتونی متنی که می خوای رونوشت بشه رو با موشی گزینش کنی و بعد بری اونجا که میخوای چسبونده بشه، دکمهٔ وسط موشی رو بزنی.
-
خب نه کارم یکم پیچیده تر از اینیه که گفتم توی این قسمتش گیر کردم !
خلاصش اینه که می خوام یه سری متن ها رو با دکمه های صفحه کلید چاپ کنم ( یا paste ) کنم !
یعنی مثلا کنترل + شیفت + L ===> سلام
کنترل + شیفت + M ===> خداحافظ
به طور مثال !
چطوری می تونم این کار رو انجام بدم ؟
-
سلام
میتونید از ابزاری مثل xdotools استفاده کنید و برای مدیریت clipboard هم از xclip استفاده کنید.
مثلا با استفاده از xdotools یه اسکریپت بنویسید که بنویسیه سلام ! و به وسیله میزکارتون برای اجرای اون اسکریپت شرتکات تعیین کنید
-
xdotool رو نصب کن:
sudo apt install xdotool
برو توی تنظیمات، قسمت صفحه کلید، میانبرهای شخصیسازی شده.
یک میانبر جدید تعریف کن با کلیدهای مورد نظرت و با یک دستوری به این شکل:
sh -c "xdotool type سلام"
-
سلام
میتونید از ابزاری مثل 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" این کار نمی کنه !
راستی بگم بالا رو دوبار تست کردم یعنی اول خط اولی رو گزاشتم و کار کرد
بعد پاک کردم دومی رو گزاشتم و کار نکرد !
ظاهرا توی خروجی دادن مشکل داره
-
من نمیدونم مدیرپنجره i3 چه جوری هست . استفاده نکردم (البته علاقه ای هم بهش ندارم :D)
ولی در کل این دو خط رو باید در اسکریپت بگذارید . خط اول معلوم میکنه چه پنجره ای فعال هست و خطا دوم سعی میکنه کلمه سلام رو در اون پنجره فعال بنویسه
دقت کنید هر دو باید پشت سر هم در اسکریپت شما با کلید شرتکات تعیین شده اجرا بشن.
window_pid=$(xdotool getactivewindow) #get active window PID
xdotool type --delay 400 --window $window_pid "سلام"
البته delay رو هم میتونید به سلیقه خودتون تغییر بدید بعد
-
من نمیدونم مدیرپنجره 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'