A fix for SDDM
SDDM can fail grab TTY1, which it defaults to as per some systemd standard - http://0pointer.de/blog/projects/serial-console.html, and fall into restart loop that prevents switching to a different TTY. This can be overriden by a build config option SDDM_INITIAL_VT as per it's github README:
I rebuilt the sddm locally with makepkg with the above option set to 7. It solved the issue. Attaching my fixed PKGBUILD file to this message didn't work, so I include it in a code snipet:# Maintainer: Felix Yan <[email protected]>
# Maintainer: Antonio Rojas <[email protected]>
# Contributor: Andrea Scarpino <[email protected]>
pkgname=sddm
pkgver=0.21.0
pkgrel=4.1
pkgdesc='QML based X11 and Wayland display manager'
arch=(x86_64)
url='https://github.com/sddm/sddm'
license=(GPL-2.0-only)
depends=(bash
gcc-libs
glibc
libelogind
libxau
libxcb
pam
qt6-base
qt6-declarative
ttf-font
xorg-server
xorg-xauth)
makedepends=(extra-cmake-modules
python-docutils
qt5-base
qt5-declarative
qt5-tools
qt6-tools)
optdepends=('qt5-declarative: for using Qt5 themes')
backup=('usr/share/sddm/scripts/Xsetup'
'usr/share/sddm/scripts/Xstop'
'etc/pam.d/sddm'
'etc/pam.d/sddm-autologin'
'etc/pam.d/sddm-greeter')
provides=(display-manager)
source=(https://github.com/$pkgname/$pkgname/archive/v$pkgver/$pkgname-$pkgver.tar.gz
sddm.{tmpfiles,sysusers})
sha256sums=('f895de2683627e969e4849dbfbbb2b500787481ca5ba0de6d6dfdae5f1549abf'
'db625f2a3649d6d203e1e1b187a054d5c6263cadf7edd824774d8ace52219677'
'9fce66f325d170c61caed57816f4bc72e9591df083e89da114a3bb16b0a0e60f')
build() {
cmake -B build -S $pkgname-$pkgver \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBEXECDIR=/usr/lib/sddm \
-DBUILD_WITH_QT6=ON \
-DDBUS_CONFIG_DIR=/usr/share/dbus-1/system.d \
-DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
-DBUILD_MAN_PAGES=ON \
-DUSE_ELOGIND=yes \
-DNO_SYSTEMD=yes \
-DUID_MAX=60513 \
-DSDDM_INITIAL_VT=7
cmake --build build
cmake -B build5 -S $pkgname-$pkgver \
-DCMAKE_INSTALL_PREFIX=/usr
cmake --build build5/src/greeter
cmake --build build5/components
}
package() {
DESTDIR="$pkgdir" cmake --install build
DESTDIR="$pkgdir" cmake --install build5/src/greeter
DESTDIR="$pkgdir" cmake --install build5/components
install -d "$pkgdir"/usr/lib/sddm/sddm.conf.d
"$pkgdir"/usr/bin/sddm --example-config > "$pkgdir"/usr/lib/sddm/sddm.conf.d/default.conf
# Don't set PATH in sddm.conf
sed -r 's|DefaultPath=.*|DefaultPath=/usr/local/sbin:/usr/local/bin:/usr/bin|g' -i "$pkgdir"/usr/lib/sddm/sddm.conf.d/default.conf
# Unset InputMethod https://github.com/sddm/sddm/issues/952
sed -e "/^InputMethod/s/qtvirtualkeyboard//" -i "$pkgdir"/usr/lib/sddm/sddm.conf.d/default.conf
install -Dm644 sddm.sysusers "$pkgdir"/usr/lib/sysusers.d/sddm.conf
install -Dm644 sddm.tmpfiles "$pkgdir"/usr/lib/tmpfiles.d/sddm.conf
}