~/.xinitrc
é executado por xinit
, que geralmente é chamado por startx
. Este programa é executado após o login: primeiro você efetua login em um console de texto e, em seguida, inicia a GUI com startx
. A função de .xinitrc
é iniciar a parte da GUI da sessão, geralmente definindo algumas configurações relacionadas à GUI, como associações de teclas (com xmodmap
ou xkbcomp
), recursos X (com xrdb
) etc. e para iniciar um gerenciador de sessão ou um gerenciador de janelas (possivelmente como parte de um ambiente de área de trabalho).
~/.xsession
é executado quando você faz login no modo gráfico (em um gerenciador de exibição ) e o O gerenciador de exibição chama o tipo de sessão "customizada". (Com o gerenciador de exibição histórico xdm, .xsession
é sempre executado, mas com gerenciadores de exibição modernos que dão ao usuário uma opção de tipo de sessão, geralmente é necessário escolher “personalizado” para que .xsession
seja executado.) para definir parâmetros de tempo de login (como variáveis de ambiente) e para iniciar a sessão da GUI. Um típico .xsession
é
#!/bin/sh
. ~/.profile
. ~/.xinitrc
~/.xsessionrc
é executado no Debian (e derivados como Ubuntu, Linux Mint, etc.) pelos scripts de inicialização do X em um login da GUI, para todos os tipos de sessão e (eu acho) de todos os gerenciadores de exibição. Ele também é executado a partir de startx
se o usuário não tiver um .xinitrc
, porque nesse caso startx
recai nos mesmos scripts de inicialização de sessão que são usados para o login da GUI. Ele é executado relativamente cedo, depois de carregar recursos, mas antes de iniciar qualquer programa, como um agente de chave, um daemon D-Bus, etc. Normalmente, ele define variáveis que podem ser usadas por scripts de inicialização posteriores. Não tem nenhuma documentação oficial que eu saiba, você tem que cavar a fonte para ver o que funciona.
.xinitrc
e .xsession
são recursos históricos do sistema X11 Window, portanto devem estar disponíveis e ter um comportamento semelhante em todos os sistemas Unix. Por outro lado, .xsessionrc
é um recurso do Debian e distribuições que não são baseadas no Debian não o possuem, a menos que tenham implementado algo similar.
.xprofile
é muito semelhante a .xsessionrc
, mas faz parte do script de inicialização da sessão do GDM (o gerenciador de exibição do GNOME), portanto, ele é lido apenas se você efetuar login com o GDM.