Sto cercando un metodo per riportare la risoluzione del display. Voglio impostare gli script per l'avvio rdesktop
e voglio avviarlo su più macchine con risoluzioni diverse, quindi voglio un modo per determinarlo dinamicamente.
Sto cercando un metodo per riportare la risoluzione del display. Voglio impostare gli script per l'avvio rdesktop
e voglio avviarlo su più macchine con risoluzioni diverse, quindi voglio un modo per determinarlo dinamicamente.
Risposte:
Utilizzare il comando xrandr
. Senza alcun argomento visualizza le risoluzioni disponibili e quella attuale (con un asterisco), ad esempio:
$ xrandr | fgrep '*'
xrandr |g grep \*
il trucco?
Soluzione alternativa: xdpyinfo | grep dimensions
. xdpyinfo
è più vecchio di xrandr
, quindi potrebbe essere più portabile se ti capita di usare una distribuzione molto vecchia o un server X diverso.
xdpyinfo
mentre xrandr
elenca correttamente le schermate e la loro risoluzione. Questo può o non può essere un problema a seconda del contesto.
xdpyinfo
sembra riportare le dimensioni corrette in pixel, segnala una risoluzione errata (DPI). Ad esempio sul mio monitor con dimensioni 3840x2160 (nativo e reale) e dimensioni 708mm x 399mm come riportato da xrandr
, xdpyinfo
dice che la risoluzione è di 96x96 punti per pollice.
Puoi ottenere le risoluzioni orizzontale e verticale usando il seguente comando:
xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}'
o, in forma più compatta (come suggerito da Peter.O in questo commento):
xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}'
Ad esempio, su un display 1600x900 questo produrrà il seguente output:
1600 900
È quindi possibile posizionare i valori in variabili separate utilizzando il comando:
read RES_X RES_Y <<<$(xdpyinfo | awk -F'[ x]+' '/dimensions:/{print $3, $4}')
Visualizza i valori delle variabili sopra usando il comando:
echo $RES_X, $RES_Y
Su un display 1600x900, l'output è:
1600, 900
Avrei dovuto sembrare un po 'più difficile prima di pubblicare. xrandr
ripeterà le impostazioni di visualizzazione correnti, se non vengono forniti altri argomenti.
Di default, questo scaricherà tutte le possibili impostazioni di visualizzazione, questo può essere filtrato come segue:
xrandr | egrep '^[^ ]|[0-9]\*\+'
xrandr
Output pulito per l'utilizzo di imagemagickxrandr |grep \* |awk '{print $1}'