Xbindkeys ব্যবহার করার আপনার ধারণাটি ভাল শোনাচ্ছে:
আপনার .xbindkeysrc
নতুন কি-বাইন্ডিং যুক্ত করুন:
"app_specific_keys.sh"
Control+s
"app_specific_keys.sh"
আপনি চাপলে এটি কার্যকর হবে ctrl+s
।
এখন আপনাকে স্ক্রিপ্টটি সংজ্ঞায়িত করতে হবে। এটি সক্রিয় উইন্ডোটি পাওয়া উচিত এবং সেই অ্যাপ্লিকেশনটির নামটিতে বর্তমানে ফোকাস রয়েছে:
xprop -id `xdotool getactivewindow` |awk '/WM_CLASS/{print $4}'
এটি কৌশলটি করবে: এটি সক্রিয় উইন্ডোটির জন্য এক্সডটুলকে জিজ্ঞাসা করবে, তারপরে প্রদত্ত আইডির সাথে উইন্ডোটির সমস্ত বৈশিষ্ট্যের জন্য এক্সপ্রপ জিজ্ঞাসা করবে এবং তারপরে অ্যাপ্লিকেশনটির নামটির (খুব প্রকৃতপক্ষে এটির) খুব ভার্বোজ আউটপুট হ্রাস করে। আপনি যদি এটি কোনও জিনোম-টার্মিনালে চালান তবে আপনি পাবেন
"Gnome-terminal"
আপনার অ্যাপ্লিকেশনগুলির জন্য এখন আপনাকে ক্রিয়া সংজ্ঞায়িত করতে হবে:
if [ $N = '"Gnome-terminal"' ]; then
xdotool key --clearmodifiers ctrl+s
else
xdotool key --clearmodifiers ctrl+d
fi
সুতরাং একসাথে, স্ক্রিপ্টটি এর "app_specific_keys.sh"
মতো দেখতে পেল :
#!/bin/bash
W=`xdotool getactivewindow`
S1=`xprop -id ${W} |awk '/WM_CLASS/{print $4}'`
S2='"Gnome-terminal"'
if [ $S1 = $S2 ]; then
xdotool key --clearmodifiers ctrl+d
else
xdotool key --clearmodifiers ctrl+s
fi
এটি কাজ করা উচিত , তবে এই প্রশ্নের হিসাবে , আমাকে স্বীকার করতে হবে যে এটি তা নয়। সম্ভবত একটি কারণ কমিজ, ইউনিটি, গ্লোবাল মেনু --clearmodifiers
এক্সডটুল বিকল্পটি দিয়ে ভাল কাজ করে না । একটি কার্যসংক্রান্ত আপনার ইন: oder আপনার স্ক্রিপ্টের সামনে একটি ঘুম যোগ করার জন্য কী নিজেকে মুক্তি পাবে হবে .xbindkeysrc
এই keybinding পরিবর্তন:
"sleep 0.5; app_specific_keys.sh"
Control+s
সাইডেনোট হিসাবে: এটি যদি কাজ করে না তবে আপনি যদি টার্মিনালটিতে চালিত প্রোগ্রামগুলির জন্য কীগুলি পরিবর্তন করতে চান (যেমন কনসোল মোডে vi বা ইমাস)। প্রত্যাবর্তিত অ্যাপ্লিকেশন ক্লাসটি এখনও "জিনোম-টার্মিনাল" হবে।
আশা করি এইটি কাজ করবে.