summaryrefslogtreecommitdiffstats
path: root/kde/post-install
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2020-06-08 21:30:18 +0200
committer Eric Hameleers <alien@slackware.com>2020-06-08 21:30:18 +0200
commite41c0c99c8d498cc2f3761eb35d4f5389a6d1798 (patch)
tree3b0294e2874f1a34943eeb9a19682313ba43e6c2 /kde/post-install
parentf6a28c20081bd24619074c99ddfeb1932b09df2f (diff)
downloadktown-e41c0c99c8d498cc2f3761eb35d4f5389a6d1798.tar.gz
ktown-e41c0c99c8d498cc2f3761eb35d4f5389a6d1798.tar.xz
Proposed changes for a migration from ConsoleKit2 to elogind
Using elogind will enable a fully working Wayland session for KDE Plasma5.
Diffstat (limited to 'kde/post-install')
-rw-r--r--kde/post-install/plasma-workspace/pam.d/kde3
-rw-r--r--kde/post-install/plasma-workspace/scripts/startkwayland7
-rw-r--r--kde/post-install/powerdevil.post-install37
-rw-r--r--kde/post-install/powerdevil/10-enable-ck2-poweroff.rules12
-rw-r--r--kde/post-install/powerdevil/10-enable-elogind-poweroff.rules12
-rw-r--r--kde/post-install/powerdevil/10-enable-powerdevil-discrete-gpu.rules9
-rw-r--r--kde/post-install/powerdevil/10-enable-suspend.rules10
-rw-r--r--kde/post-install/powerdevil/10-enable-upower-suspend.rules9
-rw-r--r--kde/post-install/powerdevil/30-org.freedesktop.upower.pkla9
-rw-r--r--kde/post-install/powerdevil/40-org.freedesktop.consolekit.system.stop-multiple-users.pkla8
-rw-r--r--kde/post-install/powerdevil/41-org.freedesktop.consolekit.system.restart-multiple-users.pkla7
-rw-r--r--kde/post-install/sddm-qt5.post-install13
-rw-r--r--kde/post-install/sddm-qt5/pam.d/sddm3
-rw-r--r--kde/post-install/sddm-qt5/pam.d/sddm-autologin3
-rw-r--r--kde/post-install/sddm-qt5/pam.d/sddm-greeter1
15 files changed, 85 insertions, 58 deletions
diff --git a/kde/post-install/plasma-workspace/pam.d/kde b/kde/post-install/plasma-workspace/pam.d/kde
index 7acfd90..50e0f53 100644
--- a/kde/post-install/plasma-workspace/pam.d/kde
+++ b/kde/post-install/plasma-workspace/pam.d/kde
@@ -5,5 +5,6 @@ account include system-auth
password include system-auth
session include system-auth
session required pam_loginuid.so
-session optional pam_ck_connector.so nox11
+-session optional pam_ck_connector.so nox11
+-session optional pam_elogind.so
session include postlogin
diff --git a/kde/post-install/plasma-workspace/scripts/startkwayland b/kde/post-install/plasma-workspace/scripts/startkwayland
index 7ca8a0a..2d8cf55 100644
--- a/kde/post-install/plasma-workspace/scripts/startkwayland
+++ b/kde/post-install/plasma-workspace/scripts/startkwayland
@@ -1,9 +1,4 @@
#!/bin/sh
# Start KWin as a Plasma 5 Wayland session
-# Choose correct options depending on whether PAM is installed:
-if [ -L /lib${LIBDIRSUFFIX}/libpam.so.? ]; then
- dbus-launch --sh-syntax --exit-with-session /usr/bin/startplasma-wayland
-else
- ck-launch-session dbus-launch --sh-syntax --exit-with-session /usr/bin/startplasma-wayland
-fi
+dbus-launch --sh-syntax --exit-with-session /usr/bin/startplasma-wayland
diff --git a/kde/post-install/powerdevil.post-install b/kde/post-install/powerdevil.post-install
index 9eb14f2..24a9bc1 100644
--- a/kde/post-install/powerdevil.post-install
+++ b/kde/post-install/powerdevil.post-install
@@ -3,21 +3,28 @@ mkdir -p $PKG/etc
mv $PKG/etc/kde/dbus-1 $PKG/etc/
mkdir -p $PKG/etc/polkit-1/rules.d
-mkdir -p $PKG/etc/polkit-1/localauthority/50-local.d
-chmod 700 $PKG/etc/polkit-1/localauthority
-# Add polkit policy file that brings back suspend/hibernate options:
+# Add upower policy allowing users in the 'power' group
+# to suspend/hibernate the computer:
install -m 0644 -o root \
- $CWD/post-install/powerdevil/10-enable-suspend.rules \
- $PKG/etc/polkit-1/rules.d/10-enable-suspend.rules.new
-install -m 0660 -o root \
- $CWD/post-install/powerdevil/30-org.freedesktop.upower.pkla \
- $PKG/etc/polkit-1/localauthority/50-local.d/30-org.freedesktop.upower.pkla.new
-# Add polkit policy files that bring back shutdown/reboot:
-install -m 0660 -o root \
- $CWD/post-install/powerdevil/40-org.freedesktop.consolekit.system.stop-multiple-users.pkla \
- $PKG/etc/polkit-1/localauthority/50-local.d/40-org.freedesktop.consolekit.system.stop-multiple-users.pkla.new
-install -m 0660 -o root \
- $CWD/post-install/powerdevil/41-org.freedesktop.consolekit.system.restart-multiple-users.pkla \
- $PKG/etc/polkit-1/localauthority/50-local.d/41-org.freedesktop.consolekit.system.restart-multiple-users.pkla.new
+ $CWD/post-install/powerdevil/10-enable-upower-suspend.rules \
+ $PKG/etc/polkit-1/rules.d/10-enable-upower-suspend.rules.new
+if [ "SLKELOGIND" = YES ]; then
+ # Add login1 policy file that allows users in the 'power' group
+ # to shutdown/reboot the computer:
+ install -m 0644 -o root \
+ $CWD/post-install/powerdevil/10-enable-elogind-power.rules \
+ $PKG/etc/polkit-1/rules.d/10-enable-session-poweroff.rules.new
+ # Add powerdevil policy file that allows users in the 'power' group
+ # to check for existence of a discrete gpu:
+ install -m 0644 -o root \
+ $CWD/post-install/powerdevil/10-enable-powerdevil-discrete-gpu.rules \
+ $PKG/etc/polkit-1/rules.d/10-enable-powerdevil-discrete-gpu.rules.new
+else
+ # Add ConsoleKit2 policy file that allows users in the 'power' group
+ # to shutdown/reboot the computer:
+ install -m 0644 -o root \
+ $CWD/post-install/powerdevil/10-enable-ck2-power.rules \
+ $PKG/etc/polkit-1/rules.d/10-enable-session-poweroff.rules.new
+fi
diff --git a/kde/post-install/powerdevil/10-enable-ck2-poweroff.rules b/kde/post-install/powerdevil/10-enable-ck2-poweroff.rules
new file mode 100644
index 0000000..2c68027
--- /dev/null
+++ b/kde/post-install/powerdevil/10-enable-ck2-poweroff.rules
@@ -0,0 +1,12 @@
+polkit.addRule(
+ function(action, subject) {
+ if ( (action.id == "org.freedesktop.consolekit.reboot" ||
+ action.id == "org.freedesktop.consolekit.reboot-multiple-sessions" ||
+ action.id == "org.freedesktop.consolekit.power-off" ||
+ action.id == "org.freedesktop.consolekit.power-off-multiple-sessions")
+ && subject.isInGroup("power") ) {
+ return polkit.Result.YES;
+ }
+ }
+);
+
diff --git a/kde/post-install/powerdevil/10-enable-elogind-poweroff.rules b/kde/post-install/powerdevil/10-enable-elogind-poweroff.rules
new file mode 100644
index 0000000..db49920
--- /dev/null
+++ b/kde/post-install/powerdevil/10-enable-elogind-poweroff.rules
@@ -0,0 +1,12 @@
+polkit.addRule(
+ function(action, subject) {
+ if ( (action.id == "org.freedesktop.login1.reboot" ||
+ action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
+ action.id == "org.freedesktop.login1.power-off" ||
+ action.id == "org.freedesktop.login1.power-off-multiple-sessions")
+ && subject.isInGroup("power") ) {
+ return polkit.Result.YES;
+ }
+ }
+);
+
diff --git a/kde/post-install/powerdevil/10-enable-powerdevil-discrete-gpu.rules b/kde/post-install/powerdevil/10-enable-powerdevil-discrete-gpu.rules
new file mode 100644
index 0000000..f001848
--- /dev/null
+++ b/kde/post-install/powerdevil/10-enable-powerdevil-discrete-gpu.rules
@@ -0,0 +1,9 @@
+polkit.addRule(
+ function(action, subject) {
+ if ( action.id == "org.kde.powerdevil.discretegpuhelper.hasdualgpu" &&
+ subject.isInGroup("power") ) {
+ return polkit.Result.YES;
+ }
+ }
+);
+
diff --git a/kde/post-install/powerdevil/10-enable-suspend.rules b/kde/post-install/powerdevil/10-enable-suspend.rules
deleted file mode 100644
index 5ef58ac..0000000
--- a/kde/post-install/powerdevil/10-enable-suspend.rules
+++ /dev/null
@@ -1,10 +0,0 @@
-polkit.addRule(
- function(action, subject) {
- if ((action.id == "org.freedesktop.upower.suspend" ||
- action.id == "org.freedesktop.upower.hibernate") &&
- subject.isInGroup("power"))
- {
- return polkit.Result.YES;
- }
- }
-);
diff --git a/kde/post-install/powerdevil/10-enable-upower-suspend.rules b/kde/post-install/powerdevil/10-enable-upower-suspend.rules
new file mode 100644
index 0000000..4bccfb0
--- /dev/null
+++ b/kde/post-install/powerdevil/10-enable-upower-suspend.rules
@@ -0,0 +1,9 @@
+polkit.addRule(
+ function(action, subject) {
+ if ( (action.id == "org.freedesktop.upower.suspend" ||
+ action.id == "org.freedesktop.upower.hibernate")
+ && subject.isInGroup("power") ) {
+ return polkit.Result.YES;
+ }
+ }
+);
diff --git a/kde/post-install/powerdevil/30-org.freedesktop.upower.pkla b/kde/post-install/powerdevil/30-org.freedesktop.upower.pkla
deleted file mode 100644
index b3b5dd2..0000000
--- a/kde/post-install/powerdevil/30-org.freedesktop.upower.pkla
+++ /dev/null
@@ -1,9 +0,0 @@
-# /etc/polkit-1/localauthority/50-local.d/30-org.freedesktop.upower.pkla
-# Allow all power users to suspend/hibernate the computer:
-[Power Users]
-Identity=unix-group:power
-Action=org.freedesktop.upower.suspend;org.freedesktop.upower.hibernate
-ResultAny=yes
-ResultInactive=no
-ResultActive=yes
-
diff --git a/kde/post-install/powerdevil/40-org.freedesktop.consolekit.system.stop-multiple-users.pkla b/kde/post-install/powerdevil/40-org.freedesktop.consolekit.system.stop-multiple-users.pkla
deleted file mode 100644
index 1fae73a..0000000
--- a/kde/post-install/powerdevil/40-org.freedesktop.consolekit.system.stop-multiple-users.pkla
+++ /dev/null
@@ -1,8 +0,0 @@
-# /etc/polkit-1/localauthority/50-local.d/40-org.freedesktop.consolekit.system.stop-multiple-users.pkla
-[Allow power users to shutdown]
-Identity=unix-group:power
-Action=org.freedesktop.consolekit.system.stop-multiple-users;org.freedesktop.consolekit.system.stop
-ResultAny=yes
-ResultInactive=no
-ResultActive=yes
-
diff --git a/kde/post-install/powerdevil/41-org.freedesktop.consolekit.system.restart-multiple-users.pkla b/kde/post-install/powerdevil/41-org.freedesktop.consolekit.system.restart-multiple-users.pkla
deleted file mode 100644
index db17c63..0000000
--- a/kde/post-install/powerdevil/41-org.freedesktop.consolekit.system.restart-multiple-users.pkla
+++ /dev/null
@@ -1,7 +0,0 @@
-# /etc/polkit-1/localauthority/50-local.d/41-org.freedesktop.consolekit.system.restart-multiple-users.pkla
-[Allow power users to restart]
-Identity=unix-group:power
-Action=org.freedesktop.consolekit.system.restart-multiple-users;org.freedesktop.consolekit.system.restart
-ResultAny=yes
-ResultInactive=no
-ResultActive=yes
diff --git a/kde/post-install/sddm-qt5.post-install b/kde/post-install/sddm-qt5.post-install
index 006e234..3d168b1 100644
--- a/kde/post-install/sddm-qt5.post-install
+++ b/kde/post-install/sddm-qt5.post-install
@@ -12,6 +12,19 @@ fi
# Remove the sddm.conf file because we will generate our own in doinst.sh:
rm -f $PKG/etc/sddm.conf
+# Make sure that Plasma and SDDM work on older GPUs,
+# by forcing Qt5 to use software GL rendering:
+cat <<"EOGL" >> $PKG/usr/share/sddm/scripts/Xsetup
+
+# Make sure that Plasma and SDDM work on older GPUs,
+# by forcing Qt5 to use software GL rendering:
+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
+EOGL
+
# 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}
diff --git a/kde/post-install/sddm-qt5/pam.d/sddm b/kde/post-install/sddm-qt5/pam.d/sddm
index f0b2345..df016a7 100644
--- a/kde/post-install/sddm-qt5/pam.d/sddm
+++ b/kde/post-install/sddm-qt5/pam.d/sddm
@@ -19,7 +19,8 @@ password substack system-auth
session optional pam_keyinit.so force revoke
session substack system-auth
session required pam_loginuid.so
-session optional pam_ck_connector.so nox11
+-session optional pam_ck_connector.so nox11
+-session optional pam_elogind.so
-session optional pam_gnome_keyring.so auto_start
-session optional pam_kwallet5.so auto_start
session include postlogin
diff --git a/kde/post-install/sddm-qt5/pam.d/sddm-autologin b/kde/post-install/sddm-qt5/pam.d/sddm-autologin
index fd926ef..3602395 100644
--- a/kde/post-install/sddm-qt5/pam.d/sddm-autologin
+++ b/kde/post-install/sddm-qt5/pam.d/sddm-autologin
@@ -17,7 +17,8 @@ password include system-auth
session substack system-auth
session required pam_loginuid.so
-session optional pam_ck_connector.so nox11
+-session optional pam_ck_connector.so nox11
+-session optional pam_elogind.so
-session optional pam_gnome_keyring.so auto_start
-session optional pam_kwallet5.so auto_start
session include postlogin
diff --git a/kde/post-install/sddm-qt5/pam.d/sddm-greeter b/kde/post-install/sddm-qt5/pam.d/sddm-greeter
index c7bd8a3..fe30e60 100644
--- a/kde/post-install/sddm-qt5/pam.d/sddm-greeter
+++ b/kde/post-install/sddm-qt5/pam.d/sddm-greeter
@@ -15,4 +15,5 @@ password required pam_deny.so
# Setup session
session required pam_unix.so
-session optional pam_systemd.so
+-session optional pam_ck_connector.so nox11
-session optional pam_elogind.so