Skip to content

Commit

Permalink
feat(deck): Autologin to Plasma
Browse files Browse the repository at this point in the history
Currently the user will boot to SDDM upon initial install. This is
not entirely optimal as the default session in SDDM is gamescope
session which is not usable without first updating Steam. This
addresses that by using the same logic we use for gamescope autologin
to login to Plasma on first boot

This commit also simplifies the logic in gamescope-autologin
  • Loading branch information
EyeCantCU committed Jul 14, 2023
1 parent 19b8183 commit 8c58e65
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 15 deletions.
1 change: 1 addition & 0 deletions Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,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-hl2linux-selinux.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-obs-vkcapture.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-wallpaper-engine-kde-plugin.repo && \
systemctl enable plasma-autologin.service && \
systemctl enable jupiter-fan-control.service && \
systemctl enable set-cfs-tweaks.service && \
systemctl disable input-remapper.service && \
Expand Down
29 changes: 14 additions & 15 deletions system_files/deck/usr/bin/gamescope-autologin
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
#!/bin/bash
#!/usr/bin/env bash

NUM_USERS=$(ls /home | wc -l)
USER=$(ls /home)

# SteamOS SDDM config
SDDM_CONF='/etc/sddm.conf.d/steamos.conf'

# If we have multiple users, don't configure SDDM
# Configure autologin
sed -i 's/.*Session=.*/Session=gamescope-session.desktop/g' ${SDDM_CONF}
if [ ${NUM_USERS} -eq 1 ]; then
# Don't configure SDDM if we already have
SDDM_CONF=$(cat /etc/sddm.conf.d/steamos.conf)
if grep '#User=' <<< ${SDDM_CONF}; then
# Retrieve username
USER=$(ls /home)
# Configure autologin
sed -i 's/#User=/User='${USER}'/g' /etc/sddm.conf.d/steamos.conf
touch /etc/sddm.conf.d/zz-steamos-autologin.conf
# Remove sddm.conf if it exists
if [ -f '/etc/sddm.conf' ]; then
rm -f /etc/sddm.conf
fi
fi
sed -i 's/.*User=.*/User='${USER}'/g' ${SDDM_CONF}
fi

# Remove sddm.conf if it exists
if [ -f '/etc/sddm.conf' ]; then
rm -f /etc/sddm.conf
fi
18 changes: 18 additions & 0 deletions system_files/deck/usr/bin/plasma-autologin
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/usr/bin/env bash

NUM_USERS=$(ls /home | wc -l)
USER=$(ls /home)

# SteamOS SDDM config
SDDM_CONF='/etc/sddm.conf.d/steamos.conf'

# Configure autologin
sed -i 's/.*Session=.*/Session=plasmax11.desktop/g' ${SDDM_CONF}
if [ ${NUM_USERS} -eq 1 ]; then
sed -i 's/.*User=.*/User='${USER}'/g' ${SDDM_CONF}
fi

# Remove sddm.conf if it exists
if [ -f '/etc/sddm.conf' ]; then
rm -f /etc/sddm.conf
fi
10 changes: 10 additions & 0 deletions system_files/deck/usr/lib/systemd/system/plasma-autologin.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[Unit]
Description=Enables autologin to Plasma (X11)
Before=display-manager.service

[Service]
Type=oneshot
ExecStart=/usr/bin/plasma-autologin

[Install]
WantedBy=multi-user.target

0 comments on commit 8c58e65

Please sign in to comment.