এক্সডটুল উইন্ডো স্ট্যাক থেকে কীভাবে উইন্ডো আইডি পাবেন


12

আমার সক্রিয় বা ফোকাসযুক্ত উইন্ডোর আইডি দরকার। আমি xdotoolকমান্ড ব্যবহার করার চেষ্টা করি । আদেশ আছে:

xdotool getactivewindow

ফলাফল উইন্ডো স্ট্যাক এ সংরক্ষণ করা হয়। আমি উইন্ডো আইডিটি এই উইন্ডো স্ট্যাক থেকে পেতে চাই। হুকুম

xdotool getactivewindow getwindowpid

আমাকে সন্তুষ্ট করে না আমি প্রক্রিয়া আইডি দ্বারা উইন্ডো আইডি পেতে চাই না।

উত্তর:


11

আমার মনে xdotool getactivewindowহয় আপনি যা চান - আপনি কি চেষ্টা করে দেখেছেন?

কমান্ড লাইনে আর কোনও xdotool সাব কম্যান্ড না থাকলে এটি উইন্ডো আইডিটি (উইন্ডো স্ট্যাক থেকে) মুদ্রণ করে।

ইন xdotool getactivewindow getwindowpidউদাহরণস্বরূপ, getactivewindowজানালা স্ট্যাক আইডি রাখে, এবং getwindowpidPID, ক্যোয়ারীতে এই আইডি ব্যবহার করে। নোট করুন যে টার্মিনালে এই কমান্ডটি চালানো সর্বদা টার্মিনাল উইন্ডোর আইডি ফিরিয়ে দেবে, কারণ এটি সক্রিয় রয়েছে। অন্য উইন্ডো থেকে আইডি পাওয়ার জন্য চেষ্টা করুন sleep 2s && xdotool getactivewindowএবং দুটি সেকেন্ডের সময়কালে আগ্রহের উইন্ডোটি নির্বাচন করুন।


xdotoolউইন্ডো হ্যান্ডলিংয়ের জন্য অন্যান্য সরঞ্জামগুলি ব্যবহার করার সময় একটি জটিলতা রয়েছে :

যদিও xdotoolআউটপুট ব্যবহার windwo ID র জন্য সংখ্যার দশমিক, অন্যান্য অধিকাংশ সরঞ্জাম ব্যবহার হেক্সাডেসিমেল আউটপুট সংখ্যা (তারা সাধারণত ইনপুট জন্য উভয় সমর্থন)।

উদাহরণস্বরূপ, আপনি যদি উইন্ডোটি সহ সন্ধান করেন তবে আপনি সমস্ত উইন্ডো তালিকাভুক্ত xdotool getactivewindowকরার ফলাফল খুঁজে পাবেন না xwininfo -root -tree। এটি প্রথমে একটি হেক্সাডেসিমাল সংখ্যায় রূপান্তর করা দরকার:

$ xdotool getactivewindow                              
69206716
$ printf 0x%x 69206716                  
0x42002bc
$ xwininfo -root -tree | grep 0x42002bc
           0x42002bc (has no name): ("konsole" "Konsole")  1154x781+0+0  +1289+498


দশমিককে হেক্সাডেসিমালে রূপান্তর করা:

printf 0x%x 69206716

হেক্সাডেসিমালকে দশমিক রূপান্তর করা:

printf %i 0x42002bc

আমি xdotool getactivewindowকমান্ড চেষ্টা করেছি এবং সমস্যাটি হ'ল এটি টার্মিনালে ফলাফল মুদ্রণ করে না। এটি উইন্ডো স্ট্যাকের ফলাফল সংরক্ষণ করে। এই কমান্ডের কিছু সংখ্যা ছাপে কিন্তু এটি উইণ্ডো আই (যেমন 35651588) নয়
Mariusz

কেন আপনি 35651588 উইন্ডো আইডি না বলে মনে করেন?
ভোলকার সিগেল

হ্যাঁ, আমি মনে করি যে 35651588 উইন্ডো আইডি নয়। আপনি উইন্ডোজ আইডি দেখতে পারেন এক্সউইনিনফো কমান্ড দ্বারা, উদাহরণস্বরূপ xwininfo -root -tree- এই কমান্ডটি সমস্ত উইন্ডো এবং উইন্ডোজকে অন্য ধরণের সংখ্যাযুক্ত প্রিন্ট করে।
মারিউজ

1
xwininfoহেক্সাডেসিমাল সংখ্যা হিসাবে উইন্ডো আইডি দেখায়, এবং এক্সডটুল দশমিক সংখ্যা দেখায়, তবে এটি ঠিক একই।
ভোলকার সিগেল

তুমি ঠিক. 35651588 = 0x2200004। xwininfo -root -tree | grep 2200004 0x2200004 "user@host:~": ("gnome-terminal" "Gnome-terminal") 1680x974+0+26 +0+51
মারিউজ

1

এই আদেশটি আমার পক্ষে কাজ করে

xdotool key --window "$(xdotool getactivewindow)" F5

xdotool সংস্করণ 3.20160805.1


xdotool getactivewindow key F5একই ফল প্রকাশ করা উচিত
user3804598
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.