Difference between revisions of "Start X at Login (Italiano)"

From ArchWiki
Jump to: navigation, search
m
(simplification and beautification of wikilinks, fixing whitespace, capitalization and section fragments (https://github.com/lahwaacz/wiki-scripts/blob/master/link-checker.py (interactive)))
 
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:X Server (Italiano)]]
+
[[Category:X server (Italiano)]]
 
[[Category:Boot process (Italiano)]]
 
[[Category:Boot process (Italiano)]]
[[en:Start X at Boot]]
+
[[de:Xinitrc]]
[[es:Start X at Boot]]
+
[[el:Xinitrc]]
 +
[[en:Xinitrc]]
 +
[[es:Start X at login]]
 
[[fr:Startx]]
 
[[fr:Startx]]
 
[[hu:Start X at Boot]]
 
[[hu:Start X at Boot]]
[[ja:Start X at Login]]
+
[[ja:ログイン時に X を起動]]
 
[[pt:Start X at Boot]]
 
[[pt:Start X at Boot]]
[[ru:Start X at Boot]]
+
[[ru:Xinitrc]]
[[th:Start X at Boot]]
+
[[th:Start X at boot]]
[[zh-CN:Start X at Boot]]
+
[[zh-cn:Xinitrc]]
{{Article summary start|Sommario}}
+
[[zh-tw:Start X at Login]]
{{Article summary text|Come avviare X automaticamente dopo il login su una tty.}}
+
{{Related articles start (Italiano)}}
{{Article summary heading|Articoli collegati}}
+
{{Related|systemd/User (Italiano)}}
{{Article summary wiki|systemd/User (Italiano)}}
+
{{Related|Automatic login to virtual console (Italiano)}}
{{Article summary wiki|Automatic login to virtual console (Italiano)}}
+
{{Related|Display Manager (Italiano)}}
{{Article summary wiki|Display Manager (Italiano)}}
+
{{Related|Silent boot}}
{{Article summary wiki|Silent boot}}
+
{{Related|Xinitrc (Italiano)}}
{{Article summary wiki|xinitrc (Italiano)}}
+
{{Related articles end}}
{{Article summary end}}
+
  
Questo articolo spiega come avviare automaticamente il [[Xorg (Italiano)|Server X]] dopo il login in un terminale virtuale attraverso l'utilizzo del comando {{ic|startx}}, il cui comportamento può essere modificato come riportato nella pagina relativa a [[xinitrc (Italiano)|xinitrc]], ad esempio per scegliere quale [[Window Manager (Italiano)|window manager]] avviare.
+
Questo articolo spiega come avviare automaticamente il [[Xorg (Italiano)|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 (Italiano)|xinitrc]], ad esempio per scegliere quale [[Window manager (Italiano)|window manager]] avviare.
  
In alternativa, è possibile utilizzare un [[Display Manager (Italiano)|display manager]] per avviare automaticamente X e fornire un login grafico.
+
In alternativa, è possibile utilizzare un [[Display manager (Italiano)|display manager]] per avviare automaticamente X e fornire un login grafico.
  
==Avviare X automaticamente dopo il login in un terminale virtuale==
+
==File di configurazione delle shell==
  
 
{{Nota|Il comando di cui sotto avvia X nella stessa tty dal quale si effettua il login, condizione necessaria per mantenere la sessione di login.}}
 
{{Nota|Il comando di cui sotto avvia X nella stessa tty dal quale si effettua il login, condizione necessaria per mantenere la sessione di login.}}
  
* Se si usa [[Bash (Italiano)|Bash]], aggiungere il comando al proprio {{ic|~/.bash_profile}}.
+
Se si usa [[Bash (Italiano)|Bash]], aggiungere il comando al proprio {{ic|~/.bash_profile}}.
 
Se il file non esiste lo si copi da {{ic|/etc/skel/.bash_profile}}.
 
