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

From ArchWiki
Jump to: navigation, search
m
(update interlanguage links)
(Tag: wiki-scripts)
 
(25 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:Xinit]]
 +
[[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}}
+
  
È possibile utilizzare un [[Display Manager (Italiano)|display manager]] per fornire all'utente una schermata di login ed avviare automaticamente il [[Xorg (Italiano)|server X]]. Questo articolo spiegherà come avviarlo usando un virtual terminal esistente.
+
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.
  
Per avviare manualmente X, è necessario utilizzare {{ic|startx}}il quale eseguirà il file {{ic|~/.xinitrc}}, che potrà essere personalizzato per avviare il window manager scelto, come descritto nell'articolo dedicato a [[Xinitrc (Italiano)|xinitrc]].
+
In alternativa, è possibile utilizzare un [[Display manager (Italiano)|display manager]] per avviare automaticamente X e fornire un login grafico.
  
==File del profilo della shell==
+
==File di configurazione delle shell==
  
{{Nota|La seguente procedura avvierà X nella stessa console virtuale usata per il login, condizione necessaria affinchè la sessione di login sia mantenuta.}}
+
{{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 utilizza [[Bash (Italiano)|Bash]], aggiungere quanto segue in fondo al proprio {{ic|~/.bash_profile}}. Se il file non esiste se ne recuperi una copia da {{ic|/etc/skel/.bash_profile}}.
+
Se si usa [[Bash (Italiano)|Bash]], aggiungere il comando al proprio {{ic|~/.bash_profile}}.
* Se si usa [[Zsh|Zsh]] si aggiunga quanto sotto al proprio {{ic|~/.zprofile}}.
+
Se il file non esiste lo si copi da {{ic|/etc/skel/.bash_profile}}.
 +
Se si usa [[Zsh]] aggiungere il comando al file {{ic|~/.zlogin}} o {{ic|~/.zprofile}}.
  
<nowiki>[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx</nowiki>
+
{{bc|1=<nowiki>
 +
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
 +
</nowiki>}}
  
{{Nota|È possibile sostituire il confronto {{ic|-eq 1}} con uno simile a {{ic|-le 3}} (per le tty da 1 a 3) se si vuole utilizzare il login grafico su piu di una tty.}}
+
{{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.
 +
* 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}}.}}
  
{{Nota|Il server X deve essere eseguito sulla stessa tty dove si è effettuato il login per mantenere la sessione aperta da logind. Questo comportamento è configurato di default nel file {{ic|/etc/X11/xinit/xserverrc}}.}}
+
Se si utilizza la [[Fish]] shell, è necessario aggiungere quanto segue in fondo al proprio {{ic|~/.config/fish/config.fish}}
 +
 
 +
{{bc|1=<nowiki>
 +
# start X at login
 +
if status --is-login
 +
    if test -z "$DISPLAY" -a $XDG_VTNR -eq 1
 +
        exec startx -- -keeptty
 +
    end
 +
end
 +
</nowiki>}}
 +
 
 +
{{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.}}
 +
 
 +
==Utilizzando systemd==
 +
 
 +
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==
 
==Suggerimenti==
  
* Il metodo appena presentato può essere combinato con [[Automatic login to virtual console (Italiano)|il login automatico da console virtuale]]. Se si utilizza questo metodo, sarà necessario impostare le dipendenze corrette per il servizio di autologin di systemd, in modo che dbus venga avviato prima della lettura di {{ic|~/.xinitrc}}, consentendo così a PulseAudio di avviarsi. (si faccia riferimento a [https://bbs.archlinux.org/viewtopic.php?id=155416 questo] post.)
+
* 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)]].}}
 +
 
 +
==Riferimenti==
 +
[http://unix.stackexchange.com/questions/62722/start-x-after-automatic-login Avvio di X dopo l'autologin]

Latest revision as of 08:59, 25 July 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