diff options
Diffstat (limited to 'source/kde/kde/post-install/sddm.post-install')
-rw-r--r-- | source/kde/kde/post-install/sddm.post-install | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/source/kde/kde/post-install/sddm.post-install b/source/kde/kde/post-install/sddm.post-install new file mode 100644 index 000000000..5f52fede3 --- /dev/null +++ b/source/kde/kde/post-install/sddm.post-install @@ -0,0 +1,61 @@ +if [ "$SLACKPAM" == "no" ]; then + # Remove PAM related stuff: + rm -rf $PKG/etc/pam.d +else + # Replace systemd-centric files with ours: + rm -f $PKG/etc/pam.d/sddm* + for FILE in sddm sddm-autologin sddm-greeter ; do + install -Dm644 $CWD/post-install/sddm/pam.d/$FILE $PKG/etc/pam.d/$FILE + done +fi + +# Create the SDDM home directory: +mkdir -p $PKG/var/lib/sddm +chmod 755 $PKG/var/lib/sddm +chown sddm:sddm $PKG/var/lib/sddm + +# Remove the sddm.conf file because we will generate our own in doinst.sh: +rm -f $PKG/etc/sddm.conf + +# Generate the default sddm.conf: +$PKG/usr/bin/sddm --example-config > $PKG/etc/sddm.conf + +# Set the KDE5 theme 'breeze' as default (integrates better with Plasma 5): +sed -i -e "/\[Theme\]/,/^\[/s/^Current.*/Current=breeze/" $PKG/etc/sddm.conf + +# Move the default config file to .new: +mv $PKG/etc/sddm.conf $PKG/etc/sddm.conf.new + +# Make sure that Plasma and SDDM work on older GPUs, +# by forcing Qt5 to use software GL rendering: +cat << "EOF" >> $PKG/usr/share/sddm/scripts/Xsetup +# Make sure that Plasma and SDDM work on older GPUs by forcing Qt5 to use +# software GL rendering if the OpenGL version is not new enough: +OPENGL_VERSION=$(LANG=C glxinfo |grep '^OpenGL version string: ' |head -n 1 |sed -e 's/^OpenGL version string: \([0-9]\).*$/\1/g') +if [ "$OPENGL_VERSION" -lt 2 ]; then + QT_XCB_FORCE_SOFTWARE_OPENGL=1 + export QT_XCB_FORCE_SOFTWARE_OPENGL +fi +EOF + +# Ensure that user customizations to the session files are not lost: +mv $PKG/usr/share/sddm/scripts/Xsession{,.new} +mv $PKG/usr/share/sddm/scripts/Xsetup{,.new} +mv $PKG/usr/share/sddm/scripts/Xstop{,.new} +mv $PKG/usr/share/sddm/scripts/wayland-session{,.new} + +# Add a wrapper for the sddm binary, to enable a custom environment: +mv $PKG/usr/bin/sddm $PKG/usr/bin/sddm.bin +cat <<"EOT" > $PKG/usr/bin/sddm +#!/bin/sh +# Customized environment (LANG definition): +if [ -f /etc/default/sddm ]; then + . /etc/default/sddm +fi +/usr/bin/sddm.bin "$*" +EOT +chmod 0755 $PKG/usr/bin/sddm + +# Let's also add an example customization (localization of the UI): +mkdir -p $PKG/etc/default +echo ". /etc/profile.d/lang.sh" > $PKG/etc/default/sddm.new |