I want zsh to start x automatically on the first login.
After I added
if systemctl -q is-active graphical.target && [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then exec startx fi to the file ~/.zprofile. however I need to login twice until xinit starts i3.
BTW I use Arch
my .xinitrc looks like
#!/bin/sh userresources=$HOME/.Xresources usermodmap=$HOME/.Xmodmap sysresources=/etc/X11/xinit/.Xresources sysmodmap=/etc/X11/xinit/.Xmodmap # merge in defaults and keymaps if [ -f $sysresources ]; then xrdb -merge $sysresources fi if [ -f $sysmodmap ]; then xmodmap $sysmodmap fi if [ -f "$userresources" ]; then xrdb -merge "$userresources" fi if [ -f "$usermodmap" ]; then xmodmap "$usermodmap" fi # start some nice programs if [ -d /etc/X11/xinit/xinitrc.d ] ; then for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do [ -x "$f" ] && . "$f" done unset f fi twm & xclock -geometry 50x50-1+1 & xterm -geometry 80x50+494+51 & xterm -geometry 80x20+494-0 & # exec xterm -geometry 80x66+0+0 -name login xrandr --output DP-3 --same-as LVDS-1 exec i3
startx, and with other distros, you can start gdm or kdm.gdm3service viaservice gdm3 startzsh? Do you want to run a display manager that requires a graphical login or do you want to directly associate the X server with the user who started it?systemctl -q is-active graphical.targetwould be false.