Alterne entre os ambientes da área de trabalho instantaneamente na sessão da área de trabalho em execução

16

Existe uma maneira de alternar instantaneamente (de preferência da linha de comando) entre um ambiente de desktop e outro; por exemplo, do Unity ao clássico GNOME sem precisar fechar nenhum dos aplicativos em execução na mesma sessão da área de trabalho?

(Observe que não se trata de instalar os ambientes.)

preciso
fonte
2
Vamos ver quem responde com autoridade, mas meu sentimento é que, no que diz respeito ao Ubuntu e aos sabores oficiais, você precisa se desconectar e se conectar novamente. Havia / existe algo chamado Hybryde Fusion 13.04 que parece oferecer algo relacionado mas isso seria fora de tópico aqui.
sim que parece oferecer alguma HY-D-V1 desktop ambiente .. a aparência parece ser bastante perto de GNOME3, mas espero que oferece melhor experiência ..
precisa
E então acho que Zorin também oferece algo semelhante. Isso também seria OT: D Decidi que uma sessão pura do Openbox sem área de trabalho é boa o suficiente para mim;)

Respostas:

11

Tive um bom truque enquanto procurava a ligação de teclas WM, lendo as páginas de manual.

man dm-tool

dm-tool é uma ferramenta para se comunicar com o gerenciador de exibição 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.
  • Corre:

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

    Atualização : Com a versão mais recente, é possível controlar as dimensões da nova janela ou deixá-la em tela cheia adicionando parâmetros --fullscreenou --screen XxY, consulte dm-tool --help.

  • Nova janela com nova sessão (intitulada Xephyr on):

    insira a descrição da imagem aqui

  • Em seguida, faça login usando outra área de trabalho (LXDE):

    insira a descrição da imagem aqui

  • Você pode alternar se o mouse e o teclado devem ser capturados na nova sessão digitando Ctrl-Shift.

  • Verifique a lista de assentos:

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

  • Para executar em tela cheia:

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

Referência: Using_Xephyr

user.dz
fonte
não é exatamente o que estou procurando, mas Xephyré uma boa ferramenta para saber sobre .. mais do que +1 .. apenas dm-tool add-nested-seatparece estar funcionando para mim, não pode começar com uma resolução especificada ou tela cheia com Xephyr.. e desligar não fecha o escravo X; Eu tenho que clique no botão fechar (isso é bom?) ..
precisa
dm-tool add-nested-seatfunciona com alguns padrões, é por isso que eu corro Xephyrcomo tela cheia em uma nova tela e depois corro dm-toolpara essa tela. "Desligar não fecha o escravo X" porque não é a visualização do sistema, mas não tenho certeza se existe uma maneira melhor. Essa sessão pode até ser fechada como qualquer janela com Alt + F4. E você pode alternar entre qualquer janela Alt + Tab.
user.dz
2
Enquanto isso, o dm-tool foi atualizado, agora aceita opções --fullscreenou, --screen 800x600portanto, nem sempre é necessário executar o Xephyr diretamente para conseguir isso. Digite dm-tool --helppara vê-lo documentado. (A página man irá provavelmente ser atualizado mais tarde com as opções mais recentes.)
mit
7

Essa é uma resposta hipotética, mas talvez alguém com mais conhecimento sobre o assunto possa se basear em minhas declarações. Se eles são executados sob uma saída diferente do xserver , você pode alternar entre eles simplesmente pressionando Ctrl+ Alt+ F1, Ctrl+ Alt+ F2, ... etc. Onde F1está X1, F2está X2, etc. etc. Eu estou supondo que os comandos seriam ao longo das linhas de:

  1. No tipo de terminal: sudo xhost +

    Observe que isso representa um risco de segurança porque você acabou de permitir que qualquer uma de suas saídas x acesse.

  2. Ctrl+ Alt+F1

    Isso leva você à saída 1 do X, a área de trabalho padrão está em f7

  3. Tipo: export DISPLAY=localhost:1

    1 porque você está na saída x 1, o padrão é 0 e para saídas adicionais você usará números mais altos, por exemplo: 2,3,4 etc.

  4. Digite: startxfce4(XFCE), startkde(KDE) ou startlxde(LXDE) para abrir a área de trabalho na nova saída X.

Isso ainda não funciona para mim, acredito que é porque você deve executá-lo como um usuário diferente, porque quando o tento diz que a área de trabalho já está sendo executada no outro host local? Isso é o máximo que pude entender com isso.

manga
fonte
11
Eu tentei, eu tenho apenas Gnome / Unity. startxnão funcionou. Então, eu o executo em segundo plano startx &, ele funciona e criou uma nova sessão do gnome (meu padrão) com o mesmo usuário no tty8 (Ctrl + Alt + F8). Tentei novamente, sudo xhost -pois, embora seja o mesmo usuário, por que não, também funciona. Logout me traz de volta a tty1.
user.dz
2

Ponto de vista alternativo

É possível executar outra xsession, para outro usuário.

Basta criar um novo usuário

sudo useradd test_test

Agora você só precisa bloquear sua conta Ctrl+ Alt+ L, depois mudar para um novo usuário adicionado e fazer login. No menu de login, você pode escolher entre o Ambiente de área de trabalho instalado.

Inicia automaticamente uma nova sessão x em new tty. Para mim é tty8. Agora, usando Ctrl+ Alt+ F7, posso retornar à minha xsession de usuário. Usando Ctrl+ Alt+ de F8volta ao novo usuário xsession.

c0rp
fonte
11
isso é simplesmente alternar entre contas de usuário . Estou procurando uma maneira de mudar para um ambiente diferente na mesma sessão em que meus aplicativos devem preservar seu estado entre os comutadores ...
precisa
11
Era exatamente isso que eu procurava para aumentar a produtividade, concentrando-se em um compartimento de cada vez.
Banago 5/09/19