# Switch among displays!

## fbcyborg

Ho cercato nel forum ma non ho trovato nulla che potesse rispondere esattamente alla mia domanda. Se non ho cercato bene chiedo scusa in anticipo e prego i moderatori di perdonarmi.

Ho bisogno di sapere come fare per "switchare" l'output del video dal monitor alla TV, premesso che ho un uscita TV-Out s-video sul pc desktop e un uscita rca (delle dimensioni di un mini jack stereo) sul mio Sony Vaio FX210 (versione americana del FX201).

La scheda che ho sul desktop è: ATI Technologies Inc RV280 [Radeon 9200 PRO] (rev 01)

Quella sul portatile è la ATI Technologies Inc Rage Mobility P/M AGP 2x (rev 64)

Suppongo di dover installare i driver ATI, e spero anche che venga installata una utility per KDE che permetta di fare il switching, tipo una icona nella tray bar.

----------

## Bionicle

Ciao,

io ho installaro i driver ati e poi vai nel pannello "ATI Control" che dovrebbe trovarsi nel menu principale e poi clicchi su TV OUT e switcha automaticamente sulla TV.

Adesso non so bene se questo pannello di gestione c'é solo installano i driver proprietari.

Ciao

----------

## makami

quel pannelo viene installato emergendo ati-drivers-extra

non l'ho mai provato, penso che comunqe bisogna aggiungere qualche riga in xorg.conf

----------

## Bionicle

Basta controllare che in xorg ci sia:

```
# === TV-out Management ===

    Option "TVFormat"                   "PAL-B"     

    Option "TVStandard"                 "NTSC-M"

    Option "TVHSizeAdj"                 "0"     

    Option "TVVSizeAdj"                 "0"     

    Option "TVHPosAdj"                  "0"     

    Option "TVVPosAdj"                  "0"     

    Option "TVHStartAdj"                "0"     

    Option "TVColorAdj"                 "0"     

    Option "GammaCorrectionI"           "0x06419064"

    Option "GammaCorrectionII"          "0x06419064"
```

Poi dovrebbe andare  :Wink: 

----------

## fbcyborg

Grazie! 

Appena provo vi faccio sapere!  :Very Happy: 

----------

## fbcyborg

Ciao a tutti, 

riesumo questo thread perché mi trovo di nuovo in una situazione simile.

Oggi possiedo un sony vaio SZ330P ed ho una porta VGA come nel precedente caso.

Sul tasto F7 ho un disegno che rappresenta il tasto preposto allo switch da LCD->External device e viceversa e vorrei associarlo anche su Linux visto che su winsozz funziona molto bene.

Ho già configurato altri tasti funzione seguendo queste istruzioni.

In pratica ora riesco a fare lo switch fra i display solo in questo modo:

se all'avvio di Xorg (poco prima di KDM) trova il cavo VGA inserito ci redirige l'output (ma solo su quello). Sennò lo manda su LCD. L'unica palla è che devo riavviare X ogni volta per cambiare display con CTRL+ALT+Backspace ....

C'è una soluzione.. per cambiare display utilizzando sia la guida che ho appena linkato, sia qualche software esterno, magari?

Ho sentito parlare di Xinerama ma non so bene come funziona. Ho sempre visto questa flag use per le applicazioni...

Woow! 1000 post!  :Very Happy: 

----------

## flocchini

con nvidia lo puoi fare al volo dal loro pannello di controllo, con i driver ati non so proprio, con il resto non puoi. So anche che lo switch a caldo dovrebbe essere una delle features piu' interessanti di xorg 7.3 di prossima uscita se nel frattempo non hanno cambiato idea. Quindi per ora o uso nvidia oppure con l'intel integrata mi attacco. Visto il gran caldo, per ora io mi attacco :p buona fortuna ;

----------

## fbcyborg

Ho una nvidia e sto cercando di capire come funziona questo pannello...

EDIT:

 *flocchini wrote:*   

> ci ha pensato mamma nvidia con gli ultimi driver e l'ultimo nvidia-settings a risolvere le cose... come godo  E' possibile attivare/disattivare il monitor interno/esterno a piacimento e cambiare a caldo le risoluzioni, ovviamente disabilitando il monitor esterno e' possibile anche l'undock senza nessun crash, cosi'sembra almeno, ho scoperto il tutto solo stasera :p ora devo solo scriptare tutto e automatizzare un po' le cose senza passare dalla gui del programma. Evviva  

 

Quindi poi hai inventato qualcosa?

----------

## flocchini

no perche' e' arrivato il caldo e preferisco la gma950 che cmq muove compiz egregiamente... Cmq penso che basti guardare cosa si puo' fare con nvidia-settings da riga di comando e legarlo ad un qualche evento (nel mio caso con l'undock si puo' fare con acpi)

----------

## fbcyborg

Salve di nuovo, 

mi trovo di nuovo ad avere la necessità di collegare il mio SZ330P ad un proiettore e da buon previdente ho voluto fare prima delle prove con uno schermo VGA.

La fortuna ha voluto che io non riuscissi a proiettare nulla sullo schermo.

