Difference between revisions of "Start X at login"

From ArchWiki
Jump to: navigation, search
(Shell profile files: the note refers to the bash/zsh solution; bash and zsh share the code template)
(fix double redirect)
 
(48 intermediate revisions by 22 users not shown)
Line 1: Line 1:
[[Category:X Server]]
+
#REDIRECT [[Xinit#Autostart_X_at_login]]
[[Category:Boot process]]
 
[[es:Start X at Boot]]
 
[[fr:Startx]]
 
[[hu:Start X at Boot]]
 
[[it:Start X at Boot]]
 
[[ja:Start X at Login]]
 
[[pt:Start X at Boot]]
 
[[ru:Start X at Boot]]
 
[[th:Start X at Boot]]
 
[[zh-CN:Start X at Login]]
 
{{Article summary start}}
 
{{Article summary text|Starting X automatically at login to a virtual terminal.}}
 
{{Article summary heading|Related}}
 
{{Article summary wiki|systemd/User}}
 
{{Article summary wiki|Automatic login to virtual console}}
 
{{Article summary wiki|Display Manager}}
 
{{Article summary wiki|Silent boot}}
 
{{Article summary wiki|Xinitrc}}
 
{{Article summary end}}
 
 
 
This article explains how to have the [[X server]] start automatically right after logging in at a virtual terminal. This is achieved by running the ''startx'' command, whose behaviour can be customized as described in the [[xinitrc]] article, for example for choosing what [[window manager]] to launch. Alternatively, a [[display manager]] can be used to start X automatically and provide a graphical login screen.
 
 
 
== Shell profile files ==
 
 
 
{{Note|These solutions run X on the same tty used to login, which is required in order to maintain the login session.}}
 
 
 
* For [[Bash]], add the following to the bottom of {{ic|~/.bash_profile}}. If the file does not exist, copy a skeleton version from {{ic|/etc/skel/.bash_profile}}. <br> For [[Zsh]], add it to {{ic|~/.zprofile}} instead.
 
{{bc|1=<nowiki>
 
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
 
</nowiki>}}
 
 
 
{{Note|
 
* You can replace the {{ic|-eq 1}} comparison with one like {{ic|-le 3}} (for vt1 to vt3) if you want to use graphical logins on more than one VT.
 
* X must always be run on the same tty where the login occurred, to preserve the logind session. This is handled by the default {{ic|/etc/X11/xinit/xserverrc}}.
 
}}
 
 
 
* For [[Fish]], add the following to the bottom of your {{ic|~/.config/fish/config.fish}}.
 
{{bc|1=<nowiki>
 
# start X at login
 
if status --is-login
 
    if test -z "$DISPLAY" -a $XDG_VTNR = 1
 
        exec startx
 
    end
 
end
 
</nowiki>}}
 
 
 
== Tips ==
 
 
 
* This method can be combined with [[automatic login to virtual console]]. When doing this you have to set correct dependencies for the autologin systemd service to ensure that dbus is started before {{ic|~/.xinitrc}} is read and hence pulseaudio started (see: [https://bbs.archlinux.org/viewtopic.php?id=155416 BBS#155416])
 
* If you would like to remain logged in when the X session ends, remove {{ic|exec}}.
 
* To redirect the output of the X session to a file, create an [[alias]]:
 
: {{bc|1=alias startx='startx & > ~/.xlog'}}
 

Latest revision as of 10:37, 24 July 2016