শেলের মধ্যে উইন্ডো আকার পান


18

আমি একটি শেল স্ক্রিপ্ট থেকে বর্তমান উইন্ডোর আকার পেতে চাই ...

সত্যিই আর বেশি কিছু বলা যায় না ... আমি wmctrl ব্যবহার করতে পছন্দ করব use

উত্তর:


23
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 বিকল্পটি নির্দিষ্ট করা হয় তবে চারটি সংখ্যক কলামগুলি অনুসরণ করবে: এক্স-অফসেট, ওয়াই-অফসেট, প্রস্থ এবং উচ্চতা। পরবর্তী কলামে সর্বদা ক্লায়েন্ট মেশিনের নাম থাকে। লাইনের অবশিষ্ট অংশে উইন্ডো শিরোনাম রয়েছে (সম্ভবত শিরোনামে একাধিক স্পেস সহ)।


আমি যে ব্যবহার করা হবে!
অ্যালান

1
আপনার কম্পিউটারটিকে বার্ট বলা হয় এমনভাবে আমি পছন্দ করি :)
drnessie

5

আমি বিশ্বাস করি 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"

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স্ক্রিপ্টগুলির জন্য আমার দ্বারা সক্রিয়ভাবে ব্যবহৃত হয়েছে, যেমন এই এসকুবুন্টু প্রশ্নগুলিতে:


তিনি সাধারণ, একটি উদাহরণ যুক্ত করুন;)
এবি

তাদের এক বছর পরে যুক্ত করা হয়েছে;) তবে এর চেয়ে ভাল পরে কখনও হবে না, তাই না?
সের্গেই কোলোডিয়াজনি

0

শেল স্ক্রিপ্টগুলি উইন্ডো সম্পর্কে জানে না বা যত্ন করে না। সর্বোত্তম তারা একটি টার্মিনালে চালায় (যা উইন্ডোতে প্রদর্শিত হতে পারে বা নাও হতে পারে)। আপনি যদি অক্ষরগুলিতে টার্মিনালের প্রস্থ এবং উচ্চতা পেতে চান তবে স্টটি ইউটিলিটিটি ব্যবহার করুন।


2
নিশ্চয় কোনও শেল স্ক্রিপ্ট কোনওভাবে X ক্লায়েন্টকে তাদের জ্যামিতির জন্য জিজ্ঞাসা করতে পারে? অন্যথায় এক্স অ্যাপস কীভাবে লেখা হবে?
djeikyb

@ ডিজেইকিব তাদের এক্স ক্লায়েন্ট হতে এবং এক্স সার্ভারের সাথে যোগাযোগ করার কথা লেখা হয়েছে are শেল স্ক্রিপ্টগুলি শেলটিতে চালিত হয়, যা এমন একটি পরিবেশে
চলতেও

2
বোধগম্য, হ্যাঁ তবে কাজের ফাঁকে আছে! রেপো থেকে প্যাকেজ wmctrl ব্যবহার করে আপনি কর্মক্ষেত্র স্থানান্তর করতে, পুনরায় আকার দিতে, ছোট করতে এবং এমনকি পরিবর্তন করতে পারেন!
ড্রাগনেসি

@ সাইসির যুক্তি অনুসারে, ডেস্কটপ পরিবেশের অস্তিত্ব থাকা উচিত নয়। সর্বোপরি, তারা কেবল স্ক্রিপ্টগুলির একটি বিশাল সংগ্রহ যা এক্স এর জন্য লেখা সফ্টওয়্যারটির সাথে ইন্টারঅ্যাক্ট করে
andyn

0

আমি tput colsবেশ সুন্দরভাবে কাজ করতে পেলাম !


2
আপনার অবদানের জন্য ধন্যবাদ. আমি আপনার উত্তরটি উন্নত করার পরামর্শ দিচ্ছি: এটি কী করে তা ব্যাখ্যা করুন, লাইন গণনাটি পাওয়ার জন্য কমান্ডটিও সংশোধন করুন। সম্ভবত শেল স্ক্রিপ্টে ফলাফলগুলি কীভাবে ব্যবহার করবেন তা দেখান। - উদাহরণ হিসাবে শীর্ষ রেট করা উত্তরগুলি দেখুন।
গুন্টবার্ট

ওপি উল্লেখ থেকে ইঙ্গিত করে wmctrl, আমরা কনসোলের কথা বলছি না তবে গ্রাফিক্যাল এনভায়রনমেন্ট উইন্ডো।
andyn

0

3 স্ক্রিন পেয়েছে, মাত্রার সাথে এই আউটপুট 3 লাইন:

xrandr | grep '*' | cut -d'*' -f1 | cut -d ' ' -f4
/* OUTPUT *
* 3840x2160
* 1920x1080
* 1920x1080
***********/
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.