Como substituo a área de trabalho por um aplicativo?

31

Às vezes, pode ser necessário que um usuário tenha acesso apenas a um determinado aplicativo. A execução do ambiente da área de trabalho pode ser indesejada, por motivos de segurança ou para obter uma melhor acessibilidade ao aplicativo fornecido.

Nesses casos, pode ser desejável substituir a área de trabalho por um aplicativo que é executado imediatamente após o login.

Outros usuários devem ter acesso normal às áreas de trabalho.

Takkat
fonte

Respostas:

36

Substituindo a área de trabalho por um aplicativo

Definir sessão definida pelo usuário

Primeiro, teremos que definir uma Sessão Definida pelo Usuário que lide com o caso especial quando nenhuma área de trabalho deve ser carregada. Definiremos esta sessão criando um arquivo custom.desktop em / usr / share / xsessions / com um conteúdo semelhante a este:

[Desktop Entry]
Name=Custom
Comment=Custom Session to run ~./.xsession
Exec=/home/<username>/.xsession
X-Ubuntu-Gettext-Domain=<gnome-session-3.0>

Isso instruirá o GDM a executar o script .xsessionlocalizado na HOME do usuário <username>.

X-Ubuntu-Gettext-DomainÉ necessário opcional para uma tradução correta do idioma, caso carregemos o desktop Unity / GNOME posteriormente (substitua pelo gdm10.04).

Faça um script para começar

Este script ~ / .xsession pode parecer tão simples quanto isso:

#! /bin/bash

xterm
logout

Carregar sessão personalizada no logon

Se agora definirmos carregar nossa sessão "Personalizada" durante o login do usuário na tela gdm, apenas o X-Terminal será iniciado e voltaremos ao gdm na saída. Da próxima vez que fizermos login como usuário, essa configuração será lembrada como padrão.

Executar aplicativo que precisa de gerenciamento do Windows

É claro que ainda não somos capazes de executar um aplicativo que precisa de um gerenciador de janelas como o GNOME. Para fazer isso, substitua o script .xsession por algo como:

#! /bin/bash

gnome-wm &
firefox
logout

Podemos ver que o gerenciador de janelas do GNOME agora está carregado, mas nenhum elemento da área de trabalho está presente. Isso permite que um aplicativo (por exemplo, o Firefox aqui) seja iniciado.

Mas tome cuidado com o que você faz: se minimizarmos o aplicativo na bandeja inexistente, teremos um bom papel de parede para observar. Por esse motivo, é muito importante incluir logoutno final do script o logout da sessão após o término do aplicativo. Realmente não há outro programa em execução para fazer isso até você adicionar um ao seu script. Você deliberadamente substituiu sua área de trabalho apenas pelo firefox (uma má ideia).

É claro que também poderíamos iniciar gnome-desktopou gnome-session(resp. Options) a partir do script, mas é isso que já fazemos por padrão.

Takkat
fonte
Apenas um problema com a tela cheia em sessões personalizadas. Veja a pergunta askubuntu.com/questions/184610/…
Juzer Ali
Sua solução cria uma sessão vista por todos os usuários, mas executando um script de um usuário específico. -- Não é ideal.
Robert Siemer