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!Não:
startx
é configurável. De acordo com a página do manual :startx
não é a única maneira de iniciar o X (como você vê emstartlxde
). Astartx
página do manual ajuda novamente:Por outro lado, se você quiser escolher uma GUI (LXDE, KDE, etc),
xdm
pareçam iguaiskdm
,gdm
ouLightDM
serão usados para selecionar diferentes tipos de área de trabalho. No Debian, geralmente usokdm
, porque isso permite diferentes tipos de desktop. Os empacotadoresgdm
não permitem a maioria dos tipos de desktops, tornando-o inadequado para minhas necessidades.xdm
usa um conjunto diferente de scripts para iniciar, por exemplo, seu~/.xsession
script junto com os scripts do sistema. Os parecidos podem ignorar isso e usar seus próprios scripts. Mas é um ponto de partida.fonte
.xinitrc
é um script, que o torna configurável. Poderia executar o LXDE diretamente se codificado para fazer isso.startlxde
não é um frontend para o xinit, é um iniciador para o gerenciador de sessões do LXDE. Não é um substitutostartx
, é algo que você pode executar~/.xinitrc
.