summaryrefslogblamecommitdiffstats
path: root/testing/source/vtown/kde/post-install/sddm.post-install
blob: 5f52fede319b61d77ee72df1876c8d27cc4ecd9d (plain) (tree)
1
2
3
4
5
6
7
8






                                                   
                                                                          


      




                                 


                                                                          







                                                                            


                                                    


                                                                         




                                                                                                                                  
   





















                                                                    
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