Pagine

giovedì 24 ottobre 2013

Monitor secondario su Linux come gestirlo al meglio


Alcuni trucchi e suggerimenti per gestire il vostro monitor secondario su Linux.   

Usate spesso un monitor secondario per il vostro portatile?

o magari collegate spesso il vostro notebook/netbook ad un proiettore?

Se siete appena passati a linux non avete tanto da preoccuparvi, visto che la maggior parte dei desktop enviroment gestisce gli schermi esterni piuttosto bene.

Il problema è che in qualche caso alcune opzioni non sono disponibili oppure i tool grafici non funzionano troppo bene.

Ho scoperto alcuni tool molto carini che permettono di configurare al meglio i nostri schermi:

 Si tratta i xrandr e arandr,  

il primo, xrandr, X Resize, Rotate and Reflect Extension, è uno strumento a linea di comando che permette di impostare tutte le opzioni possibili e immaginabili riguardo lo schermo.

Arandr, invece è il frontend grafico per xrandr, che permette di impostare comodamente moltissime opzioni anche a chi è allergico alla linea di comando.
In particolare arandr è particolarmente comodo per configurare il desktop esteso semplicemente trascinando gli schermi.


Un' altro problema che potete avere se avete un netbook con risoluzione 1024x600 come ad esempio l'acer aspire one, molti eeepc, ecc. Avrete sucuramente notato che la risoluzione 1024x600 mal si adatta a schermi esterni o proiettori, e nel caso teniate spesso delle presentazioni, è scomodo attivare solo il proiettore, sarebbe molto meglio avere la visione condivisa per tenere d'occhio la scaletta.

Su windows 7, se non ricordo male esiste un driver modificato per le schede video intel, che permette di "strizzare"  la risoluzione 1024x768 nel vostro schermo 1024x600.

Su linux questo tipo di soluzione su Linux è molto più facile e pulita, basta una riga di comando e il vostro schermo sarà come voi vorrete:

LVDS1 rappresenta il vostro schermo primario, ma potrebbe avere anche un identificativo differente, controllate l'output del comando xrandr per verificare e sostituite con l'identificativo corretto.

1024x768->1024x600 adattato
xrandr --output LVDS1 --mode 1024x600 --panning 1024x768 --scale 1.0x1.28
1024x768->1024x600 panning (si sposta con il cursore)
 xrandr --output LVDS1 --mode 1024x600 --panning 1024x768 --scale 1.0x1.0
 1280x768->1024x600 adattato
xrandr --output LVDS1 --mode 1024x600 --panning 1280x768 --scale 1.25x1.28
 ripristina la schermata normale
 xrandr --output LVDS1 --mode 1024x600 --panning 1024x600 --scale 1.0x1.0
Inoltre sui portatili in genere è presente un tasto che permette di commutare la modalità del monitor: 
a tal proposito nel caso il vostro ambiente desktop non vi soddisfi ho realizzato un piccolo script che potete associare al vostro tasto preferito per commutare il monitor.

Ad esempio su xfce4 nelle impostazioni tastiera è piuttosto facile associare il nostro script a qualsiasi tasto:




ogni volta che lo script viene eseguito in base allo stato attuale commuterà i vostri schermi in uno stato differente:

  • solo primario
  • solo secondario
  • modalità clone (entrambi 1024x768)
  • modalità desktop esteso (monitor secondario a destra)
Nel caso abbiate un netbook, decommentete una delle due opzioni evidenziate di sottoa seconda se volete lo scroll o lo schermo schiacciato.

 #!/bin/sh

LVDS=LVDS1      # it can be something like: LVDS, LVDS-1,...
VGA=VGA1        # it can be something like: VGA, VGA-1,...
COMMON_RES=1024x768 # Common resulution, supported by both screen usually 1024x768
OTHER=" --dpi 96" # other option that will be added to the end


#if you have a netbook uncomment your preferred option:

# option 1: the screen will be scrollable in vertical mode
#NETBOOK="1024x600 --scale 1.0x1.0 --panning"

# option 2: the resolution 1024x768 will be squeezed in 1024x600
#NETBOOK="1024x600 --scale 1.0x1.28 --panning"


#check if primary screen i active
xrandr | grep -q "$LVDS connected [1-9]" && LVDS_IS_ON=1 || LVDS_IS_ON=0
#check if secondary screen is active
xrandr | grep -q "$VGA connected [1-9]" && VGA_IS_ON=1 || VGA_IS_ON=0
#check if secondary screen is plugged
xrandr | grep -q "$VGA connected" || VGA_IS_ON=-1

xrandr | grep -q  "$LVDS.*$COMMON_RES" && xrandr | grep -q  "$VGA.*$COMMON_RES" && CLONE_IS_ON=1 || CLONE_IS_ON=0



if [ $LVDS_IS_ON -eq 1 ] && [ $VGA_IS_ON -eq 1 ] && [ $CLONE_IS_ON -eq 0 ]; then
    #clone mode, same resolution
    xrandr --output $LVDS --mode $NETBOOK $COMMON_RES --pos 0x0 $OTHER
    xrandr --output $VGA --mode $COMMON_RES --pos 0x0 $OTHER
elif [ $LVDS_IS_ON -eq 1 ] && [ $VGA_IS_ON -eq 1 ] && [ $CLONE_IS_ON -eq 1 ]; then
    #primary screen only
    xrandr --output $LVDS --auto $OTHER
    xrandr --output $VGA --off $OTHER
elif [ $LVDS_IS_ON -eq 1 ] && [ $VGA_IS_ON -eq 0 ]; then
    #secondary screen only
    xrandr --output $LVDS --off $OTHER
    xrandr --output $VGA --auto $OTHER
elif [ $VGA_IS_ON -eq 1 ]; then
    #extended desktop mode, the secondary screen is on the right
    xrandr --output $LVDS --auto $OTHER
    xrandr --output $VGA --auto --right-of $LVDS $OTHER
else
    #fallback case, reached also when secondary screen in not connected
    xrandr --output $LVDS --auto $OTHER
fi

 scarica lo script






immagini tratte da:
http://upload.wikimedia.org/wikipedia/commons/e/e5/Oto_godfrey-multi_screen_studio.jpg