Skip to content

Giochiamo un po’ con RandR

27 novembre 2007

Non forse tutti sanno che con Xserver 1.3 è a nostra disposizione uno strumento che permette da linea di comando di cambiare dinamicamente le impostazioni del/i monitor senza bisogno alcuno di riavviare X. A dire il vero non ancora tutti i driver/schede grafiche lo supportano

As of today, the following drivers/boards support RandR 1.2:

  • the Intel driver on all boards (since 1.9.91),
  • the NV driver on G80 boards (since 2.0.95),
  • the ATI driver on r200/r300/r400 boards (since 6.7.191) where RandR 1.2 replaces MergedFB,
  • the MGA driver on all boards (since 1.9.99)

Other drivers still use the old/hard/non-standard way to configure modes.

fonte: wiki debian

Il suo nome è RandR (The Resize and Rotate Extension). Visto che al lavoro ho due monitor ne ho approffittato per giocarci un pochino e devo dire che è davvero potente. Vediamo alcuni esempi di funzionamento.

Ovviamente aprite un terminale e digitate xrandr , vi uscirà una schermata con i monitor collegati. Ecco cosa appare a me:

Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 2560 x 1024
VGA-0 connected 1280x1024+0+0 (normal left inverted right) 376mm x 301mm
1280x1024 60.0 + 75.0* 59.9
1280x960 74.9 59.9
1152x864 75.0 74.8
1024x768 75.1 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3 56.2
640x480 75.0 72.8 66.7 60.0
720x400 70.1
DVI-0 connected 1280x1024+0+0 (normal left inverted right) 376mm x 301mm
1280x1024 60.0*+ 59.9
1024x768 60.0
800x600 60.3
640x480 60.0
720x400 70.1
S-video disconnected (normal left inverted right)

Quindi io ho due monitor collegati, uno attraverso presa VGA, indicato con VGA-0 e uno attraverso presa DVI, indicato con DVI-0. Sono poi presenti informazioni sulle risoluzioni e sulle frequenze di refresh. La parte in verde maximum 2560 x 1024 sta ad indicare la massima risoluzione virtuale che posso ottenere con i 2 monitor insieme. Se non la impostate dal file xorg.conf questa sarà un valore impostato dai driver per non consumare troppa memoria ed è probabile che sia una risoluzione più piccola.

Se volete fare come me ed impostare un monitor virtuale di dimensione personalizzate allora aprite il file xorg.conf non prima di aver fatto una copia di backup

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
sudo gedit /etc/X11/xorg.conf

e aggiungete una SubSection “Display” nella Section “Screen” come appare sotto

Section "Screen"
...
SubSection "Display"
Modes "1280x1024" "1280x960" "1152x864" "1024x768" "800x600" "640x480"
Virtual 2560 1024
EndSubSection
...
EndSection

che mi definirà un monitor virtuale di 2560 x 1024 pixel, cioè due monitor singoli di 1280 x 1024 pixel.

Tornando a noi, in questo momento i due monitor sono in modalità clone, cioè quello che vedo su uno lo vedo anche sull’altro. Supponiamo di voler generare un unico grande schermo (dual head) in modo da avere un’unico Desktop. Una volta avrei dovuto editare il file xorg.conf e riavviare X. Ora basta digitare

xrandr --output DVI-0 --right-of VGA-0

Bene. Il risultato è che avremo un unico grande desktop virtuale composto dai due monitor in cui quello attaccato tramite DVI sta alla destra di quello VGA. Al posto di --right-of potete usare --left-of, --above,--below a seconda di dove volete posizionare un monitor rispetto ad un altro, sempre nel rispetto della massima dimensione virtuale impostata.

Per tornare ad avere i due monitor in modalità clone è sufficiente digitare:

xrandr --output DVI-0 --same-as VGA-0

Adesso modifichiamo la risoluzione del monitor DVI

xrandr --output DVI-0 --mode 1024x768

e ricreiamo il desktop virtuale

xrandr --output DVI-0 --right-of VGA-0

che stavolta sarà composto dal monitor VGA a 1280 x 1024 pixel e dal DVI a 1024 x 768 pixel. Potete poi cambiare le frequenze, la rotazione, il refresh, etc…

Ma ora, se volete, giocate pure voi😉

Link utili:
4 commenti leave one →
  1. bautz permalink
    28 novembre 2007 10:48

    Ottimo articolo

  2. 28 novembre 2007 14:52

    ciao
    bravo bel sommario🙂
    ho scoperto xrandr da poco (subito prima si spaccasse il portatile) e non ho ancora avuto occasione di provarlo…)

    che tu sappia funziona anche con la TV out?
    in linea di principio dovrebbe…

  3. 28 novembre 2007 16:25

    Grazie ad entrambi🙂

    @mastro
    francamente non lo so se funziona con la TV out anche se, come dici tu, dovrebbe. Infatti quando do il comando xrandr esce “S-video disconnected” che per i driver radeon indica l’uscita TV integrata. Purtroppo non ho modo di provare, ma se tu riesci fammi sapere.

    Aggiungo anche un link nel post di un wiki interessante

  4. dado permalink
    6 settembre 2008 8:04

    Ciao passavo per caso di qua anche se conosco bene e uso xrandr da un po’ su una ati 9550 con risultati discreti una cosa ancora non sono riuscito a configurare, a parte che se imposto una dimensione virtuale allo schermo superiore a 2048 x2048 (io ho messo 2384×768 perché ho un lcd da 1360×768 e un crt da 1024×768) non parte compiz perché non supporta tale modalità, ma di questo me ne frego tanto lo uso poco o nulla, quello che non va’ e che il vga-0 è il crt e il dvi-0 è l’lcd.

    Bene se ad esempio spengo il crt e riavvio automaticamente si scambiano gli schermi, ma solo le risoluzioni di gnome e quindi la barra dei menu è piu’ corta nell’lcd ma spunta fuori un pezzo anche nel crt. Sò che non è molto comprensibile quello che dico perché bisognerebbe esserci. Purtroppo gli screenshot escono benissimo e sembra tutto ok…. Comunque un piccolo script all’avvio penso risolva, ma onestamente non ho voglia per ora. Ecco la mia esperienza, ciao ciao. DaDo

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: