বাশ থেকে মাউস বোতামের রাজ্য পাওয়ার কোনও উপায় আছে কি? এক্সডটুল কেবল মাউসের অবস্থান পেতে পারে।
আমি এমন কিছু সেট আপ করতে চাই যেখানে আমি কোনও নিয়ম সংজ্ঞায়িত করতে পারি যেখানে যখন মাউস বোতাম টিপানো হয়, একটি স্ক্রিপ্ট কার্যকর করা যায়।
বাশ থেকে মাউস বোতামের রাজ্য পাওয়ার কোনও উপায় আছে কি? এক্সডটুল কেবল মাউসের অবস্থান পেতে পারে।
আমি এমন কিছু সেট আপ করতে চাই যেখানে আমি কোনও নিয়ম সংজ্ঞায়িত করতে পারি যেখানে যখন মাউস বোতাম টিপানো হয়, একটি স্ক্রিপ্ট কার্যকর করা যায়।
উত্তর:
xinput --query-state <mouse_id>
এটি আপনাকে সমস্ত মাউস বোতামের জন্য একটি রাজ্য দেয় যা দেখতে দেখতে এটি:
2 classes :
ButtonClass
button[1]=up
button[2]=up
button[3]=up
button[4]=up
button[5]=up
button[6]=up
button[7]=up
button[8]=up
button[9]=up
button[10]=up
button[11]=up
button[12]=up
button[13]=up
button[14]=up
button[15]=up
button[16]=up
ValuatorClass Mode=Relative Proximity=In
valuator[0]=313
valuator[1]=667
valuator[2]=-20
মাউস_আইডি থেকে প্রাপ্ত করা যেতে পারে:
xinput --list
এখানে একটি ছোট মাউস বোতাম প্রহরী স্ক্রিপ্ট:
#!/bin/bash
MOUSE_ID=$(xinput --list | grep -i -m 1 'mouse' | grep -o 'id=[0-9]\+' | grep -o '[0-9]\+')
STATE1=$(xinput --query-state $MOUSE_ID | grep 'button\[' | sort)
while true; do
sleep 0.2
STATE2=$(xinput --query-state $MOUSE_ID | grep 'button\[' | sort)
comm -13 <(echo "$STATE1") <(echo "$STATE2")
STATE1=$STATE2
done
আপনার MOUSE_ID সনাক্তকরণ স্ট্রিং ('মাউস') অন্য কোনও কিছুতে পরিবর্তন করতে হবে।
xinput --list
আমাকে দেয় X Input extension not available.
। : এই বিষয়টি জন্য দুঃখজনকভাবে গুগল যা কিছু আমার ক্ষেত্রে সহায়ক ভাগাভাগি করে না Xvnc4
একটি ন্যূনতম ডেবিয়ান VM- র হবে। সম্ভবত আমি ভাগ্যের বাইরে আছি
xev
এক্স পরিবেশের মধ্যে আপনার মাউসের বোতামগুলির অবস্থা জানতে আপনি কমান্ড লাইন সরঞ্জামটি ব্যবহার করতে পারেন ।
$ xev
...
ButtonPress event, serial 36, synthetic NO, window 0x3800001,
root 0x86, subw 0x0, time 319064320, (164,14), root:(166,101),
state 0x0, button 1, same_screen YES
ButtonRelease event, serial 36, synthetic NO, window 0x3800001,
root 0x86, subw 0x0, time 319064439, (164,14), root:(166,101),
state 0x100, button 1, same_screen YES
ButtonPress event, serial 36, synthetic NO, window 0x3800001,
root 0x86, subw 0x0, time 319065208, (164,14), root:(166,101),
state 0x0, button 1, same_screen YES
ButtonRelease event, serial 36, synthetic NO, window 0x3800001,
root 0x86, subw 0x0, time 319065337, (164,14), root:(166,101),
state 0x100, button 1, same_screen YES
ButtonPress event, serial 36, synthetic NO, window 0x3800001,
root 0x86, subw 0x0, time 319066059, (164,14), root:(166,101),
state 0x0, button 1, same_screen YES
তবে এই তথ্যটি আপনাকে আংশিক সমাধানে নিয়ে আসে। উপরে থেকে আপনি কী কী তথ্যটি বের করতে চান তা হ'ল কোন নম্বরটি আপনার মাউসের একটি নির্দিষ্ট বোতামের সাথে সম্পর্কিত। আমার উদাহরণে আমি বাম বোতাম টিপছি, "বাটন 1"।
আপনি একটি বোতাম টিপে যাওয়ার সাথে সম্পর্কিত এমন একটি ক্রিয়া সেটআপ করতে এই সরঞ্জামটি ব্যবহার করতে পারেন। আপনি এমন একটি নিয়মও সেটআপ করতে পারেন যার জন্য কী প্রেস বা এমন কি + বোতামের সাথে একসাথে চাপা প্রয়োজন।
আপনাকে প্রথমে প্যাকেজগুলি xbindkeys ইনস্টল করা আছে তা নিশ্চিত করতে হবে।
তারপরে একটি টেমপ্লেট xbindkeys কনফিগারেশন ফাইল তৈরি করতে আপনাকে কেবল একবারে নিম্নলিখিত কমান্ডটি চালাতে হবে।
$ xbindkeys --defaults > /home/saml/.xbindkeysrc
তৈরি করা ফাইলের সাহায্যে আপনি এটি কোনও পাঠ্য সম্পাদককে খুলতে এবং এই জাতীয় নিয়ম যুক্ত করতে পারেন:
"xterm"
b:3
এই নিয়মে বলা হয়েছে যে xterm
3 বাটনটি টিপলে আমরা প্রোগ্রামটি চালাতে চাই । "বোতাম 3" হ'ল আমার ডান মাউস বোতাম।
উপরোক্ত পরিবর্তনটি করে আমাদের xbindkeys এটি ইতিমধ্যে চালু থাকলে মেরে ফেলতে হবে এবং তারপরে এটি পুনরায় চালু করতে হবে।
$ killall xbindkeys
$ xbindkeys
এখন এই চলমান যে কোনও সময় আমি মাউসের ডান বোতামে ক্লিক করলে একটি xterm
কার্যকর হবে uted
আপনার কেক বোতাম টিপতে ইভেন্টটি না খেয়ে থাকতে পারে না। যদি আপনি চান যে আপনার স্ক্রিপ্টটি মাউস ইভেন্টটি গ্রহণ করে, তবে মাউস ইভেন্টটি অন্য কোনও অ্যাপ্লিকেশনের পরিবর্তে আপনার স্ক্রিপ্টে প্রেরণ করা হবে - এর অর্থ আপনার স্ক্রিপ্টটি মাউস ইভেন্টটি গ্রহন করতে হবে। যদি আপনার স্ক্রিপ্ট ইভেন্টটির দাবি না করে তবে যে উইন্ডোটি পাওয়া উচিত তা এটি পেয়ে যায়।
যদি আপনি চান তবে আপনি মাউস ইভেন্টটি ফোকাস উইন্ডো বা উইন্ডোতে প্রদত্ত স্থানাঙ্কগুলিতে ( xdotool click
) এ পুনরায় পাঠাতে পারেন ।
আপনি নির্দিষ্ট মাউস বা কীবোর্ড ইভেন্টগুলিতে স্ক্রিপ্ট সম্পাদন করতে XBindKeys ব্যবহার করতে পারেন ।
MouseButton1Down
এবংMouseButton1Up
ঘটনাগুলি ক্ষমা করে দেন।