Come dividere verticalmente il widescreen in due aree di lavoro virtuali su Ubuntu / Gnome?


23

Il mio nuovo laptop ha un grande schermo 16: 9 e trovo difficile utilizzarlo completamente durante il 95% delle volte che non guardo film HD su di esso.

Vorrei configurarlo come una sorta di doppio schermo virtuale suddividendo lo schermo fisico in due aree di lavoro. So che potrei disporre manualmente le mie finestre, ma vorrei essere in grado di ingrandire una finestra e fare in modo che consumasse solo metà del monitor, e che le sue finestre di dialogo pop-up fossero centrate sul suo mezzo schermo, quel genere di cose.

C'è qualche tipo di plug-in disponibile per fare questo?


Se stai usando compiz potresti trovare il plugin grid più semplice, vedi la mia risposta qui sotto.
kynan,

Risposte:


24

puoi usare " fakexinerama " per ottenere ciò che desideri:

 Fake Xinerama is a replacement libXinerama library that instead 
 of querying the XServer reads ~/.fakexinerama and provides fake 
 information about Xinerama screens based on this file. It can be 
 used to fake a Xinerama setup even on computers with just one monitor
 or to fake Xinerama setup other than one specified in the XServer 
 configuration (e.g. making one screen smaller when using two same 
 screens). It's probably only useful for developers.

1
Grazie, funziona perfettamente e meglio di quanto sperassi in realtà. I miei dock, le barre dei pannelli e le finestre mobili si estendono sullo schermo fisico, ma le app ingrandite e "a schermo intero" (comprese le mie istanze guest di vmware) mantengono educatamente la loro metà dello schermo. Sono abbastanza nuovo su Linux, quindi l'hacking alle impostazioni del mio display mi è sembrato un po 'rischioso, ma non c'è davvero molto lavoro da fare. Sto documentando i miei esatti passi per altri dilettanti di Linux (come me) in una risposta aggiuntiva di seguito.
David

2
Il collegamento è interrotto. Qualche idea su dove potrei trovare questo software?
Maxime

17

Per espandere il suggerimento di Akira sopra sull'utilizzo del "falso xinerama" di Lubos Lunak, ecco esattamente come l'ho fatto funzionare per me:

  1. Ho scaricato questo file Xinerama.c dal sito Fake Xinerama .
  2. Ho aperto un terminale e sono passato alla cartella delle cartelle in cui ho salvato Xinerama.c.
  3. Ho eseguito:
    gcc -O2 -Wall Xinerama.c -fPIC -o libXinerama.so.1.0.0 -shared
  4. Ho aperto nautilus (il file explorer gnome) come root, digitando Alt-F2 e quindi:
    gksu nautilus
  5. Sono passato a / usr / lib, ho trovato libXinerama.so.1.0.0 e ne ho fatto una copia di backup.
  6. Ho copiato libXinerama.so.1.0.0 dalla mia directory di download nella directory / usr / lib, sovrascrivendo la copia lì (di cui avevo appena eseguito il backup nel passaggio 5, quindi potrei annullarlo in seguito, se necessario). le cose chiariscono che è stato utile notare che la dimensione del file della versione "falsa" era maggiore (12,6 KB) rispetto alla versione "reale" che stavo sostituendo (8,6 KB).
  7. Ho creato un nuovo file di testo chiamato .fakexinerama nella mia directory / home / dave e ci ho messo questo: (basato sulla mia dimensione fisica dello schermo 1440x900)
    2
    0 0 720 900
    720 0 720 900

Fake Xinerama ti consente di definire qualsiasi tipo di configurazione dello schermo virtuale che desideri, ma voglio solo uno schermo diviso verticale. Per raggiungere questo obiettivo sul tuo monitor, di dimensioni X per Y pixel, guardando il mio esempio di file, basta sostituire 720 con X / 2 e sostituire 900 con Y.

Questo è tutto. Sono uscito e rientrato, ed ero attivo e funzionante.

Grazie ancora a Lubos Lunak per aver creato questa mod e ad akira per avermi indicato.


Questo mi ha aiutato molto con un display a tre teste. Xinerama è piuttosto lento con tre desktop, quindi l'utilizzo di questo mi ha permesso di metterne due in twinview senza il fastidioso massimizzare entrambi i problemi e di avere il terzo come schermo X separato unito al twinview con Xinerama. Grazie per aver dedicato del tempo a scrivere i passaggi David!
Kyle Brandt,

7

Ora c'è un nuovo progetto chiamato FakeXRandR che funziona davvero direttamente.

Questo è uno strumento per imbrogliare un server X11 per credere che ci siano più monitor di quanti ce ne siano effettivamente. Si collega a libXRandR e libXinerama e sostituisce determinate configurazioni monitor configurabili con più monitor virtuali. Uno strumento fornito con questo pacchetto può essere utilizzato per configurare la suddivisione dei monitor.


Ho usato fakexrandr con successo una volta ogni tanto. Sfortunatamente il mio schermo diventa confuso quando ho xorg.conf (di cui ho bisogno per una risoluzione personalizzata per il mio monitor ultrawide). Sono costretto a cancellare la configurazione di fakexrandr, riavviare X e riconfigurare fakexrandr.
JAponte

3

Questo può essere fatto in XRandR 1.5 senza software aggiuntivo. Mentre né fakexinerama né FakeXRandR hanno funzionato per me su Xubuntu, questa soluzione ha finalmente diviso lo schermo in due.

