Difference between revisions of "Start X at login"
(→Shell profile file) |
(→add zh_TW link) |
||
(44 intermediate revisions by 20 users not shown) | |||
Line 5: | Line 5: | ||
[[hu:Start X at Boot]] | [[hu:Start X at Boot]] | ||
[[it:Start X at Boot]] | [[it:Start X at Boot]] | ||
+ | [[ja:Start X at Login]] | ||
[[pt:Start X at Boot]] | [[pt:Start X at Boot]] | ||
[[ru:Start X at Boot]] | [[ru:Start X at Boot]] | ||
[[th:Start X at Boot]] | [[th:Start X at Boot]] | ||
[[zh-CN:Start X at Login]] | [[zh-CN:Start X at Login]] | ||
− | {{ | + | [[zh-TW:Start X at Login]] |
− | {{ | + | {{Related articles start}} |
− | {{ | + | {{Related|systemd/User}} |
− | + | {{Related|Automatic login to virtual console}} | |
− | {{ | + | {{Related|Display Manager}} |
− | {{ | + | {{Related|Silent boot}} |
− | {{ | + | {{Related|Xinitrc}} |
+ | {{Related articles 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 [[ | + | * 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 and tricks == | |
− | + | * 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}}. | |
− | * This method can be combined with [[automatic login to virtual console]]. | ||
− | * If you would like to remain logged in when the | ||
* To redirect the output of the X session to a file, create an [[alias]]: | * To redirect the output of the X session to a file, create an [[alias]]: | ||
: {{bc|1=alias startx='startx &> ~/.xlog'}} | : {{bc|1=alias startx='startx &> ~/.xlog'}} | ||
− |
Revision as of 14:53, 22 January 2014
zh-CN:Start X at Login zh-TW:Start X at Login
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
~/.bash_profile
. If the file does not exist, copy a skeleton version from/etc/skel/.bash_profile
.
For Zsh, add it to~/.zprofile
instead.
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
Note:
- You can replace the
-eq 1
comparison with one like-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
/etc/X11/xinit/xserverrc
.
- For Fish, add the following to the bottom of your
~/.config/fish/config.fish
.
# start X at login if status --is-login if test -z "$DISPLAY" -a $XDG_VTNR = 1 exec startx end end
Tips and tricks
- 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
~/.xinitrc
is read and hence pulseaudio started (see: BBS#155416) - If you would like to remain logged in when the X session ends, remove
exec
. - To redirect the output of the X session to a file, create an alias:
-
alias startx='startx &> ~/.xlog'