vlock コマンドで tmux をロックする

現在ターミナルマルチプレクサは Byobu 経由で GNU screen と tmux を環境により併用しています．GNU screen では画面ロックの設定をしていたのですがtmux は設定していなかったので今回 console lock コマンドの vlock を設定してみました．

導入

$ sudo apt install vlock

help

$ vlock -h
vlock: locks virtual consoles, saving your current session.
Usage: vlock [options] [plugins...]
Where [options] are any of:
-c or --current: lock only this virtual console, allowing user to
switch to other virtual consoles.
-a or --all: lock all virtual consoles by preventing other users
from switching virtual consoles.
-n or --new: allocate a new virtual console before locking,
implies --all.
-s or --disable-sysrq: disable SysRq while consoles are locked to
prevent killing vlock with SAK
-t <seconds> or --timeout <seconds>: run screen saver plugins
after the given amount of time.
-v or --version: Print the version number of vlock and exit.
-h or --help: Print this help message and exit.

カレントコンソールをlock してみる．何かキーを押した後ユーザのパスワードを入力することで復帰できる．

$ vlock -c
This TTY is now locked.

Please press [ENTER] to unlock.
matoken's Password:

全てのコンソールをロックする．ロック状態で Alt + n で他のコンソールに移動しても全てロックされている．

$ vlock -a
The entire console display is now completely locked.
You will not be able to switch to another virtual console.

Please press [ENTER] to unlock.
matoken's Password:
$ tty
/dev/tty1

仮想コンソール(Xの端末, ターミナルマルチプレクサ, script等)では全てのロックは失敗する

$ vlock -a
vlock: this terminal is not a virtual console
$ tty
/dev/pts/9

tmux に設定してみる(byobu 経由の場合)

$ cat ~/.byobu/.tmux.conf
# Enable locking(I need vlock -> sudo apt install vlock)
set -g lock-command vlock
set -g lock-after-time 0
bind l lock-session

.tmux.conf に設定した状態で tmux を起動して Ctrl+b l と押すと vlock でロックされます．セッション単位でロックされます．

ちなみに X では xscreensaver-command -activate を設定しています．例えば以下は awesome wm で Mod4 + l に設定してあります．

-- lock screen
awful.key({ "Mod1" }, "l", function () awful.util.spawn( "xscreensaver-command -activate",false) end),

環境1

$ dpkg-query -W byobu screen tmux vlock
byobu 5.129-1
screen 4.6.2-3
tmux 2.8-3
vlock 2.2.2-8
$ hostnamectl | egrep 'Operating System|Architecture'
Operating System: Debian GNU/Linux 10 (buster)
Architecture: x86-64