startx
runs xinit
que inicia um servidor X e uma sessão do cliente. A sessão do cliente é ~/.xinitrc
, se presente, e de outra forma /etc/X11/xinit/xinitrc
(o local pode variar entre distribuições). O que esse script faz varia entre distribuições. No Debian (incluindo derivados como o Raspbian), /etc/X11/xinit/xinitrc
runs /etc/X11/Xsession
, que por sua vez executa scripts em /etc/X11/Xsession.d
. Os scripts Debian procuram por uma sessão de usuário em outros arquivos ( ~/.xsession
, ~/.xsessionrc
, ~/.Xsession
) e, se nenhuma configuração de usuário for aplicável, executa x-session-manager
(voltando a x-window-manager
se não [gerenciador de sessão] está instalado, voltando a x-terminal-emulator
no caso improvável de que nenhum gerenciador de janelas esteja instalado).
Se você quiser controlar o que é executado, crie um dos arquivos do usuário, ~/.xsession
ou ~/.xinitrc
. O arquivo ~/.xsession
também é usado se você fizer login em um gerente de exibição (ou seja, se você digitar sua senha em uma janela da GUI). O arquivo ~/.xinitrc
é específico de xinit
e startx
. Usar ~/.xsession
passa por /etc/X11/Xsession
, portanto, configura itens como métodos de entrada, recursos, agentes de senha etc. Se você usar .xinitrc
, terá que fazer todos eles manualmente. Mais uma vez, estou descrevendo o Debian aqui, outras variantes do Unix podem configurar as coisas de forma diferente. O uso de ~/.xinitrc
para especificar o que é executado quando você executa startx
ou xinit
é universal.
Se você usa ~/.xinitrc
ou ~/.xsession
, esse arquivo (normalmente um shell script, mas não precisa ser se você realmente quiser usar outra coisa) deve preparar o que precisa ser preparado (por exemplo, configurações do teclado , recursos, applets que não são iniciados pelo gerenciador de janelas, etc.) e, em seguida, no final, execute o programa que gerencia a sessão. Quando o script termina, a sessão é encerrada. Normalmente, você usaria exec
no final do script para substituir o script pelo gerenciador de janelas ou pelo gerenciador de janelas.
Seu sistema presumivelmente tem /usr/bin/startlxde
como o gerenciador de sessão padrão do sistema. No Debian e derivados, você pode verificar os gerenciadores de sessão disponíveis com
update-alternatives --list x-session-manager
ou obtenha uma descrição mais detalhada indicando qual deles é atual com
update-alternatives --display x-session-manager
Se o LXDE não fosse o padrão para todo o sistema e você quisesse torná-lo o padrão para sua conta, você poderia usar o seguinte arquivo ~/.xsession
:
#!/bin/sh
exec startlxde
Em algumas variantes do Unix, isso seria executado apenas para logins gráficos, não para startx
, então você também precisaria criar um ~/.xinitrc
idêntico. (Ou não idêntico: em ~/.xsession
, você pode querer fazer outras coisas, porque esse é o primeiro arquivo que é executado em uma sessão gráfica; por exemplo, você pode colocar . ~/.profile
no topo, para definir algumas variáveis de ambiente). / p>
Se você quiser experimentar outros ambientes como um único, você pode especificar um programa diferente para ser executado na linha de comando do startx
em si. O programa startx
tem um capricho: você precisa usar o caminho completo para o programa.
startx /usr/bin/startkde
O comando startx
também permite especificar argumentos para passar para o servidor. Por exemplo, se você quiser executar várias sessões GUI ao mesmo tempo, poderá passar um número de exibição diferente a cada vez. Passar argumentos do servidor após --
na linha de comando de startx
.
startx /usr/bin/startkde -- :1