Ho comprato un nuovo monitor a casa ed aggiunto un secondo monitor in ufficio, quindi ho avuto un bel po da fare con i setup grafici dei miei Linux.
Cosa si utilizza in questi casi ? Il mio tool preferito per tutte queste operazioni è sicuramente xrandr.
In particolare mi sono abituato ad usarlo da linea di comando sul terminale e dopo aver fatto alcuni test utilizzare la sintassi trovata allo startup dell’ambiente grafico.
In questo articolo vedremo qualche caso d’uso comune.
Da Wikipedia:
X Resize, Rotate and Reflect Extension (RandR) consente ai client di modificare dinamicamente gli schermi X, in modo da ridimensionare, ruotare e riflettere la finestra principale di uno schermo. Il progetto iniziale X11 non ha previsto la necessità di un ridimensionamento dinamico ed era necessario riavviare il server X per realizzare i cambiamenti. Tuttavia, cambiare la risoluzione dello schermo al volo senza modificare le dimensioni del desktop era disponibile con XFree86 fin dall’inizio. Il framework di estensioni RandR ha portato la capacità di cambiare le caratteristiche di visualizzazione senza riavviare la sessione di X. Il framework di estensione permette ai computer portatili e palmari di cambiare la loro dimensione dello schermo per guidare monitor esterni a risoluzioni diverse degli schermi integrati con cui sono costruiti.
Se il proprio ambiente desktop non fornisce uno strumento grafico per interfacciarsi con questa funzionalità, il comando xrandr a riga di comando può essere utilizzato.
La maggior parte delle distribuzioni Linux hanno nel loro repository il pacchetto xrandr, quindi installatelo con il vostro gestore di pacchetti, per ubuntu: aptitude install libxrandr2
Versione
Come prima cosa verificate che versione avete con il comando:
#xrandr -v xrandr program version 1.3.3 Server reports RandR version 1.3 |
Nei miei esempi io utilizzerò sempre la versione 1.3, alcune funzionalità potrebbero non andare su versioni precedenti.
Query
Per sapere quali monitor sono collegati è possibile interrogare con il seguente comando:
#xrandr -q Screen 0: minimum 320 x 200, current 1440 x 900, maximum 4096 x 4096 VGA-0 connected 1440x900+0+0 (normal left inverted right x axis y axis) 476mm x 268mm 1920x1080 60.0 + 1600x1200 65.0 60.0 1680x1050 69.9 60.0 1600x1024 60.2 1400x1050 74.8 70.0 60.0 60.0 1280x1024 75.0 60.0 1440x900 75.0* 59.9 1280x960 60.0 1360x768 60.0 59.8 1280x800 74.9 59.8 1152x864 75.0 75.0 70.0 60.0 1280x768 74.9 59.9 1024x768 75.1 75.0 70.1 60.0 832x624 74.6 800x600 72.2 75.0 60.3 56.2 848x480 60.0 640x480 72.8 75.0 72.8 75.0 66.7 60.0 59.9 59.9 720x400 70.1 DVI-0 connected 1440x900+0+0 (normal left inverted right x axis y axis) 476mm x 268mm 1920x1080 60.0 + 1600x1200 65.0 60.0 1680x1050 69.9 60.0 1600x1024 60.2 1400x1050 74.8 70.0 60.0 60.0 1280x1024 75.0 60.0 1440x900 75.0* 59.9 1280x960 60.0 1360x768 60.0 59.8 1280x800 74.9 59.8 1152x864 75.0 75.0 70.0 60.0 1280x768 74.9 59.9 1024x768 75.1 75.0 70.1 60.0 832x624 74.6 800x600 72.2 75.0 60.3 56.2 848x480 60.0 640x480 72.8 75.0 72.8 75.0 66.7 60.0 59.9 59.9 720x400 70.1 LVDS connected (normal left inverted right x axis y axis) 1024x768 60.0 + 60.0 1360x768 59.8 800x600 60.3 59.9 848x480 59.7 720x480 59.7 640x480 59.9 59.4 S-video disconnected (normal left inverted right x axis y axis) |
Nel mio output si può vedere che ho collegato sia VGA e DVI (sto ancora facendo test con il mio nuovo monitor), mentre LVDS (lo schermo del computer portatile) è spento e l’uscita S-video non è collegata.
Inoltre si può vedere che con questo semplice comando si possono vedere tutte le risoluzione e frequenza di aggiornamento supportate dagli schermi.
Uso base con gli schermi
L’uso base per dare comandi con gli schermi è xrandr --output SCREEN COMANDO
,quindi per esempio per spegnere lo schermo VGA è possibile utilizzare:
xrandr --output VGA-0 --off |
La disattivazione di una uscita è utile a volte, per esempio al lavoro ho uno schermo con risoluzione 1600×1200, mentre il mio schermo del laptop è 1680×1050, io uso il portatile in una docking station con lo schermo chiuso così spegnere l’uscita LVDS aiuta ad ottenere una buona risoluzione sullo schermo.
Cambiare la risoluzione di uno schermo
Per cambiare la risoluzione dello schermo è possibile utilizzare xrandr con l’opzione –mode:
xrandr --output DVI-0 --mode 1440x900 --refresh 75 |
Con questo comando cambierete la risoluzione dello schermo DVI a 1440×900 ed imposterete la frequenza di aggiornamento a 75.
Clonazione di uno schermo
Ipotizzate di attaccare una uscita VGA al vostro portatile e di voler clonare il vostro schermo del portatile, ovvero tutto quello che appare sullo schermo principale sarà mostrato anche sullo schermo esterno, niente di più facile con xrandr:
xrandr --output LVDS --auto --output VGA --auto --same-as LVDS |
In generale usate $ xrandr -q
per scoprire i nomi di uscita appropriati per la vostra configurazione. L’opzione -auto sarà la risoluzione desiderata per ogni uscita, questa risoluzione è contrassegnata con un più (+) nella lista mostrata $ xrandr -q
ed è normalmente la migliore risoluzione disponibile.
2 monitor affiancati
E’ possibile creare un desktop virtuale mettendo 2 schermi fianco a fianco, è possibile impostare le posioni degli schermi come –left-of, –right-of, –above e –below. Supponendo che le dimensioni del display LVDS siano 1024×768 e 1200×1600 per il VGA è possibile utilizzare uno di questi 2 comandi:
$ xrandr --output LVDS --auto --output VGA --auto --right-of LVDS and $ xrandr --output LVDS --mode 1024x768 --pos 0x0 --output VGA --mode 1600x1200 --pos 1024x0 |
Questi comandi danno lo stesso risultato, quindi suggerisco di imparare ad utilizzare il primo in quanto è più facile da ricordare ed utilizzare.
Automazione al login
È possibile automatizzare le operazioni con xrandr mettendole nella directory /etc/X11/Xsession.d/, così per esempio si potrebbe aggiungere un file: /etc/X11/Xsession.d/45custom_xrandr-settings
# If an external monitor is connected, place it with xrandr # External output may be "VGA" or "VGA-0" or "DVI-0" or "TMDS-1" EXTERNAL_OUTPUT="VGA" INTERNAL_OUTPUT="LVDS" # EXTERNAL_LOCATION may be one of: left, right, above, or below EXTERNAL_LOCATION="right" case "$EXTERNAL_LOCATION" in left|LEFT) EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT" ;; right|RIGHT) EXTERNAL_LOCATION="--right-of $INTERNAL_OUTPUT" ;; top|TOP|above|ABOVE) EXTERNAL_LOCATION="--above $INTERNAL_OUTPUT" ;; bottom|BOTTOM|below|BELOW) EXTERNAL_LOCATION="--below $INTERNAL_OUTPUT" ;; *) EXTERNAL_LOCATION="--left-of $INTERNAL_OUTPUT" ;; esac xrandr |grep $EXTERNAL_OUTPUT | grep " connected " if [ $? -eq 0 ]; then xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --auto $EXTERNAL_LOCATION # Alternative command in case of trouble: # (sleep 2; xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --auto $EXTERNAL_LOCATION) & else xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --off fi |
GUIs
Esistono diverse interfaccie grafiche per xrandr (queste sono tutte per GTK):
- Grandr
- URandR
- ARandR
- Zarfy — Una GUI per libxrandr. Si presenta all’utente con una rappresentazione visiva del display attivo su una mappa interattiva della memoria video.Le caratteristiche sono il posizionamento libero, il risparmio di configurazione, script per la R & R e una gui alternativo per il passaggiotra i monitor.
Riferimenti: http://www.thinkwiki.org/wiki/Xorg_RandR_1.2#Overview
Popular Posts:
- None Found
“You can automate your xrandr operation putting them in the directory /etc/X11/Xsession.d/, so for example you could add a file: /etc/X11/Xsession.d/45custom_xrandr-settings”
A rather more sensible way to do this is to specify the layout in xorg.conf , as per:
http://wiki.debian.org/XStrikeForce/HowToRandR12
I have tried xrandr before and it really cool. Now I want triple monitor on Linux, do you know a good hardware solution for this? I have a plan to buy a new dekstop computer.
Nothing tested personally, but with a dual video card you should not have much problems…hopefully.
https://bbs.archlinux.org/viewtopic.php?id=111017
If you want three (or more) monitor on one card look into amd’s 5000 or 6000 series cards. You will also want a modern distro. I have seen it work with hardward acc and all. Things like compiz start to break so I would disable it.
You may also want to mention things like
xrandr –prop
xrandr –output LVDS1 –set “scaling mode” “Full”
for those using LVDS1 and who want to play around with the hardware scaling modes. Why “scaling mode” and not PANEL_FITTING? Because that is seemingly what the property became known as in later versions of kernel… (so for xrandr purpose the intel man page is wrong about PANEL_FITTING on recent systems – https://bugs.freedesktop.org/show_bug.cgi?id=24331 )