Per dividere il monitor, procedi come segue:

  1. Inserire xrandrnel terminale per verificare il nome dell'uscita e la risoluzione corrente del display che si desidera dividere.
    Sul mio sistema il risultato è stato:

    Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
    HDMI1 disconnected (normal left inverted right x axis y axis)
    HDMI2 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 509mm x 286mm
       1920x1080     60.00*+  50.00    59.94
       1920x1080i    60.00    50.00    59.94  
       1600x900      60.00  
       1280x1024     75.02    60.02  
       1152x864      75.00  
       1280x720      60.00    50.00    59.94  
       1024x768      75.08    60.00  
       800x600       75.00    60.32  
       720x576       50.00  
       720x576i      50.00
       720x480       60.00    59.94
       720x480i      60.00    59.94
       640x480       75.00    60.00    59.94
       720x400       70.08
    VGA1 disconnected (normal left inverted right x axis y axis)
    VIRTUAL1 disconnected (normal left inverted right x axis y axis)
    

    Possiamo vedere che il mio monitor è collegato a HDMI2 e la risoluzione è impostata su 1920x1080.

  2. Aggiungi 2 monitor virtuali con il xrandr --setmonitorcomando assicurandoti che si sovrappongano al tuo display fisico e siano posizionati uno accanto all'altro. La sintassi del comando è (senza virgolette):

    xrandr --setmonitor "monitor_name" "width_px"/"width_mm"x"height_px"/"height_mm"+"x_offset_px"+"y_offset_px" "output_name" 
    

    Per il mio sistema era:

    xrandr --setmonitor HDMI2~1 960/254x1080/286+0+0 HDMI2
    xrandr --setmonitor HDMI2~2 960/255x1080/286+960+0 none
    
  3. Mentre quanto sopra ha già configurato i monitor virtuali sul mio sistema, le modifiche non sono state applicate fino a quando non ho eseguito (sembra aggiornare xrandr):

    xrandr --fb 1921x1080
    xrandr --fb 1920x1080
    

Per rendere persistenti le modifiche dopo il riavvio, si desidera eseguire questi comandi quando si accede. Puoi farlo aggiungendo i comandi alla fine del tuo ~/.profilefile.


1
È bello che esista proprio in xrandr, fantastico. Ma rende utilizzabile solo il lato sinistro del mio monitor, la parte destra non mostra nulla. E non viene visualizzato alcun errore. - Oh, sembra che Awesome WM non supporti i monitor, ma usi solo le uscite. Quindi hai bisogno di supporto anche in WM.
nert

Oh, non importa, fantastico ha il supporto per i monitor di xrandr, semplicemente non ha funzionato per me. Ma fantastico può farlo da solo: awesomewm.org/apidoc/classes/screen.html#screen:fake_add
nert

1

Mi sono imbattuto in un articolo su omgubuntu che offre un modo abbastanza semplice per imitare la funzionalità Windows Snap in Ubuntu / Gnome usando il pannello di controllo di Compiz. Questo Snap di Windows mi lascia con un desktop widescreen, ma le finestre stesse possono essere facilmente agganciate per riempire entrambi i metà dello schermo. (Non è esattamente quello che stavo cercando in origine, ma comunque abbastanza utile.)


1

Ho usato una soluzione a queste domande esatte per alcuni anni usando un triplehead2go. Quel dispositivo unirà fino a 3 monitor e segnalerà un enorme monitor a X.

Ecco come dividere quell'enorme monitor in aree di lavoro virtuali in xorg.conf:

Section "Device"
    # ... your other settings above
    Option         "TwinViewXineramaInfoOverride" "1280x1024+0+0, 1280x1024+1280+1, 1280x1024+2560+0"
EndSection

E se stai utilizzando i driver nvidia più recenti, questi driver forniscono la propria estensione xinerama che sembra ignorare l'impostazione sopra, quindi è necessario aggiungere quanto segue in quella sezione del dispositivo:

Option         "NoTwinViewXineramaInfo" "true"

0

Sono abbastanza sicuro che puoi farlo modificando il tuo file di configurazione X , ma non lo farei solo perché probabilmente avrei rotto la mia configurazione di visualizzazione. Se provi questo, fai molta attenzione, esegui il backup per visualizzare la configurazione e assicurati di disporre di un accesso alternativo da utilizzare nel caso in cui sia necessario correggere il display.

Potresti ottenere maggiore soddisfazione da un gestore di finestre di piastrellatura come xmonad o persino eseguire compiz per controllare come le finestre si aprono, chiudono e affiancano .


0

Funziona bene per me:

Ho usato quanto segue per due monitor (1280x1024 + 2048x1152):

3
0 0 1280 1024
1280 0 1024 1152
2304 0 1024 1152

0

Se stai usando compiz potresti trovare il suo plug-in grid una soluzione più semplice e flessibile. Puoi configurarlo per affiancare una finestra sulla metà sinistra / destra dello schermo quando lo trascini contro il bordo.

Questa è la funzione Snap finestra descritta nell'articolo a cui David collega. Inoltre puoi configurare scorciatoie e fare in modo che una finestra occupi la metà superiore / inferiore o un quarto dello schermo.

Xinerama provoca un notevole successo in termini di prestazioni (poiché replica le azioni X in tutti gli schermi di Xinerama) e non funziona bene con i gestori di finestre composite.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.