Passa da un ambiente desktop all'altro immediatamente durante la sessione desktop in esecuzione


16

C'è un modo per passare istantaneamente (preferibilmente dalla riga di comando) tra un ambiente desktop e un altro; diciamo, da Unity a GNOME classico senza dover chiudere nessuna delle applicazioni in esecuzione nella stessa sessione desktop?

(Si noti che non si tratta di installare gli ambienti.)


2
Vediamo chi si fa avanti con una risposta autorevole ma la mia sensazione è che, per quanto riguarda Ubuntu e i sapori ufficiali, è necessario disconnettersi e riconnettersi . C'era / c'è qualcosa chiamato Hybryde Fusion 13.04 che sembra offrire qualcosa di correlato ma sarebbe fuori tema qui.

sì, sembra che offra un ambiente desktop HY-D-V1 .. l'aspetto sembra essere abbastanza vicino a GNOME3, ma spero che offra un'esperienza migliore ..
preciso

E poi penso che Zorin offra anche qualcosa di simile. Anche quello sarebbe OT: D Ho deciso che una sessione Openbox pura senza desktop è abbastanza buona per me;)

Risposte:


11

Ho avuto un bel trucco mentre stavo cercando WM key binding, leggendo le pagine man.

man dm-tool

dm-tool è uno strumento per comunicare con il display manager di LightDM.

   list-seats
          List the active seats and sessions that are running.

   add-nested-seat
          Start an X server inside a session and connect it to a display manager.

   add-local-x-seat DISPLAY_NUMBER
          Connect an existing X server to the display manager.

   add-seat TYPE [NAME=VALUE...]
          Add a dynamic seat.
  • Correre:

    $ dm-tool add-nested-seat
    /org/freedesktop/DisplayManager/Seat2
    

    Aggiornamento : con la versione più recente, è possibile controllare le dimensioni della nuova finestra o renderla a schermo intero aggiungendo parametri --fullscreenoppure --screen XxY, vederedm-tool --help .

  • Ho una nuova finestra con una nuova sessione (intitolata Xephyr on):

    inserisci qui la descrizione dell'immagine

  • Quindi accedi utilizzando un altro desktop (LXDE):

    inserisci qui la descrizione dell'immagine

  • È possibile attivare o disattivare la cattura del mouse e della tastiera nella nuova sessione digitando Ctrl-Shift.

  • Controlla l'elenco dei posti:

    $ dm-tool list-seats
    Seat2
      CanSwitch=false
      HasGuestAccount=true
      Session2
        UserName='sneetsher'
    Seat0
      CanSwitch=true
      HasGuestAccount=true
      Session0
        UserName='sneetsher'
    

  • Per eseguire a schermo intero:

    Xephyr :1 -br -fullscreen &
    dm-tool add-local-x-seat 1
    

Riferimento: Using_Xephyr


non è esattamente quello che sto cercando, ma Xephyrè un buon strumento per sapere .. più di +1 .. dm-tool add-nested-seatsembra funzionare solo per me, non posso iniziare con una risoluzione specifica o schermo intero con Xephyr.. e chiudere non chiude lo slave X; Devo fare clic sul pulsante Chiudi (va bene?) ..
preciso

dm-tool add-nested-seatfunziona con alcune impostazioni predefinite, ecco perché corro Xephyra schermo intero in un nuovo display, quindi corro dm-toolsu quel display. "L'arresto non chiude lo slave X" perché non è la visualizzazione del sistema, ma non è sicuro se esiste un modo migliore. Quella sessione può anche essere chiusa come qualsiasi finestra con Alt + F4. E puoi passare da qualsiasi finestra Alt + Tab.
user.dz,

2
Nel frattempo dm-tool è stato aggiornato, ora accetta opzioni --fullscreeno --screen 800x600quindi probabilmente non è sempre necessario eseguire Xephyr direttamente per raggiungere questo obiettivo. Digita dm-tool --helpper vederlo documentato. (La pagina man verrà probabilmente aggiornata in seguito con le opzioni più recenti.)
mit

7

Questa è una risposta ipotetica, ma forse qualcuno con maggiori conoscenze in materia può basarsi sulle mie affermazioni. Se vengono eseguiti con un output xserver diverso, è possibile passare da uno all'altro premendo semplicemente Ctrl+ Alt+ F1, Ctrl+ Alt+ F2, ... ecc. Dov'è F1X1, F2è X2, .. ecc. Immagino che i comandi sarebbero sulla falsariga di:

  1. Nel tipo di terminale: sudo xhost +

    Si noti che ciò rappresenta un rischio per la sicurezza poiché è stato appena consentito l'accesso a qualsiasi output x.

  2. Ctrl+ Alt+F1

    Questo porta all'output X 1, il desktop predefinito è su f7

  3. Genere: export DISPLAY=localhost:1

    1 perché sei sull'uscita x 1, il valore predefinito è 0 e per le uscite aggiuntive utilizzerai numeri più alti, ad esempio: 2,3,4 ecc.

  4. Digitare: startxfce4(XFCE), startkde(KDE) o startlxde(LXDE) per aprire il desktop nel nuovo output X.

Questo non funziona ancora per me, credo sia perché devi eseguirlo come un altro utente, perché quando provo dice che il desktop è già in esecuzione sull'altro localhost? Questo è quanto ho potuto ottenere con questo.


1
Ci ho provato, ho solo Gnome / Unity. startxnon ha funzionato. Quindi lo startx &eseguo in background , funziona e ho creato una nuova sessione di gnome (il mio default) con lo stesso utente su tty8 (Ctrl + Alt + F8). Ho provato di nuovo con sudo xhost -, anche se è lo stesso utente, perché no, funziona anche. La disconnessione mi riporta a tty1.
user.dz

2

Punto di vista alternativo

È possibile eseguire un'altra xsession per un altro utente.

Crea un nuovo utente

sudo useradd test_test

Ora devi solo bloccare il tuo account Ctrl+ Alt+ L, quindi passare a un nuovo utente aggiunto e accedere. Nel menu di accesso è possibile scegliere tra l'ambiente desktop installato.

Avvia automaticamente la nuova xsession in new tty. Per me lo è tty8. Ora usando Ctrl+ Alt+ F7, posso tornare alla mia xsession utente. Utilizzando Ctrl+ Alt+ F8torna alla nuova sessione x utente.


1
questo è semplicemente passare da un account utente all'altro. Sto cercando un modo per passare a un ambiente diverso nella stessa sessione in cui le mie applicazioni dovrebbero preservare il loro stato tra lo switch ...
preciso

1
Questo è esattamente quello che stavo cercando per aumentare la produttività concentrandomi su un compartimento alla volta.
Banago,
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.