কমান্ড লাইনের একটি উইন্ডোর অবস্থান (ডেস্কটপে) কীভাবে খুঁজে পাব?


19

আমি কীবোর্ড শর্টকাটগুলির মাধ্যমে আমার উইন্ডো পরিচালনা করতে সহায়তা করার জন্য একটি ছোট স্ক্রিপ্ট লেখার চেষ্টা করছি।

আমি যা চাই তা করতে, আমাকে "সক্রিয়" (দৃষ্টি নিবদ্ধ করা) উইন্ডোর বর্তমান অবস্থান এবং আকারটি সন্ধান করতে সক্ষম হতে হবে। অবস্থান অনুসারে, আমি ডেস্কটপের উইন্ডোটির এক্স, ওয়াই স্থানাঙ্কিক বলতে চাই এবং আকার অনুসারে আমি উইন্ডোর উচ্চতা এবং প্রস্থকে বুঝি।

কোনও কমান্ড লাইন ইউটিলিটি রয়েছে যা এই তথ্যটি আনতে পারে?

উত্তর:


22

আপনি এই কমান্ডটি ব্যবহার করে বর্তমান সক্রিয় উইন্ডোর সমস্ত তথ্য পেতে পারেন:

xwininfo -id $(xprop -root | awk '/_NET_ACTIVE_WINDOW\(WINDOW\)/{print $NF}')

অথবা

xwininfo -id $(xdpyinfo | grep focus | grep -E -o 0x[0-9a-f]+)

আপনার প্রয়োজনীয় সমন্বয়গুলির জন্য আউটপুটকে কেবল পার্স করুন। উইন্ডোজের সাথে ইন্টারঅ্যাক্ট করার সময় এখানে কিছু দরকারী কমান্ড রয়েছে:

  • xwininfo আপনাকে আপেক্ষিক এবং পরম জ্যামিতি দেবে।
  • xprop আপনাকে প্রচুর তথ্য জানাবে, উইন্ডোটি সক্রিয় রয়েছে কিনা তা সহ, তবে এটি জ্যামিতি নয় including
  • xdpyinfo আপনাকে সক্রিয় উইন্ডোর আইডিও পাবেন তবে অতিরিক্ত কোনও তথ্য নেই।
  • ডাব্লুএমটিআরএল আপনাকে উইন্ডোজ সম্পর্কিত তথ্যের একটি তালিকা পেয়েছে এবং আপনাকে পরিবর্তনের জন্য সক্রিয় উইন্ডো নির্বাচন করার অনুমতি দেবে, তবে তথ্য নয়।

উদাহরণস্বরূপ সক্রিয় উইন্ডোর শিরোনামটিকে "নতুন নাম" এ পরিবর্তন করতে:

wmctrl -r :ACTIVE: -N "New Name"

অথবা সক্রিয় উইন্ডোর অবস্থান পরিবর্তন করতে:

wmctrl -r :ACTIVE: -e 0,20,20,200,400

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


1
আমি কেবল উল্লেখ করতে চাই যে দ্বিতীয় কমান্ড চালানোর সময় আমি বিভিন্ন ফলাফল পেয়েছি। প্রথমটি যেমনটি আমি প্রত্যাশা করতাম তেমন কাজ করে।
টিএম

1
আমি আর্চ ব্যবহার করি তবে এটি ভবিষ্যতে কাউকে এখানে সহায়তা করতে পারে। 1 ম আমার পক্ষে কাজ করে নি, দ্বিতীয়টি সম্ভবত ডাব্লুএম এর কারণে সঠিক মাত্রা সরবরাহ করে নি। তবে দুজনের সমন্বয় কাজ করেছিল। xwininfo -id $(xprop -root | grep "_NET_ACTIVE_WINDOW(WINDOW)" | grep -Eo "0x[0-9a-f]{2,}")
সেভ

ধন্যবাদ! তবে আমি প্রথম দুটি মন্তব্যে একমত। দ্বিতীয় কমান্ডটি xwininfo -id $(xdpyinfo | grep focus | grep -E -o 0x[0-9a-f]+)আমার টার্মিনালের একটি শিশু উইন্ডো (নাম নেই) দেখায়। যখন আমি কেবল xdpyinfo | grep focusপাই focus: window 0x435b877, revert to Parentএবং 0x435b877 হ'ল প্রথম কমান্ড (যা আমার পক্ষে কাজ করে) দ্বারা ফিরে আসা উইন্ডোর আইডি। এটি বিশ্বস্ত 14.04.1 এলটিএস-এ রয়েছে
nealmcb

8

"এক্সডটুল" দিয়ে আপনি কীবোর্ড বা মাউস ইভেন্টগুলি ব্যবহার করে উইন্ডোজের সাথে সহজেই ইন্টারঅ্যাক্ট করতে পারেন।

CtrlCসক্রিয় উইন্ডোতে একটি ক্রম প্রেরণের উদাহরণ :

xdotool getwindowfocus key ctrl+c # Sends CTRL+C to the current window.

আপনার যদি সত্যই উইন্ডো অবস্থানের প্রয়োজন হয়:

eval $(xdotool getmouselocation --shell); echo $X $Y

আরও ক্রিয়া / বিকল্পের জন্য ম্যান পৃষ্ঠাটি পরীক্ষা করুন ।


আকর্ষণীয়, তবে আমি পেয়েছি Error: Invalid key sequence 'ctrl-c'
l0b0
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.