Difference between revisions of "Start X at login"

From ArchWiki
Jump to navigation Jump to search
(fixed redirect command)
(fix double redirect)
(47 intermediate revisions by 21 users not shown)
Line 1: Line 1:
[[Category:X Server]]
#REDIRECT [[Xinit#Autostart_X_at_login]]
[[Category:Boot process]]
[[es:Start X at Boot]]
[[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.
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
* 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}}.
# start X at login
if status --is-login
    if test -z "$DISPLAY" -a $XDG_VTNR = 1
        exec startx
== 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