Start X at Login (Italiano)
Questo articolo spiega come avviare automaticamente il Server X dopo il login in un terminale virtuale attraverso l'utilizzo del comando startx, il cui comportamento può essere modificato come riportato nella pagina relativa a xinitrc, ad esempio per scegliere quale window manager avviare.
In alternativa, è possibile utilizzare un display manager per avviare automaticamente X e fornire un login grafico.
File di configurazione delle shell
Se si usa Bash, aggiungere il comando al proprio ~/.bash_profile
.
Se il file non esiste lo si copi da /etc/skel/.bash_profile
.
Se si usa Zsh aggiungere il comando al file ~/.zlogin
o ~/.zprofile
.
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
- È possibile sostituire
-eq 1
con-le 3
(per i vt dal 1 al 3) se si desidera avvalersi del login grafico su più di un terminale virtuale. - X deve essere sempre avviato dalla stessa tty dove si è effettuato il login, in modo che la sessione di logind venga mantenuta. Questo comportamento è garantito dal file
/etc/X11/xinit/xserverrc
. xinit
è generalmente più veloce distartx
, ma è necessario specificare manualmente dei parametri aggiuntivi come-nolisten tcp
.
Se si utilizza la Fish shell, è necessario aggiungere quanto segue in fondo al proprio ~/.config/fish/config.fish
# start X at login if status --is-login if test -z "$DISPLAY" -a $XDG_VTNR -eq 1 exec startx -- -keeptty end end
Utilizzando systemd
Si crei un file .service (ad esempio /etc/systemd/system/xinit@.service
):
[Unit] Description=startx for user %i After=x@vt7.service systemd-user-sessions.service Wants=x@vt7.service Conflicts=getty@tty7.service [Service] User=%i TTYPath=/dev/tty7 PAMName=login Environment=DISPLAY=:0 WorkingDirectory=/home/%I Nice=0 ExecStart=/bin/bash -l -c "cd; startx >/dev/null 2>&1" [Install] WantedBy=graphical.target
Assicurarsi che ~.xinitrc
esista e sia configurato in modo corretto.
Si abiliti ed attivi quindi il servizio.
Suggerimenti
- Il metodo appena presentato può essere combinato con il login automatico da console virtuale. Quando si utilizza questo metodo sarà necessario modificare il servizio di systemd per l'autologin in modo che DBus venga avviato prima della lettura di
~/.xinitrc
, per permettere così l'avvio di PulseAudio. (si veda BBS#155416)
- Se si desidera mantenere il login su TTY quando la sessione di X viene terminata, si rimuova
exec
.
- Per redirigere l'output della sessione di X su un file, si crei un alias:
alias startx='startx & > ~/.xlog'
- Nota: la ridirezione dello stderr (
startx &>
) crea problemi all'avvio di X da utente normale. Si veda a tal proposito Xorg#Rootless Xorg (v1.16)[broken link: invalid section].