UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

52 lines (34 loc) 2.96 kB
Related articles * [systemd/User](/index.php/Systemd/User "Systemd/User") * [Automatic login to virtual console](/index.php/Automatic_login_to_virtual_console "Automatic login to virtual console") * [Display manager](/index.php/Display_manager "Display manager") * [Silent boot](/index.php/Silent_boot "Silent boot") * [Xinitrc](/index.php/Xinitrc "Xinitrc") This article explains how to have the [X server](/index.php/X_server "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](/index.php/Xinitrc "Xinitrc") article, for example for choosing what [window manager](/index.php/Window_manager "Window manager") to launch. Alternatively, a [display manager](/index.php/Display_manager "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](/index.php/Bash "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](/index.php/Zsh "Zsh"), add it to `~/.zlogin` (or `~/.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`. * `xinit` may be faster than `startx`, but needs additional parameter such as `-nolisten tcp`. For [Fish](/index.php/Fish "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](/index.php/Automatic_login_to_virtual_console "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](https://bbs.archlinux.org/viewtopic.php?id=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](/index.php/Alias "Alias"): `alias startx='startx &> ~/.xlog'` **Note:** Redirecting stderr (`startx &>`) breaks rootless startup, see [Xorg#Rootless Xorg (v1.16)](/index.php/Xorg#Rootless_Xorg_.28v1.16.29 "Xorg"). ## See also [Start X after automatic login](http://unix.stackexchange.com/questions/62722/start-x-after-automatic-login)