O que é ".xsession"?

62

Qual é o objetivo do .xsessionarquivo na pasta pessoal? O que deve ser colocado lá? Os ambientes de área de trabalho não usam esse arquivo e, para a inicialização do X a partir do tty, existe .xinitrc.

Mirzhan Irkegulov
fonte

Respostas:

58

Se você efetuar login no modo de texto, inicie uma sessão da GUI com xinit ou com o script wrapper startx, xinitfaça o seguinte:

  • Inicie um servidor X (geralmente por meio do script /etc/X11/xinit/xserverrc).
  • Geralmente, execute alguns scripts /etc/X11(normalmente /etc/X11/xinit/xinitrc), dependendo de como ele é configurado.
  • Execute ~/.xinitrc, se existir. Se não existir, execute um cliente padrão (tradicionalmente xterm).
  • Quando ~/.xinitrcterminar, mate o servidor X.

Se você fizer login em modo gráfico em um gerenciador de tela X (xdm, gdm, kdm, wdm, LightDM, ...), tradicionalmente, o que é executado depois de iniciar sessão é alguns scripts em /etc/X11seguida ~/.xsession.

~/.xsessiontem o papel de ~/.profilee ~/.xinitrccombinado: ele deve executar a inicialização inicial da sua sessão (por exemplo, definir variáveis ​​de ambiente) e iniciar programas específicos para a GUI (geralmente pelo menos o gerenciador de janelas).

Atualmente, a maioria dos gerenciadores de exibição do X oferece a opção de uma sessão. A escolha de uma sessão específica lançou um ambiente de área de trabalho específico, gerenciador de sessões, gerenciador de janelas. O que é executado, então, é apenas o DE / SM / WM e os programas que ele escolhe iniciar, com base nos arquivos de configuração que ele escolhe ler. Muitos ambientes fornecem uma "sessão personalizada" que lê o tradicional ~/.xsession.

Gilles 'SO- parar de ser mau'
fonte
3
Não sei o que são esses "muitos ambientes", mas pelo menos o kdm ignora silenciosamente o arquivo «~ / .xsession».
Hi-Angel
11
@ Hi-Angel O .xsessionarquivo será lido apenas se você selecionar um tipo de sessão específico. Eu sei que, para o Gdm, os desenvolvedores upstream não querem incluir um que seja executado .xsessionpor padrão e deixem para cada distribuição, e muitas distribuições não se incomodam ou não percebem a necessidade. Não sei qual é a situação do kdm.
Gilles 'SO- stop be evil'
Bem, você sabe, eu descobri no man kdm que o kdm tem um arquivo próprio /etc/kde4/kdm/Xsessionpara ser executado como usuário logo após o login. Eles são mentirosos - o arquivo (que está presente entre nós) nunca é tocado pelo kdm, eu até o removi e isso não mudou nada.
Hi-Angel
11
@ Hi-Angel O que Gilles significa é que, na tela de login gráfica, muitas vezes você tem um menu suspenso com uma lista de vários ambientes. Se você escolher "KDE", isso começará e será ignorado .xsession, como você descreveu. Mas se, em vez do "KDE", você escolher "Sessão personalizada", .xsessionserá executado em vez do KDE. Eu uso isso, por exemplo, porque corro just xfce4-panele FVWM 2 como minha "área de trabalho"; se o KDE estivesse instalado em um sistema que eu estava usando, ele seria completamente ignorado.
31717 Curt J. Sampson
15

A inicialização da sessão X pode ser complicada atualmente. Um bom lugar para começar é o script /etc/X11/Xsessionpara ver como as coisas serão executadas.

Nos meus sistemas Debian / Ubuntu, o script /etc/X11/Xsessiondefine a variável USERXSESSION=$HOME/.xsession. Posteriormente, o script /etc/X11/Xsession.d/50x11-common_determine-startupprocura esse script e o usa como a sessão principal, se permitido pela política do sistema /etc/X11/Xsession.optionse se nenhuma outra sessão foi solicitada pelo gerenciador de exibição.

Jim Paris
fonte
8

Eu recomendo fortemente que você dê uma olhada no livro Guia do administrador do sistema X Window: para X versão 11 . O capítulo 2 explica a finalidade .xsessione todo o processo de configuração de uma configuração de amostra. Também é uma boa atualização para toda a terminologia relacionada à janela x (e espero que você não se assuste :)). Você pode obter o livro em

http://archive.org/details/xwindowsystemadm08muimiss

Embora esteja um pouco desatualizado, você pode encontrar muitas informações dos conceitos subjacentes que não mudaram até hoje e são muito legíveis. Além disso, é realmente engraçado dar uma olhada no que era de primeira qualidade naqueles dias.

user1146332
fonte
7

.xsession é o script de inicialização tradicional para o ambiente X11. Atualmente, com gerentes de sessão como o kdm, não é mais tão útil, mas em um sistema tradicionalmente configurado. É isso que é executado após iniciar o X11 com o startx.

Nikodemus RIP
fonte