「セッションをロック」の版間の差分
(→systemd events: 翻訳) |
(→DPMS: 翻訳) |
||
83行目: | 83行目: | ||
===== DPMS ===== |
===== DPMS ===== |
||
+ | DPMS シグナリングタイムアウトを設定するには: |
||
− | To configure DPMS signaling timeout: |
||
+ | # 10 分間操作がないとスクリーンセーバーを起動する |
||
− | # Trigger screensaver after 10 minutes of inactivity |
||
xset s on |
xset s on |
||
xset s 600 |
xset s 600 |
||
− | DPMS |
+ | DPMS シグナリングは、{{ic|Monitor}} セクションの {{ic|/etc/X11/xorg.conf.d/}} で設定することもできます。 |
+ | DPMS シグナリングを使用すると、たとえばユーザーに通知したり、画面を暗くしたりするために、2 番目のタイマーを設定できます。例 ({{man|1|xss-lock}} から): |
||
− | Using DPMS signaling, you can set a second timer, for example to notify the user or to dim the screen. For example (from {{man|1|xss-lock}}): |
||
+ | # 3 分間操作がないと画面が暗くなり、2 分後に i3lock を使用して画面をロックします。 |
||
− | # Dim the screen after three minutes of inactivity, lock the screen two minutes later using i3lock: |
||
xset s 180 120 |
xset s 180 120 |
||
xss-lock -n dim-screen.sh -- i3lock -n |
xss-lock -n dim-screen.sh -- i3lock -n |
||
− | + | {{ic|dim-screen.sh}} スクリプトの例は {{ic|/usr/share/doc/xss-lock}} にあります。 |
|
+ | {{Note|[[DPMS]] で xss-lock を使用する場合、自分で画面をブランクにする必要があります。ビデオを見ているときはトリガーされません}} |
||
− | {{Note|When using xss-lock with [[DPMS]], you will have to blank the screen yourself. It will not be triggered when looking at videos.}} |
||
==== xautolock ==== |
==== xautolock ==== |
2023年3月5日 (日) 18:24時点における版
セッションの画面をロックするユーティリティは数多くあります。ただし、使用するユーティリティは、使用している環境 (仮想コンソールまたは特定のディスプレイサーバー (Xorg または Wayland) に大きく依存することに注意して下さい。
環境別
仮想コンソール
vlock
または physlock を使用して、仮想コンソールをロックできます。
Xorg
Xorg でセッションをロックするには多くの方法があるため、このセクションは不完全になる可能性があります。ただし、いくつかの方法には次のものがあります。
- xlockmore パッケージ内の
xlock
- xsecurelock パッケージ内の
xsecurelock
- xscreensaver パッケージの
xscreensaver-command -lock
- xss-lock
- slock パッケージの中の slock
- kscreenlocker
- i3lock
- i3lock-colorAUR
- alockAUR
ほとんどのデスクトップ環境には、セッションをロックする何らかの方法が用意されています。
Wayland
swaylock または waylock でセッションをロックできます。
ロックのトリガー
セッションをロックするには、さまざまな方法があります。
- ターミナルから
- GUI を使用
- デスクトップアイコンから
- ホットコーナーの使用
- メニュー (マウスまたはキーボード操作) からを選択します
- ショートカット から
- イベントから
- 非アクティブ (systemd、xss-lock、xautolock を使用) イベントから
- systemd イベント (サスペンド、ハイバネートなど)
最後のポイント (イベントからロックをトリガーする) は、最も厄介です。
- アクショントリガーでロックを実行し、その後、最初のアクションを実行する。
- イベントトリガーから、イベントチェーンにロックを追加する。今のところ、これは systemd を使ってしかできません。
シェルトリガー
Zsh
ターミナルの非アクティブ後にコマンドを実行するには、環境変数 TMOUT を使用することができます。
ALARM 信号のトラップと組み合わせることで、ロックを実行することができます。トラップがなければ、シェルを終了させるだけです。
グラフィカルな環境にいるかどうかを検出したいかもしれません。そうでなければ、GUI ターミナルが理由もわからずに消え始めるかもしれません。
Xorg トリガー
xss-lock
xss-lock は、次の 2 つのいずれかによってトリガーされます。
- systemd イベント
- DPMS
これの利点は、手動で発行されたロック、非アクティブ状態によるロック、およびサスペンド コマンドによる同じ場所でのロックを制御できることです。
これらのイベントのいずれかでアクションを実行するには:
$ xss-lock <locker-utility>
systemd イベント
デフォルトで、xss-lock は suspend
、hibernate
、lock-session
、および unlock-session
に適切なアクション (ロッカーを実行) でサブスクライブします。ユーザーがロッカーのロックを解除または強制終了するのを待ちます)
suspend
とhibernate
によって 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
にあります。
xautolock
$ xautolock -time 12 -locker "systemctl suspend" -detectsleep
Wayland triggers
swayidle
swayidle listens for idle activity from the Wayland compositor, as well as systemd events, and executes commands accordingly. See Sway#Idle.
D-Bus notification
Using loginctl lock-session
, or the lock
action in logind.conf(5), you can notify the system through DBUS that you want to lock. This notification can then be processed, for example by xss-lock.
Inactivity
In logind.conf(5), you can configure the IdleAction
to lock
. This will trigger a DBUS notification, that will have to be processed (for example by xsslock) to lock the session.
Note that this is for a global system (so this is not ideal for a multi user environment).
Note also that "this requires that user sessions correctly report the idle status to the system".
Units
Before suspend or hibernate
You can use a Sleep hook.
[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
To enable it for a certain user, enable sleep@Username.service
.
Lid closing
You can use the lock
action using the related ACPI event.