Se il file non esiste lo si copi da {{ic|/etc/skel/.bash_profile}}.
* Se si usa [[Zsh|Zsh]] aggiungere il comando al file {{ic|~/.zprofile}}
+
Se si usa [[Zsh]] aggiungere il comando al file {{ic|~/.zlogin}} o {{ic|~/.zprofile}}.
  
 
{{bc|1=<nowiki>
 
{{bc|1=<nowiki>
Line 38: Line 39:
 
{{Nota|
 
{{Nota|
 
* È possibile sostituire {{ic|-eq 1}} con {{ic|-le 3}} (per i vt dal 1 al 3) se si desidera avvalersi del login grafico su più di un terminale virtuale.
 
* È possibile sostituire {{ic|-eq 1}} con {{ic|-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 {{ic|/etc/X11/xinit/xserverrc}}.}}
+
* 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 {{ic|/etc/X11/xinit/xserverrc}}.
 +
* {{ic|xinit}} è generalmente più veloce di {{ic|startx}}, ma è necessario specificare manualmente dei parametri aggiuntivi come {{ic|-nolisten tcp}}.}}
  
* Se si utilizza la [[Fish|Fish]] shell, è necessario aggiungere quanto segue in fondo al proprio {{ic|~/.config/fish/config.fish}}
+
Se si utilizza la [[Fish]] shell, è necessario aggiungere quanto segue in fondo al proprio {{ic|~/.config/fish/config.fish}}
  
 
{{bc|1=<nowiki>
 
{{bc|1=<nowiki>
 
# start X at login
 
# start X at login
 
if status --is-login
 
if status --is-login
     if test -z "$DISPLAY" -a $XDG_VTNR = 1
+
     if test -z "$DISPLAY" -a $XDG_VTNR -eq 1
         exec startx
+
         exec startx -- -keeptty
 
     end
 
     end
 
end
 
end
 
</nowiki>}}
 
</nowiki>}}
  
==Suggerimenti==
+
{{Nota|{{ic|startx}} richiede il parametro {{ic|-keeptty}} quando si utilizza fish. Si veda [https://github.com/fish-shell/fish-shell/issues/1772 questo] bug report.}}
  
* Il metodo appena presentato può essere combinato con [[Automatic login to virtual console (Italiano)|il login automatico da console virtuale]].
+
==Utilizzando systemd==
  
{{Attenzione|1=Se si utilizza [[PulseAudio (Italiano)|PulseAudio]] ricordarsi di impostare in modo corretto le dipendenze per il servizio di autologin di systemd affinchè dbus sia avviato prima che {{ic|~/.xinitrc}} sia letto. (Si veda [https://bbs.archlinux.org/viewtopic.php?id=155416 BBS#155416]).}}
+
Si crei un file .service (ad esempio {{ic|/etc/systemd/system/xinit@.service}}):
 +
 
 +
{{bc|1=<nowiki>
 +
[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
 +
</nowiki>}}
 +
 
 +
Assicurarsi che {{ic|~.xinitrc}} esista e sia configurato in modo corretto.
 +
 
 +
Si abiliti ed [[systemd (Italiano)#Usare le unità|attivi]] quindi il servizio.
 +
 
 +
{{Suggerimento|Rimuovere {{ic|>/dev/null 2>&1}} per effettuare il debug.}}
 +
 
 +
==Suggerimenti==
 +
 
 +
* Il metodo appena presentato può essere combinato con [[Automatic login to virtual console (Italiano)|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 {{ic|~/.xinitrc}}, per permettere così l'avvio di PulseAudio. (si veda [https://bbs.archlinux.org/viewtopic.php?id=155416 BBS#155416])
  
 
* Se si desidera mantenere il login su TTY quando la sessione di X viene terminata, si rimuova {{ic|exec}}.
 
* Se si desidera mantenere il login su TTY quando la sessione di X viene terminata, si rimuova {{ic|exec}}.
 +
 
* Per redirigere l'output della sessione di X su un file, si crei un [[Bash (Italiano)#Alias|alias]]:
 
* Per redirigere l'output della sessione di X su un file, si crei un [[Bash (Italiano)#Alias|alias]]:
  
alias startx='startx &> ~/.xlog'
+
: {{bc|1=alias startx='startx & > ~/.xlog'}}
 +
 
 +
: {{Nota|la ridirezione dello ''stderr'' ({{ic|startx &>}}) crea problemi all'avvio di X da utente normale. Si veda a tal proposito [[Xorg#Rootless Xorg (v1.16)]].}}
  
* Se si dispone di un file di configurazione del profilo ({{ic|~/.bash_profile}} o {{ic|~/.zprofile}}, ecc.) si inserisca il comando di cui sopra in questi files, in modo che venga eseguito solo se il login avviene correttamente
+
==Riferimenti==
 +
[http://unix.stackexchange.com/questions/62722/start-x-after-automatic-login Avvio di X dopo l'autologin]

Latest revision as of 11:57, 30 April 2016

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

Nota: Il comando di cui sotto avvia X nella stessa tty dal quale si effettua il login, condizione necessaria per mantenere la sessione di login.

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
Nota:
  • È 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 di startx, 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
Nota: startx richiede il parametro -keeptty quando si utilizza fish. Si veda questo bug report.

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.

Suggerimento: Rimuovere >/dev/null 2>&1 per effettuare il debug.

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).

Riferimenti

Avvio di X dopo l'autologin