উত্তর:
wmctrl -lG
আপনাকে এরকম কিছু দেবে:
oli@bert:~$ wmctrl -lG
0x0384c0d5 -1 1590 1030 330 170 bert N/A
0x01200023 -1 0 0 3840 1200 bert x-nautilus-desktop
0x01000003 -1 3840 2352 1920 24 bert Bottom Expanded Edge Panel
0x01000028 -1 0 2352 1920 24 bert Bottom Expanded Edge Panel
0x0500003e 0 676 252 1404 1015 bert Chromium
0x02e00021 0 3860 160 1361 1084 bert Liferea
0x02000047 0 6650 940 506 683 bert Social broadcast messages
0x04600004 0 4546 460 1263 833 bert oli@bert: ~
এটির সাহায্যে আপনি এগুলি করতে পারেন grep
এবং cut
জ্যামিতির মানগুলি (কলাম 3-6) রেখে যান with
ম্যান পৃষ্ঠাটি উদ্ধৃত করার জন্য যাতে কলামগুলি কী তা আপনি বুঝতে পারেন:
-l
উইন্ডো ম্যানেজার দ্বারা পরিচালিত উইন্ডোগুলির তালিকা দিন। এক লাইন প্রতিটি উইন্ডোর আউটপুট, লাইনটি স্পেস বিভাজিত কলামগুলিতে বিচ্ছিন্ন করে। প্রথম কলামে সর্বদা হেক্সাডেসিমাল পূর্ণসংখ্যা হিসাবে উইন্ডো পরিচয় থাকে এবং দ্বিতীয় কলামে সর্বদা ডেস্কটপ নম্বর থাকে (একটি -1 একটি স্টিকি উইন্ডো সনাক্ত করতে ব্যবহৃত হয়)। যদি -p বিকল্পটি নির্দিষ্ট করা থাকে তবে পরবর্তী কলামে দশমিক পূর্ণসংখ্যার হিসাবে উইন্ডোটির পিআইডি থাকবে। যদি -G বিকল্পটি নির্দিষ্ট করা হয় তবে চারটি সংখ্যক কলামগুলি অনুসরণ করবে: এক্স-অফসেট, ওয়াই-অফসেট, প্রস্থ এবং উচ্চতা। পরবর্তী কলামে সর্বদা ক্লায়েন্ট মেশিনের নাম থাকে। লাইনের অবশিষ্ট অংশে উইন্ডো শিরোনাম রয়েছে (সম্ভবত শিরোনামে একাধিক স্পেস সহ)।
আমি বিশ্বাস করি wmctrl নেই না খোঁজার জন্য কোনো বিকল্প আছে সক্রিয় সরাসরি জানালা আইডি।
যদি কেউ এটি কীভাবে করতে জানেন তবে আমি জানতে আগ্রহী ..
এটি বলেছে, এখানে বেশ কয়েকটি স্ক্রিপ্ট রয়েছে যা সক্রিয় উইন্ডোর আকার মুদ্রণ করে।
এটি হ'ল: wmctrl + xdotool ... (সেড ব্যবহার করছে না)।
id=$(xdotool getactivewindow)
wmctrl -lpG | while read -a a; do w=${a[0]}; if (($((16#${w:2}))==id)) ; then echo -n "${a[5]} ${a[6]}"; break; fi; done
এটি: এক্সউইনিনফো + এক্সডটুল + সেড
xwininfo
অংশ x11-utils
set $(xwininfo -id $(xdotool getactivewindow) \
|sed -n -e "s/^ \+Width: \([0-9]\+\).*/\1/p" \
-e "s/^ \+Height: \([0-9]\+\).*/\1/p")
echo -n "$1 $2"
ব্যবহার করুন xprop
বা xwininfo
। উভয়ই ডিফল্টরূপে আসে, কোনও ইনস্টল প্রয়োজন হয় না
উভয় কমান্ড একটি নির্দিষ্ট উইন্ডো নির্বাচন করার জন্য কার্সারটিকে স্কোয়ার / ক্রসে পরিণত করে।
$ xprop _NET_WM_OPAQUE_REGION
_NET_WM_OPAQUE_REGION(CARDINAL) = 0, 0, 984, 377
$ xwininfo | awk -F ':' '/Width/ || /Height/{print $2}'
984
377
বিকল্পভাবে, এক্সআইডি আকারে কমান্ড লাইনে উইন্ডো নির্দিষ্ট করা যায়
$ xprop _NET_WM_OPAQUE_REGION -id 83886090
_NET_WM_OPAQUE_REGION(CARDINAL) = 0, 0, 984, 377
$ xwininfo -id 83886090 | awk -F ':' '/Width/ || /Height/{print $2}'
984
377
বিশেষত, xwininfo
স্ক্রিপ্টগুলির জন্য আমার দ্বারা সক্রিয়ভাবে ব্যবহৃত হয়েছে, যেমন এই এসকুবুন্টু প্রশ্নগুলিতে:
শেল স্ক্রিপ্টগুলি উইন্ডো সম্পর্কে জানে না বা যত্ন করে না। সর্বোত্তম তারা একটি টার্মিনালে চালায় (যা উইন্ডোতে প্রদর্শিত হতে পারে বা নাও হতে পারে)। আপনি যদি অক্ষরগুলিতে টার্মিনালের প্রস্থ এবং উচ্চতা পেতে চান তবে স্টটি ইউটিলিটিটি ব্যবহার করুন।
আমি tput cols
বেশ সুন্দরভাবে কাজ করতে পেলাম !
wmctrl
, আমরা কনসোলের কথা বলছি না তবে গ্রাফিক্যাল এনভায়রনমেন্ট উইন্ডো।