অ্যাপ্লিকেশন-নির্দিষ্ট কী সমন্বয় রিম্যাপিং?


18

আমি বিশ্বব্যাপী উবুন্টুতে কী সংমিশ্রণগুলি রিম্যাপ করার বিভিন্ন উপায় সম্পর্কে অবগত (যেমন, বিশ্বব্যাপী Ctrl + S কে Ctrl + D বা কোনও কিছু প্রেরণে রিম্যাপ করা ), যেমন এক্সবিনডেস অ্যাপ্লিকেশন। আমি কি প্রয়োজন, যদিও, এই কাজ করতে একটি উপায় শুধুমাত্র একটি নির্দিষ্ট অ্যাপ্লিকেশনের জন্য । উদাহরণস্বরূপ, "Ctrl + D প্রেরণের জন্য Ctrl + S রিম্যাপ করার মতো কিছু, তবে কেবল ক্রোমে "। এই কাজ করা সম্ভব কোনো উপায় আছে কি?


আপনি এই সুতোটি পড়েছেন ? আমি এটি চেষ্টা করে দেখিনি, তবে আপনি যা সন্ধান করছেন তা আমার কাছে খুব স্পষ্ট মনে হয়েছে। যদিও আমি একটি সঠিক উত্তর লিখতে এটি সম্পর্কে জড়িত জানি না।
লুব্রিক

উত্তর:


12

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 বা ইমাস)। প্রত্যাবর্তিত অ্যাপ্লিকেশন ক্লাসটি এখনও "জিনোম-টার্মিনাল" হবে।

আশা করি এইটি কাজ করবে.


1
এটি ঠিক সূক্ষ্ম কাজ শেষ। আমি কীড্রোকগুলি প্রেরণের জন্য এক্সডটুল ব্যবহার করি নি, আমি সবেমাত্র ব্যবহার করেছি xvkbd -xsendevent -text "\Cs"। আপনি xdotool এর সাথে যে সমস্যাগুলি দেখছিলেন তাতে এটি ভুগছে বলে মনে হচ্ছে না।
ডেরেক থার্ন

এটা পছন্দ একটি কী কল নিজেই করতে, সম্ভব নয় fকলিং xdotool key f। এটি করার জন্য এখনও একটি উপায় অনুসন্ধান করা হচ্ছে।
phil294

হা, অবশেষে একটি পাওয়া গেল! xdotool type --window $(xdotool getwindowfocus) [keys] - উইন্ডো বিকল্পটি ব্যবহার করে এবং বর্তমানে সক্রিয় উইন্ডোতে পাঠানো পুনরাবৃত্ত আচরণের দিকে পরিচালিত করবে না।
ফিলি 294

2

অটোকি উবুন্টুর জন্য অটোহোটির মতো। আপনি পাইথনে স্ক্রিপ্টগুলি লিখতে পারেন এবং কীবোর্ড শর্টকাট এবং একটি উইন্ডোজ ফিল্টারের মাধ্যমে এটি সম্পাদন করতে পারেন (এটি সিউডো-অ্যাপ্লিকেশন নির্দিষ্ট করে তোলে)। আপনার স্ক্রিপ্টটি কীবোর্ড এবং মাউস ইভেন্টগুলি নিয়ন্ত্রণ করতে পারে এবং এমনকি উইন্ডোটিকে একটি অতিরিক্ত স্পর্শ হিসাবে ঘুরিয়ে দিতে পারে।


autokeyxbindkeysউইন্ডো সনাক্তকরণ মোড চালু থাকলেও তাত্ক্ষণিক পদক্ষেপ নেওয়া তার চেয়ে দ্রুততর উপায় । ডাউনসাইড: মাউস বোতাম অ্যাসাইনমেন্টগুলি কাজ করছে না বলে মনে হচ্ছে (আমি মনে করি এটি একটি ত্রুটি)
phil294
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.