summaryrefslogtreecommitdiffstats
path: root/kde/post-install/powerdevil
diff options
context:
space:
mode:
Diffstat (limited to '')
-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
9 files changed, 64 insertions, 49 deletions
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