Slackware 和 elogind:如何为高级用户启用挂起和休眠?

Slackware 和 elogind:如何为高级用户启用挂起和休眠?

我在 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 命令行中测试并正常工作

相关内容