startx
é executado, o xinit
que inicia um servidor X e uma sessão do cliente. A sessão do cliente está ~/.xinitrc
presente, e caso contrário /etc/X11/xinit/xinitrc
(o local pode variar entre as distribuições). O que esse script faz varia entre as distribuições. No Debian (incluindo derivativos como o Raspbian), as /etc/X11/xinit/xinitrc
execuções /etc/X11/Xsession
que por sua vez executam scripts /etc/X11/Xsession.d
. Os scripts Debian olhar para uma sessão de usuário em outros arquivos ( ~/.xsession
, ~/.xsessionrc
, ~/.Xsession
) e, se nenhuma configuração de usuário é aplicável, runs x-session-manager
(caindo de volta para x-window-manager
se nenhum [gerente de sessão] está instalado, caindo de volta para x-terminal-emulator
no caso improvável de que nenhum gerenciador de janelas é instalado).
Se você deseja controlar o que é executado, pode criar um dos arquivos do usuário, ~/.xsession
ou ~/.xinitrc
. O arquivo ~/.xsession
também é usado se você efetuar login em um gerenciador de exibição (ou seja, se você digitar sua senha em uma janela da GUI). O arquivo ~/.xinitrc
é específico para xinit
e startx
. O uso ~/.xsession
é feito /etc/X11/Xsession
para configurar coisas como métodos de entrada, recursos, agentes de senha, etc. Se você usar .xinitrc
, precisará fazer tudo isso manualmente. Mais uma vez, estou descrevendo o Debian aqui, outras variantes do Unix podem configurar as coisas de maneira 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 (geralmente um script de shell, mas não precisa ser, se você realmente quiser usar outra coisa) deve preparar o que precisar ser preparado (por exemplo, configurações do teclado, recursos, applets que não foram iniciados pelo gerenciador de janelas etc.) e, no final, execute o programa que gerencia a sessão. Quando o script termina, a sessão termina. Normalmente, você usaria exec
no final do script para substituir o script pelo gerenciador de sessões ou gerenciador de janelas.
Seu sistema presumivelmente tem /usr/bin/startlxde
como o gerenciador de sessões padrão em todo o sistema. No Debian e derivativos, você pode verificar os gerenciadores de sessões disponíveis com
update-alternatives --list x-session-manager
ou obtenha uma descrição mais detalhada indicando qual é o atual com
update-alternatives --display x-session-manager
Se o LXDE não fosse o padrão em todo o sistema e você desejasse torná-lo o padrão para sua conta, você poderia usar o seguinte ~/.xsession
arquivo:
#!/bin/sh
exec startlxde
Em algumas variantes do Unix, isso funcionaria apenas para logins gráficos, não para startx
, então você também precisaria criar um idêntico ~/.xinitrc
. (Ou não idêntico: em ~/.xsession
, você pode querer fazer outras coisas, porque esse é o primeiro arquivo executado em uma sessão gráfica; por exemplo, você pode colocar . ~/.profile
no topo, para definir algumas variáveis de ambiente.)
Se você quiser experimentar outros ambientes como únicos, poderá especificar um programa diferente para executar na startx
própria linha de comando . O startx
programa tem uma peculiaridade: você precisa usar o caminho completo para o programa.
startx /usr/bin/startkde
O startx
comando também permite especificar argumentos para passar para o servidor. Por exemplo, se você deseja executar várias sessões da GUI ao mesmo tempo, pode passar um número de exibição diferente a cada vez. Passe argumentos do servidor depois --
na linha de comando de startx
.
startx /usr/bin/startkde -- :1
startx
inicia a sessão padrão do Xfce4. No login de usuário da minha esposa em tty1 ou tty2. Seustartx
comando está definido para executar o Cinnamon (especificado em~/.xsession
). Para o segundo servidor X, não preciso especificar o$DISPLAY
indicado na última parte da sua resposta. Embora isso certamente funcione. Torna-o automaticamente o segundo$DISPLAY
etc. A configuração é ótima. Não há logon e logoff de uma sessão gráfica, apenas um atalho de teclado para alternar perfis de usuário. Obrigado por esta resposta útil!