Slackwareとelogind:上級ユーザーのために一時停止と休止状態を有効にする方法は?

Slackwareとelogind:上級ユーザーのために一時停止と休止状態を有効にする方法は?

現在、Slackwareはelogindを使用しており、端末でsudoを使用してのみスリープモードと休止状態モードを使用できます。古い pm-utils を使用して init 3 && init 4 を使用すると、10-enable-suspens.rules を編集して、ユーザーとして休止状態を設定できます。今、私は次のステップを実行しました。

a) 2 つのポルケット規則をコピーします。

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) 明るさ用、一時停止用、休止用にそれぞれ 1 つずつ 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)ファイルの内容:明るさを減らし、OSを一時停止して休止状態にする可能性をグループ電源に割り当てました。もちろん、ユーザーはグループ電源(セカンダリまたはプライマリ)にいる必要があります。

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 コマンドラインでテストされ、正常に動作します。

おすすめ記事