উত্তর:
xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'
কমান্ডটি xdpyinfo
আপনার এক্স সার্ভার সম্পর্কে বিভিন্ন তথ্য প্রদর্শন করে। এটি স্ট্যান্ডার্ড আউটপুটটিতে প্রচুর পরিমাণে লেখায় তবে আমাদের কেবল শব্দটি দিয়ে শুরু হওয়া লাইনের প্রয়োজন হয় dimensions
, সুতরাং আমরা ব্যবহার করি grep
। পরিশেষে আমরা sed
ফলাফল পরিষ্কার করতে ব্যবহার করি ।
xdpyinfo
কোনও ত্রুটি বার্তা প্রিন্ট করে যদি এটি তথ্য অ্যাক্সেস করতে না পারে, তাই ত্রুটি পুনর্নির্দেশে /dev/null
। এই কারণে আপনি একটি ত্রুটি ফেরৎ যোগ করতে চান করতে পারেন: xdpyinfo 2> /dev/null
। সুতরাং, পূর্ণ piple ভালো দেখায়: xdpyinfo 2> /dev/null | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'
। এটি আপনার স্ক্রিপ্ট আরও শক্ত করে তুলবে।
xdpyinfo | grep dimensions
আপনাকে মোট রেজোলিউশন দেবে, যদি আপনার একাধিক মনিটর থাকে তবে এটি তাদের সবার যোগফল হবে। xrandr --current
প্রতিটি মনিটরের জন্য আপনাকে রেজোলিউশন দেবে।
আমি পূর্ণ স্ক্রিনে না গিয়ে rDesktop এর সর্বাধিক সম্ভাব্য রেজোলিউশন খুঁজতে এই স্নিপেটটি ব্যবহার করি:
Xaxis=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f1)
Yaxis=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f2)
আউটপুট:
Xaxis = 1280
Yaxis = 1024
মাইনাস উইন্ডোজ সজ্জা (আরও কম):
MaxRes=$(($Xaxis-5))"x"$(($Yaxis-25))
আউটপুট:
MaxRes = 1275x999
পূর্ণ স্ক্রিনে না গিয়ে আরডিস্কটপের পক্ষে সর্বোচ্চ রেজোলিউশন।
শেষ আদেশ:
rdesktop -u $User -P -z -5 -g $MaxRes $Host &
এটি এতদূর ভাল কাজ করে তবে আমি যদিও এর পুরোপুরি পরীক্ষা করিনি।
এর সাথে আরও একটি উদাহরণ স্ক্রিনকাস্টের জন্য avconv
:
avconv -f x11grab -r 15 -s `xrandr --current | grep '*' | uniq | awk '{print $1}'` -i :0.0 -c:v libx264 ./output.mp4
xdpyinfo: Unable to open display "".
rdesktop [other_args] -g $(xrandr --current | grep '*' | uniq | awk '{print $1}')
।
xrandr --current | grep '*' | awk -v line="$SCREEN" 'NR==line{print $1}' | cut -d 'x' -f1
যদি আপনি কোনও স্ক্রিন নির্দিষ্ট করতে চান (একাধিক মনিটরের সেটআপ সহ) ( SCREEN
এটি 1-ইনডেক্সড)
############################################# ## আমি ভিডিও রেকর্ডিং প্রোগ্রামের সাথে এটি ব্যবহার করি। # উইন্ডোর আকার - রুট বিকল্প - স্ক্রিনের রুট উইন্ডো সম্পর্কিত তথ্য প্রতিধ্বনি $ (xwininfo -root | গ্রেপ 'জ্যামিতি' | awk '{মুদ্রণ $ 2;}') # আউটপুট (গুলি): 1024x768 + 0 + 0 # উচ্চতা এক্স প্রস্থ + এক্স + ওয়াই অবস্থান। ###################### ## সহায়িকা ## man xwininfo
xwininfo -root|sed '/Height/!d;s/.* //'
উচ্চতা এবং xwininfo -root|sed '/Width/!d;s/.* //'
প্রস্থ জন্য ব্যবহৃত ।
xdpyinfo
কিছু বিশ্লেষণ সহ এটি করবে। এটি আপনাকে প্রচুর তথ্য দেয় যা এরপরে আপনাকে স্ক্রীন নম্বর এবং এর দিকগুলি খনন করতে হবে
@ ব্যবহারকারী 31752 এবং @ এলিজার-ই-ভার্গাসের উত্তরগুলির সংমিশ্রণে দুটি সম্ভাব্য বিকল্প উত্পাদিত হয়েছে
একটি সহজ রেজেক্স:
$ xrandr --current | sed -n 's/.* connected \([0-9]*\)x\([0-9]*\)+.*/\1x\2/p'
1440x900
বা কাটা ব্যবহার:
$ xrandr --current | grep ' connected ' | cut -d ' ' -f 3 | cut -d '+' -f 1
1440x900
ব্যবহারের grep '*' | uniq
@ ইলীয়েষর-ই-ভার্গাস থেকে xrandr আউটপুট (উদা। "1440x900 59.90 * + + 59.89") একটি ভিন্ন লাইন পেতে, যখন, grep 'সংযুক্ত' একটি সহজ এক (উদা পেতে। "LVDS1 সংযুক্ত 1440x900 + + 0 টি + 0 ..... ")।
@ ইউজার ৩3175৫২ দ্বারা রেজেক্সের ব্যবহারটি দুর্দান্ত, তাই আমি যে রেখাটি ব্যবহার করছি তার জন্য একটি সহজ রেজেেক্স প্রয়োজন, বা সরল কাট কমান্ডের মতো প্রতিস্থাপন করা যেতে পারে।
উদাহরণস্বরূপ xrandr আউটপুট
$ xrandr --current
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 8192 x 8192
LVDS1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
1440x900 59.90*+ 59.89
1360x768 59.80 59.96
1152x864 60.00
1024x768 60.00
800x600 60.32 56.25
640x480 59.94
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
গৃহীত উত্তরের মতো তবে কম জটিল:
xdpyinfo | grep dimensions
আউটপুট উদাহরণ:
dimensions: 1366x768 pixels (361x203 millimeters)
ভিসা স্ট্যান্ডার্ডটি কীভাবে মনিটরের স্ক্রিন রেজোলিউশন পড়তে পারে তার একটি পদ্ধতি সরবরাহ করে।
বর্ধিত প্রদর্শন শনাক্তকরণ ডেটা (EDID ): এই স্ট্যান্ডার্ডটি প্রদর্শনগুলির সর্বোত্তম ব্যবহারের অনুমতি দিয়ে কনফিগারেশন তথ্য বহন করতে ডেটা ফর্ম্যাটগুলি সংজ্ঞায়িত করে।
একটি মনিটর সাধারণত একাধিক রেজোলিউশন এবং রিফ্রেশরেট সমর্থন করে। অবশ্যই কেউ সর্বাধিক (শারীরিক) একটিকে পছন্দ করবে।
এই মনিটরের ডেটা পড়তে, এই সমাধানগুলির মধ্যে একটি ব্যবহার করে দেখুন:
edid-ডিকোড
ইনস্টল না থাকলে টাইপ করুন
sudo apt install edid-decode
তারপরে edid
ফাইলটি পড়ুন
edid-decode /sys/class/drm/card0-eDP-1/edid
পাঠযোগ্য edid
সাথে ইনস্টল করুন
sudo apt install read-edid
তারপরে আই 2 সি এর মাধ্যমে স্ক্রিন মনিটরের ডেটা পড়ুন এবং পার্স করুন
sudo get-edid | parse-edid
এডিড ডেটা হেক্সডাম্প
যদি এডিড-সরঞ্জামগুলি ইনস্টল না করা থাকে তবে আপনি edid
হেক্স-ফাইলটি ডাম্প করতে পারেন , যেমন:
hd /sys/class/drm/card0-eDP-1/edid
এই হেক্স ফাইলটি এনক্রিপ্ট করার জন্য উইকিতে একবার দেখুন বা এডিডের বিশদটি ডাউনলোড করুন ।
$( )
সিন্ট্যাক্স (অর্থাত্DIMENSIONS=$(xdpyinfo ...
) ব্যবহার করে একটি ভেরিয়েবলের মধ্যে রাখুন । তারপরেsed
দুটি পেতে আবার ব্যবহার করুন :WIDTH=$(echo $DIMENSIONS | sed -r 's/x.*//')
এবংHEIGHT=$(echo $DIMENSIONS | sed -r 's/.*x//')
।