From 17f9ab9f02131907c0bd2bbab1575a726a7defc6 Mon Sep 17 00:00:00 2001 From: RJ Trujillo Date: Tue, 20 Jun 2023 18:40:18 +0000 Subject: [PATCH] feat: Autologin to gamescope-session on deck images - Run before display manager starts --- Containerfile | 1 + deck/usr/bin/gamescope-autologin | 15 +++++++++++++++ .../systemd/system/gamescope-autologin.service | 10 ++++++++++ 3 files changed, 26 insertions(+) create mode 100755 deck/usr/bin/gamescope-autologin create mode 100644 deck/usr/lib/systemd/system/gamescope-autologin.service diff --git a/Containerfile b/Containerfile index 5ecc0126..dc897378 100644 --- a/Containerfile +++ b/Containerfile @@ -102,6 +102,7 @@ RUN sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite.re sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-latencyflex.repo && \ sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-hl2linux-selinux.repo && \ systemctl enable set-cfs-tweaks.service && \ + systemctl enable gamescope-autologin.service && \ rm -rf \ /tmp/* \ /var/* && \ diff --git a/deck/usr/bin/gamescope-autologin b/deck/usr/bin/gamescope-autologin new file mode 100755 index 00000000..b49ad748 --- /dev/null +++ b/deck/usr/bin/gamescope-autologin @@ -0,0 +1,15 @@ +#!/bin/bash +NUM_USERS=$(ls /home | wc -l) + +# If we have multiple users, don't configure SDDM +if [ ${NUM_USERS} -eq 1 ]; then + # Don't configure SDDM if we already have + SDDM_CONF=$(cat /etc/sddm.conf) + if grep '#User=' <<< ${SDDM_CONF}; then + # Retrieve username + USER=$(ls /home) + # Configure autologin + sed -i 's/#Session=/Session=gamescope-session/g' /etc/sddm.conf + sed -i 's/#User=/User='${USER}'/g' /etc/sddm.conf + fi +fi diff --git a/deck/usr/lib/systemd/system/gamescope-autologin.service b/deck/usr/lib/systemd/system/gamescope-autologin.service new file mode 100644 index 00000000..8fc2ea52 --- /dev/null +++ b/deck/usr/lib/systemd/system/gamescope-autologin.service @@ -0,0 +1,10 @@ +[Unit] +Description=Enables autologin to gamescope-session +Before=display-manager.service + +[Service] +Type=oneshot +ExecStart=/usr/bin/gamescope-autologin + +[Install] +WantedBy=multi-user.target