我在 Slackware 上当前使用 elogind,我只能从终端使用 sudo 来睡眠和休眠。使用旧的好的 pm-utils,我只需编辑 10-enable-suspend.rules,使 init 3 && init 4 就可以作为用户休眠。现在我做了这些步骤
a)复制两条polkit规则
cp /usr/share/polkit-1/rules.d/10-enable-* /etc/polkit-1/rules.d/
b)我将我的用户添加到权力组中
usermod -aG power myuser
c)在logind.conf中我启用了这些选项
grep -v ^# /etc/elogind/logind.conf
[Login]
HandlePowerKey=poweroff
HandleHibernateKey=hibernate
HandleLidSwitch=hibernate
[Sleep]
AllowSuspend=yes
AllowHibernation=yes
AllowSuspendThenHibernate=yes
AllowHybridSleep=yes
d) 我重新启动系统
reboot
从 xfce4-power-manager 我无法休眠或睡眠。
我也尝试从 cli
$ loginctl hibernate
$ echo $?
1
答案1
找到解决方案。
a)我创建了3个文件,一个用于亮度,一个用于暂停,一个用于休眠
/etc/polkit-1/rules.d/88-suspend.rules
/etc/polkit-1/rules.d/88-hibernate.rules
/etc/polkit-1/rules.d/89-backlight.rules
b)文件的内容:我为组电源分配了降低亮度、暂停和休眠操作系统的可能性,当然您的用户必须在组电源中(作为辅助或主要)
cat /etc/polkit-1/rules.d/88-hibernate.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.login1.hibernate" &&
subject.isInGroup("power")) {
return polkit.Result.YES;
}
});
cat /etc/polkit-1/rules.d/88-suspend.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.login1.suspend" &&
subject.isInGroup("power")) {
return polkit.Result.YES;
}
});
cat /etc/polkit-1/rules.d/89-blacklight.rules
polkit.addRule(function(action, subject) {
if (action.id == "org.xfce.power.backlight-helper" &&
subject.isInGroup("power")) {
return polkit.Result.YES;
}
});
c) 重新启动电源管理器
xfce4-power-manager --restart
在 xfce4 gui 和 loginctl 命令行中测试并正常工作