There are some quirks and bugs with how SDDM works on Arch-like distros. Namely, SDDM can't change the VTs on itself (due to X not having proper permissions even if you configure everything correctly), so when running rootlessly it'll spawn and work properly only on VT1. I'm running i3wm+XLibre+OpenRC and X11 works fine rootlessly. Here's how I configured it:
# /etc/X11/Xwrapper.config
needs_root_rights=no
allowed_users=anybody
# /etc/sddm.conf
[General]
DisplayServer=x11-user
[X11]
ServerArguments=-nolisten tcp
DisplayCommand=/usr/share/sddm/scripts/Xsetup
DisplayStopCommand=/usr/share/sddm/scripts/Xstop
EnableHiDPI=true
SessionCommand=/usr/share/sddm/scripts/Xsession
SessionDir=/usr/share/xsessions
SessionLogFile=
UserAuthFile=.Xauthority
XauthPath=/usr/bin/xauth
XephyrPath=/usr/bin/Xephyr
ServerPath=/usr/lib/Xorg
# /etc/X11/xinit/xserverrc
#!/bin/sh
# default:
# exec /usr/bin/X -nolisten tcp "$@"
# new rootless:
/usr/bin/X -nolisten tcp "$@" -keeptty vt$XDG_VTNR
- If your init has agetty plugged to tty1, you need to remove it entirely from running as a service, because this takes over VT1's priority, For OpenRC, I recommend replacing /etc/init.d/agetty.tty1 with empty file (or /bin/true) and then setting the file attribute as immutable (chattr +i), because pacman will replace this file when OpenRC (or your init) is updated.
- If you're running proprietary novideo driver, you'll need to preload your driver modules (early KMS) Look here: https://github.com/korvahannu/arch-nvidia-drivers-installation-guide < I recommend running nvidia-dkms over nvidia