Introdução
Para executar um programa em ambiente gráfico antes que um usuário logado em um ambiente gráfico dependa do seu gerenciador de exibição. Um gerenciador de exibição é responsável por fornecer uma interface de login e configurar seu ambiente gráfico, uma vez logado.
os mais importantes são os seguintes:
- O GDM é o gerenciador de exibição do GNOME.
- O LightDM é um gerenciador de exibição de desktop, pode usar vários front-ends escritos em qualquer kit de ferramentas.
- LXDM é o gerenciador de exibição do LXDE, mas independente do ambiente de área de trabalho do LXDE.
- O SDDM é um gerenciador de exibição moderno para o X11 e o Wayland, com o objetivo de ser rápido, simples e bonito.
Vamos revisar como configurar a execução do comando quando o gerenciador de exibição aparecer antes de qualquer usuário efetuar login e como executar algo quando alguém finalmente estiver logado.
Se você não souber qual deles está em execução, consulte esta pergunta: Há um simples comando linux que me dirá qual é o meu gerenciador de exibição?
IMPORTANTE
Antes de começar, você irá editar o arquivo que, exceto se mencionar, execute o comando como root
. Não remova coisas existentes nesses arquivos, exceto se você sabe o que está fazendo e tenha cuidado com o que você colocou nesses arquivos. Isso pode remover sua capacidade de fazer login.
GDM
Cuidado com o GDM, ele executará todo o script como root
, um código de erro diferente de 0 poderá limitar sua capacidade de login e o GDM aguardará até que seu script termine de torná-lo irresponsável enquanto o comando for executado. br>
Para obter uma explicação completa, leia a documentação .
Antes do login
Se você precisar executar comandos antes de um usuário conectado, poderá editar o arquivo:
/etc/gdm3/Init/Default
.
Este arquivo é um script de shell que será executado antes que o gerenciador de exibição seja exibido para o usuário.
Após o login
Se você precisar executar as tarefas depois que um usuário tiver efetuado login, mas antes que sua sessão tenha sido inicializada, edite o arquivo:
/etc/gdm3/PostLogin/Default
Se você deseja executar o comando após a sessão de inicialização da sessão (env, ambiente gráfico, login ...) edite o arquivo:
/etc/gdm3/PreSession/Default
LightDM
Eu vou falar sobre lightdm.conf e não sobre /etc/lightdm.conf.d/*.conf. Você pode fazer o que quiser, o importante é conhecer as opções que você pode usar. Tenha cuidado com lightDM, você já poderia ter vários outros scripts começando você deve ler precisamente o seu arquivo de configuração antes de editá-lo. também a ordem em que você coloca esse script pode influenciar a maneira como a sessão é carregada.
Antes do login
O LightDM funciona um pouco diferente dos outros, você colocará opções nos principais arquivos de configuração para indicar o script que será executado.
Edite o arquivo conf lightDM principal:
/etc/lightdm/lightdm.conf
adicione uma linha greeter-setup-script=/my/path/to/script
Este script será executado quando o lightDM mostrar a interface de login.
Após o login
Você pode editar /etc/lightdm/lightdm.conf
mais uma vez e adicionar uma linha:
session-setup-script=/script/to/start/script
Isso executará o script como root
depois que um usuário tiver efetuado login com êxito.
LXDM
Antes do login
Se você deseja executar o comando antes de qualquer usuário, você pode editar o script de shell:% /etc/lxdm/LoginReady
Após o login
Se você quer executar o comando depois de alguém logado, mas como root, você pode editar o script de shell:
/etc/lxdm/PreLogin
E se você quiser executar o comando como usuário conectado, poderá editar o script:% /etc/lxdm/PostLogin
SSDM
Não foi possível encontrar informações adequadas sobre isso ... Sinta-se à vontade para editar esta parte.