जवाबों:
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। तो, पूर्ण शिष्य इस तरह दिखता है 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 के लिए अधिकतम रिज़ॉल्यूशन है।
अंतिम आदेश:
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}')।
#############################################
## मैं इसका उपयोग वीडियो रिकॉर्डिंग प्रोग्राम के साथ करता हूं।
# विंडो का आकार - विकल्प - स्क्रीन की रूट विंडो पर जानकारी
इको $ (xwininfo -root | grep 'ज्यामिति' | awk '{प्रिंट $ 2।}'))
# आउटपुट (ओं): 1024x768 + 0 + 0
# ऊंचाई x चौड़ाई + x + y स्थिति।
######################
## संदर्भ पुस्तिका ##
आदमी xwininfo
xwininfo -root|sed '/Height/!d;s/.* //'ऊंचाई के लिए और xwininfo -root|sed '/Width/!d;s/.* //'चौड़ाई के लिए इस्तेमाल किया ।
xdpyinfoयह कुछ पार्सिंग के साथ करेंगे। यह बहुत सी जानकारी देता है जो आपको स्क्रीन नंबर और आयामों को खोदना होगा
दो संभावित विकल्पों ने @ user31752 और @ एलीएज़र-ए-वर्गास के उत्तर का संयोजन किया
एक सरल रीगेक्स:
$ 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@ एलीएज़र-ए-वर्गास एक अलग लाइन प्राप्त से (उदा। "1440x900 59.90 * + 59.89") xrandr उत्पादन की है, जबकि ग्रेप 'जुड़े' एक सरल एक (पूर्व मिलता है। "LVDS1 जुड़े 1440x900 + 0 + 0 ..... ")।
@ User31752 द्वारा रेगेक्स का उपयोग अच्छा है, इसलिए मैं जिस लाइन का उपयोग कर रहा हूं वह एक सरल रीगेक्स की जरूरत है, या सरल कट कमांड को सफेद किया जा सकता है।
उदाहरण 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
फिर i2c स्क्रीन मॉनिटर डेटा के माध्यम से पढ़ें और इसे पार्स करें
sudo get-edid | parse-edid
Hexdump एडिड डेटा
अगर एडिड-टूल्स इंस्टॉल नहीं हैं, तो आप 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//')।