Respostas:
~/.xinitrcé executado por xinit, que normalmente é chamado via startx. Este programa é executado após o login: primeiro você faz login em um console de texto e depois inicia a GUI startx. A função de .xinitrcé iniciar a parte da GUI da sessão, geralmente definindo algumas configurações relacionadas à GUI, como ligações de teclas (com xmodmapou xkbcomp), recursos X (com xrdb), etc., e iniciar um gerenciador de sessões ou gerenciador de janelas ( possivelmente como parte de um ambiente de desktop).
~/.xsessioné executado quando você efetua login no modo gráfico (em um gerenciador de exibição ) e o gerente de exibição chama o tipo de sessão “personalizado”. (Com o gerenciador de exibição histórico xdm, .xsessionsempre é executado, mas com os gerenciadores de exibição modernos que permitem ao usuário escolher o tipo de sessão, você geralmente precisa escolher "personalizado" para .xsessionexecutar.) Sua função é 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. Também é executado a partir de startxse o usuário não tiver um .xinitrc, porque nesse caso startxretorna aos mesmos scripts de inicialização da sessão que são usados para o login da GUI. É executado relativamente cedo, depois de carregar recursos, mas antes de iniciar qualquer programa, como um agente-chave, um daemon D-Bus, etc. Geralmente, define variáveis que podem ser usadas em scripts de inicialização posteriores. Ele não possui nenhuma documentação oficial que eu conheça, você precisa procurar na fonte para ver o que funciona.
.xinitrce .xsessionsão características históricas 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 Debian e as distribuições que não são baseadas no Debian não o possuem, a menos que tenham implementado algo semelhante.
.xprofileé muito parecido com .xsessionrc, mas faz parte do script de inicialização da sessão do GDM (o gerenciador de exibição do GNOME), portanto, é lido apenas se você efetuar login no GDM.
De acordo com outra discussão, startx + ~ / .xsession e no ~ / .xinitrc, resulta em funcionalidade reduzida (xfce4, sid)
Em primeiro lugar:
.xsessionrcé para manter variáveis de ambiente globais . A ênfase é minha.Em segundo lugar:
40x11-common_xsessionrcin/etc/X11/Xsession.dé originário antes50x11-common_determine-startup. Então.xsessionrcé lido antes.xsessione quaisquer variáveis de ambiente definidas ficará disponível para os aplicativos são executados pelos comandos.xsession.
Leitura adicional: