diff --git a/Bin/battery-manager/battery-manager.policy b/Bin/battery-manager/battery-manager.policy new file mode 100644 index 00000000..78473a7a --- /dev/null +++ b/Bin/battery-manager/battery-manager.policy @@ -0,0 +1,17 @@ + + + + + Manage battery settings for ACTUAL_USER_PLACEHOLDER + Authentication is required to manage battery settings + + no + no + yes + + /usr/bin/battery-manager-ACTUAL_USER_PLACEHOLDER + true + + diff --git a/Bin/battery-manager/battery-manager.rules b/Bin/battery-manager/battery-manager.rules new file mode 100644 index 00000000..6e927653 --- /dev/null +++ b/Bin/battery-manager/battery-manager.rules @@ -0,0 +1,14 @@ +polkit.addRule(function(action, subject) { + if (action.id == "com.local.battery-manager.ACTUAL_USER_PLACEHOLDER" && + subject.user == "ACTUAL_USER_PLACEHOLDER") { + + // Check if the parent process is quickshell or set-battery-threshold + var pid = subject.pid; + var ppid = polkit.spawn(["ps", "-o", "ppid=", "-p", pid.toString()]).trim(); + var parentCmd = polkit.spawn(["ps", "-o", "comm=", "-p", ppid]).trim(); + + if (parentCmd.indexOf("quickshell") !== -1 || parentCmd.indexOf("set-battery-treshold") !== -1) { + return polkit.Result.YES; + } + } +});