2010-11-11

Uso di Xrandr per zoomare parti del desktop

Sul mio computer fisso, dove pure è installato Arch, ho deciso di installare KDE. Tra gli effetti grafici di cui dispone, c'è la possibilità di zoomare l'area sotto al cursore del mouse.

Più volte ho pensato a quanto mi sarebbe piaciuto poter fare qualcosa di analogo sul mio eeePC, dove c'è Arch ma KDE risulterebbe troppo pesante. Esiste un software incluso in xorg, xzoom, ma ingrandisce una porzione di schermo in una finestra nuova. Così dopo qualche ricerca ho trovato il modo di ottenere questo risultato con xrandr.

Xrandr dispone dell'opzione "panning", cioè la possibilità di "inquadrare" la porzione dello schermo sotto al puntatore; se questo tutorial vi fa risparmiare l'oretta di tentativi che ci ho messo io mi considero soddisfatto.

La prima cosa da fare è decidere di quanto sarà l'ingrandimento; nel mio caso volevo quadruplicare l'area di mio interesse, ovvero visualizzare 512x300 pixel dove di solito ne stanno 1024x600.

È necessario avere la dimensione dell'ingrandimento tra le proprie modalità di xrandr; digitando da terminale "xrandr" si ha un output del tipo:

$ xrandr

LVDS1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 220mm x 129mm
1024x600 60.0*+ 65.0
800x600 60.3 56.2
640x480 59.9


La modalità di mio interesse non c'è, ne va creata una nuova seguendo il formato di xorg.conf (modeline). Il formato prevede 10 parametri, di cui solo tre sono intuitivi (nome della modalità, risluzione orizzontale e risoluzione verticale). Tuttavia il programma cvt permette, dati in input risoluzione e frequenza, di trovare i parametri mancanti:

$ cvt 512 300 60

# 512x300 64.28 Hz (CVT) hsync: 20.31 kHz; pclk: 13.00 MHz
Modeline "512x300_65.00" 13.00 512 528 576 640 300 303 313 316 -hsync +vsync


quindi basta dare i comandi:

$ xrandr --newmode "512x300" 13.00 512 528 576 640 300 303 313 316 -hsync +vsync
$ xrandr --addmode LVDS1 512x300


per ottenere:

$ xrandr

LVDS1 connected 1024x600+0+0 (normal left inverted right x axis y axis) 220mm x 129mm panning 1024x600+0+0 tracking 1024x600+0+0 border 128/128/128/128
1024x600 60.0*+ 65.0
800x600 60.3 56.2
640x480 59.9
512x300 59.3


A questo punto con:

$ xrandr --output LVDS1 --mode 512x300 --panning 1024x600+0+0/1024x600+0+0/128/128/128/128


si ottiene un ingrandimento di un'area di 512x300 pixel che si sposta con il puntatore del mouse.

Infine, per facilitarmi la vita, ho aggiunto queste righe al file ~/.fluxbox/keys:

Mod4 65 :exec xrandr --output LVDS1 --mode 512x300 --panning 1024x600+0+0/1024x600+0+0/128/128/128/128
Mod4 58 :exec xrandr --output LVDS1 --mode 1024x600

Premendo le combinazioni "tasto windows"+barra spaziatrice si attiva lo zoom, con "tasto windows"+m si torna alle dimensioni originali.

Nessun commento:

Posta un commento