Yanıtlar:
xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'
Komut xdpyinfo
, X sunucunuzla ilgili çeşitli bilgileri görüntüler. Standart çıktıya birçok şey yazar, ancak sadece kelimesi ile başlayan satıra ihtiyaç duyarız dimensions
, bu yüzden kullanırız grep
. Sonunda sed
sonucu temizlemek için kullanıyoruz .
xdpyinfo
bilgiye erişemiyorsa bir hata mesajı yazdırır, bu nedenle hata yönlendirmesine /dev/null
. Bu nedenle bir hata yeniden yönlendirme eklemek isteyebilirsiniz: xdpyinfo 2> /dev/null
. Yani, tam piple şöyle görünür: xdpyinfo 2> /dev/null | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'
. Bu, komut dosyanızı daha sağlam hale getirecek.
xdpyinfo | grep dimensions
Toplam çözünürlüğü size verecektir, eğer birden fazla monitörünüz varsa, hepsinin toplamı olacaktır. xrandr --current
Her monitör için size çözünürlük verecek.
Bu snippet'i rDesktop için tam ekrana gitmeden mümkün olan maksimum çözünürlüğü bulmak için kullanıyorum:
Xaxis=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f1)
Yaxis=$(xrandr --current | grep '*' | uniq | awk '{print $1}' | cut -d 'x' -f2)
Çıktı:
Xaxis = 1280
Yaxis = 1024
Eksi pencereleri dekorasyonu (az çok):
MaxRes=$(($Xaxis-5))"x"$(($Yaxis-25))
Çıktı:
MaxRes = 1275x999
Tam ekran gitmeden rDesktop için maksimum çözünürlük.
Bitiş komutu:
rdesktop -u $User -P -z -5 -g $MaxRes $Host &
Şimdiye kadar iyi çalışıyor ama ben yine de tam olarak test etmedim.
Başka bir örnek ile screencast içindir 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
Bir ekran belirtmek istiyorsanız (çoklu monitör kurulumuyla) ( SCREEN
1 indeksli)
############################################# ## Bunu Video Kayıt Programında kullanıyorum. # pencere boyutu - kök seçeneği - ekranın kök penceresindeki bilgiler echo $ (xwininfo -root | grep 'geometri' | awk '{print $ 2;}') # çıkış (lar): 1024x768 + 0 + 0 # yükseklik x genişlik + x + y konumları. ###################### ## Referans Kılavuzu ## adam xwininfo
xwininfo -root|sed '/Height/!d;s/.* //'
Boy ve xwininfo -root|sed '/Width/!d;s/.* //'
genişlik için kullandım .
xdpyinfo
Bazı ayrıştırma ile yapacak. Daha sonra ekran numarasını kazmanız gerekecek birçok bilgi verir ve
@ User31752 ve @ eliezer-e-vargas cevaplarını birleştiren iki olası alternatif
Daha basit bir regex:
$ xrandr --current | sed -n 's/.* connected \([0-9]*\)x\([0-9]*\)+.*/\1x\2/p'
1440x900
veya kesme kullanarak:
$ xrandr --current | grep ' connected ' | cut -d ' ' -f 3 | cut -d '+' -f 1
1440x900
grep '*' | uniq
@ Eliezer-e-vargas'ın kullanımı farklı bir hat (ör. "1440x900 59.90 * + 59.89") xrandr çıktısı alırken, 'bağlı' sıkıntısı basit bir tane (ör. "LVDS1 1440x900 + 0 + 0 bağlanır. ..... ").
Regex'in @ user31752 tarafından kullanılması gayet güzel, bu yüzden kullandığım satır daha basit bir regex gerektiriyor veya daha basit bir kesme komutunun yerine kullanılabilir.
Örnek xrandr çıkışı
$ 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)
Kabul edilen cevaplarda olduğu gibi, ancak daha az karmaşık:
xdpyinfo | grep dimensions
Çıktı örneği:
dimensions: 1366x768 pixels (361x203 millimeters)
Vesa standardı, monitör ekranı çözünürlüğünün nasıl okunacağına ilişkin bir yöntem sunar.
Genişletilmiş Ekran Tanımlama Verileri (EDID ): Bu standart, yapılandırma bilgilerini taşımak ve ekranların optimum şekilde kullanılmasını sağlamak için veri formatlarını tanımlar.
Bir monitör genellikle birden çok çözünürlüğü destekler ve yeniler. Elbette biri maksimum (fiziksel) olanı tercih edecektir.
Bu monitör verisini okumak için aşağıdaki çözümlerden birini deneyin:
EDID-kod çözme
Takılı değilse, yazın
sudo apt install edid-decode
Sonra edid
dosyayı oku
edid-decode /sys/class/drm/card0-eDP-1/edid
salt EDID
İle yükleyin
sudo apt install read-edid
Ardından i2c ile ekran izleme verisini okuyun ve ayrıştırın
sudo get-edid | parse-edid
Düzenlenen verileri Hexdump
Eğer edid-tools kurulu değilse, edid
hex dosyasını çöpe atabilirsiniz , örneğin:
hd /sys/class/drm/card0-eDP-1/edid
Bu hex dosyasını şifrelemek için wiki'ye bakın veya edid teknik özelliklerini indirin .
$( )
sözdizimini (yaniDIMENSIONS=$(xdpyinfo ...
) kullanarak bir değişkene koyun . Sonrased
ikisini almak için tekrar kullanın:WIDTH=$(echo $DIMENSIONS | sed -r 's/x.*//')
veHEIGHT=$(echo $DIMENSIONS | sed -r 's/.*x//')
.