セッションをロック

提供: ArchWiki
2023年4月5日 (水) 17:15時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (テンプレート:Merge を削除)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

セッションの画面をロックするユーティリティは数多くあります。ただし、使用するユーティリティは、使用している環境 (仮想コンソールまたは特定のディスプレイサーバー (Xorg または Wayland) に大きく依存することに注意して下さい。

参照 アプリケーション一覧#スクリーンロック

環境別

仮想コンソール

vlock または physlock を使用して、仮想コンソールをロックできます。

Xorg

Xorg でセッションをロックするには多くの方法があるため、このセクションは不完全になる可能性があります。ただし、いくつかの方法には次のものがあります。

ほとんどのデスクトップ環境には、セッションをロックする何らかの方法が用意されています。

Wayland

swaylock または waylock でセッションをロックできます。

ロックのトリガー

セッションをロックするには、さまざまな方法があります。

  • ターミナルから
  • GUI を使用
    • デスクトップアイコンから
    • ホットコーナーの使用
    • メニュー (マウスまたはキーボード操作) からを選択します
  • ショートカット から
  • イベントから

最後のポイント (イベントからロックをトリガーする) は、最も厄介です。

  • アクショントリガーでロックを実行し、その後、最初のアクションを実行する。
  • イベントトリガーから、イベントチェーンにロックを追加する。今のところ、これは systemd を使ってしかできません。

シェルトリガー

Zsh

ターミナルの非アクティブ後にコマンドを実行するには、環境変数 TMOUT を使用することができます。

ALARM 信号のトラップと組み合わせることで、ロックを実行することができます。トラップがなければ、シェルを終了させるだけです。

グラフィカル環境にいるかどうかを検出したい場合があります。そうしないと、理由を理解できずに GUI 端末がクローズされる可能性があります。

Xorg トリガー

xss-lock

xss-lock は、次の 2 つのいずれかによってトリガーされます。

  • systemd イベント
  • DPMS

これの利点は、手動で発行されたロック、非アクティブ状態によるロック、およびサスペンド コマンドによる同じ場所でのロックを制御できることです。

これらのイベントのいずれかでアクションを実行するには:

$ xss-lock <locker-utility>
systemd イベント

デフォルトで、xss-lock は suspendhibernatelock-session、および unlock-session に適切なアクション (ロッカーを実行) でサブスクライブします。ユーザーがロッカーのロックを解除または強制終了するのを待ちます)

suspendhibernate によって xss-lock がトリガーされるのを、--ignore-sleep を使って防ぐことができます。

loginctl lock-session を使用すると、手動ロックをトリガーすることができます。

DPMS

DPMS シグナリングタイムアウトを設定するには:

# 10 分間操作がないとスクリーンセーバーを起動する
xset s on
xset s 600

DPMS シグナリングは、Monitor セクションの /etc/X11/xorg.conf.d/ で設定することもできます。

DPMS シグナリングを使用すると、たとえばユーザーに通知したり、画面を暗くしたりするために、2 番目のタイマーを設定できます。例 (xss-lock(1) から):

# 3 分間操作がないと画面が暗くなり、2 分後に i3lock を使用して画面をロックします。
xset s 180 120
xss-lock -n dim-screen.sh -- i3lock -n

dim-screen.sh スクリプトの例は /usr/share/doc/xss-lock にあります。

ノート: DPMS で xss-lock を使用する場合、自分で画面をブランクにする必要があります。ビデオを見ているときはトリガーされません

xautolock

$ xautolock -time 12 -locker "systemctl suspend" -detectsleep
ノート: xautolock には制限付きのタイマー制限があります。
  • 1 分から 1 時間 time
  • 10 分から 2 時間 killtime
再開後に xautolock がセッションをロックしないようにするために、-detectsleep を追加する必要がある場合があります。xautolock の優れた機能の 1 つは corners です。

Wayland トリガー

swayidle

swayidle は、Wayland コンポジタからのアイドルアクティビティと systemd イベントをリッスンし、それに応じてコマンドを実行します。Sway#アイドリング を参照してください。

D-Bus 通知

loginctl lock-session、または logind.conf(5)lock アクションを使用して、ロックすることを DBUS 経由でシステムに通知できます。この通知は、xss-lock などによって処理できます。

非アクティブ

logind.conf(5)では、IdleActionlock に設定することができます。これは DBUS 通知をトリガーし、セッションをロックするために (例えば xsslock で) 処理する必要があります。

これはグローバルなシステムのためのものであることに注意してください (したがって、これはマルチユーザー環境において理想的ではありません。)

また、"これは、ユーザーセッションがシステムにアイドル状態を正しく報告することを必要とする" ことにも注意してください。

ユニット

サスペンドまたは休止状態の前に

スリープフック を使用。

[Unit]
Description=Lock the screen
Before=sleep.target
 
[Service]
User=%I
Type=forking
Environment=DISPLAY=:0
ExecStart=/usr/bin/i3lock -c 000000
 
[Install]
WantedBy=sleep.target

特定のユーザーに対して有効にするには、有効化 sleep@Username.service

蓋を閉める

関連する ACPI イベント を使って lock アクションを使用することができます。

参照