Non si vede nulla, nemmeno se provo a connettere il cavo e a premere CTRL+ALT+BackSpace (di solito l'output veniva automaticamente switchato sul monitor o proiettore).

Ho provato anche ad accendere il notebook con il cavo già connesso ma niente.

Ho provato anche ad aggiornare xorg-server alla versione 1.5.3-r1, ma non si è risolto il problema, anzi.. ora non mi funziona nemmeno più il touchpad (ma ne ho parlato in un altro thread).   :Evil or Very Mad: 

Qualcuno può illuminarmi?

EDIT: Ho scoperto che utilizzando la scheda video integrata della Intel, non ci sono problemi a switchare fra i display. Anzi, ho anche provato i810switch e funziona molto bene.

Sembra sia un problema che si riscontra solo con nVidia. Possibile???

----------

## fbcyborg

Salve di nuovo!

Caso strano le cose non sono eterne e prima o poi decidono di non funzionare bene.

Ho sempre due alternative sul mio notebook: utilizzare la scheda nVidia, oppure quella integrata intel.

Utilizzando la nvidia è un casino: da nvidia settings non riesco ad ottenere un risultato ottimale. Io vorrei avere la stessa cosa visualizzata sia sull'LCD del notebook sia sul monitor/proiettore esterno, tramite l'attacco VGA.

Il problema è che anche smanettando con tutte le opzioni, non ci riesco.

Utilizzando invece la scheda intel, riesco ad avere su entrambi gli schermi la stessa cosa, solamente che le risoluzioni sono sbagliate. Sbagliate in entrambi gli schermi.

Possibile che non esista un qualche programma funzionante che faccia sì che si riesca a regolare la giusta risoluzione a seconda dell'output???

Una volta ci riusivo senza troppi problemi semplicemente premendo CTRL+ALT+BACKSPACE a cavo VGA connesso. Ora questo non è più possibile. Ma perché?

Per essere più precisi riuscivo a farlo, ma le cose erano 2: o visualizzavo sul notebook o visualizzavo sullo schermo/proiettore.

A me andrebbe bene anche solo così.

----------

## ercoppa

Ciao fbcyborg, hai provato con disper? Tool in python che semplifica questi "switch" con schede Nvidia. 

Ad ogni modo, io con il clone mi sono mezzo arreso perchè non c'è modo di avere un giusto compromesso (ma credo dipende anche da che risoluzioni supporta il monitor esterno) su entrambi gli schermi e preferisco estendere senza troppi problemi.

Saluti.

----------

## fbcyborg

Ciao ercoppa, grazie per la risposta. 

No, non ho provato disper, perché per ora mi sono imbattuto nell'utilizzo di i810switch e i810rotate. 

Ho quasi trovato un sistema per risolvere ma non funziona benissimo.

Premesso che ho visto come si comporta su windows, e cioè che quando fa lo switch, prima di abilitare il secondo monitor esterno passa a 1024x768, e poi ripristina la risoluzione una volta che è attivo solo il monitor del notebook.

Allora mi son detto: forse posso fare la stessa cosa su Linux.

Dunque, per chi non lo sapesse, i810switch è il vero programma che fa lo switch fra VGA/LCD, e i810rotate non è altro che uno script in bash che usa i810switch.

Fin'ora non ho fatto altro che associare un tasto funzione a /usr/bin/i810rotate, ed effettivamente, problema delle risoluzioni a parte, funziona benissimo.

Lo script originale i810rotate è il seguente:

```
#!/bin/sh -

dev=`i810switch`

dev=`echo $dev`

if [ "$dev" = "CRT: off LCD: on" ] ; then

    i810switch crt on lcd on  > /dev/null

elif [ "$dev" = "CRT: on LCD: off" ] ; then

    i810switch crt off lcd on > /dev/null

else

    i810switch crt on lcd off > /dev/null

fi
```

Come potete ben vedere, a seconda dello stato c'è una transizione che lo porta in un altro.

Quello che vorrei fare è modificare questo script in modo tale che modifichi a caldo la risoluzione prima di switchare, a seconda dello stato successivo.

Quindi ho modificato lo script nel seguente modo:

```
#!/bin/sh -

dev=`i810switch`

dev=`echo $dev`

if [ "$dev" = "CRT: off LCD: on" ] ; then

    xrandr --output LVDS --mode 1024x768 --same-as VGA --mode 1024x768

    i810switch crt on lcd on  > /dev/null

elif [ "$dev" = "CRT: on LCD: off" ] ; then

    xrandr --output LVDS --mode 1280x800 --same-as VGA --mode 1280x800

    i810switch crt off lcd on > /dev/null

else

    xrandr --output VGA --mode 1024x768 --same-as LVDS --mode 1024x768

    i810switch crt on lcd off > /dev/null

fi
```

In questo modo, prima di accendere il VGA, setta entrambi le risoluzioni a 1024x768 (caso 1 e 3 del blocco if), mentre la ripristina a 1280x800 quando solo il monitor LCD del notebook deve essere acceso.

Tutti questi passaggi funzionano se avvio lo script manualmente (i.e. sh i810rotate), ma quando lo vado ad associare al pulsante Fn+F7 non c'è verso, non funziona.

Non riesco a capire perché. Sicuramente non conosco bene il bash script, ma non credo che c'entri nulla visto che funziona benissimo avviandolo manualmente.

Mi sapete aiutare?

Alla fine a me va bene anche se questo switch funzioni con la scheda intel e basta. Tanto è meglio che funzioni con una scheda che consumi poco!!!

----------

