arch / systemdのふたを閉じたときに画面を中断してロックする


22

画面をロックし、蓋を閉じるときに中断する最も簡単な方法は何ですか?イベントフックを使用して/etc/systemd/logind.confおり、ふたを閉じると正常に中断します。しかし、ロック部分に関しては失われています-スクリーンセーバーサービスを有効にする必要がありlogind.confますか?2つのイベントを一度にトリガーするにはどうすればよいですか?


範囲外なので、私はコメントしています:i3では、キーバインドをコマンドに割り当てるのは非常に簡単です。以来mod+L、既にに割り当てられていたblurlock私にとって、持っているのは簡単だったmod+Sことblurlock && systemctl suspend -iの代わりに。だから、蓋を閉めたときではなく、ただロックしたいのか、ロックしてサスペンドしたいのかを選択するのに非常にうまく機能します。
pzkpfw

回答:


17

Arch Wikiにはいくつかの例があります。

基本的に、スクリーンロッカー用のサービスファイルを作成し、それがsuspendhibernateまたはsleepターゲットのいずれかに確実にフックされるようにします。

slockのような単純な画面ロッカーを使用する場合、次のように/etc/systemd/system/lock.serviceなります。

[Unit]
Description=Lock the screen on resume from suspend

[Service]
User=jason
Environment=DISPLAY=:0
ExecStart=/usr/bin/slock

[Install]
WantedBy=suspend.target

wikiの他の例には、他のサービスのシャットダウンや起動など、より複雑なオプションがあります。


おかげで、私はその例を見ましたが、ExecStart=/usr/bin/slockビットが最初の一見でロックを指すことを理解していませんでした。
pldimitrov

中断して戻った場合、Xディスプレイマネージャーには画面ロックがあります。しかし、私のttyはどうですか?ログインしていて、サスペンドしていて、ttyを終了するのを忘れた場合、人々はそこに切り替えて操作を続けることができます。
CMCDragonkai

@CMCDragonkaiしたいphyslockを、その後...
jasonwryan

1
これは機能しますが、システムの唯一のユーザーである場合に限ります。よりクリーンなソリューションはxss-lock(Debian、Arch Linux、来週Fedoraでも利用可能)を使用し、i3lockまたはとともにユーザーとして実行することslockです。
マーティンUeding 16年

1
@MartinUedingと@jasonwryan Userはハードコードされています。このマシンはjason(または、ガールフレンドなど、パスワードを知っている人)だけが使用するという前提。理想的にはUser、サスペンドを開始した人になりたいのですが、それに対する解決策はまだ見つかりませんでした。
ロルフ

1

openrcwith を使用する場合elogind、代替ソリューションがあります(systemdに依存しません):

#!/bin/sh
#
# /lib/elogind/system-sleep/lock.sh
# Lock before suspend integration with elogind

username=lerax
userhome=/home/$username
export XAUTHORITY="$userhome/.Xauthority"
export DISPLAY=":0.0"

case "${1}" in
        pre)
            su $username -c "/usr/bin/slock" &
            sleep 1s;
            ;;
esac

参照:https : //gist.github.com/ryukinix/bd0c1ddcbbafdb4149ae70e41b7c822b

これを投稿するのは、適切な動作方法を見つけるのが非常に難しく、このスレッドが「サスペンド後にロックする」などのGoogleの最初の結果に表示されるためです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.