クリックしてオバロペチカのITポエムの記事一覧へ移動

オバロペチカのITポエム

とりあえずLinuxについて書こうと思ってるよくわからないITポエム

MX LinuxでCtrl+Alt+Backspaceを無効化する方法

対象

この記事の対象はMX Linuxのダウンロードページの上側にある版(KDEではなくXfce/Fluxbox 19.4)です。

Manjaro XfceでCtrl+Alt+Backspaceを無効化する方法はこちらにあります。

obalopetika.hatenablog.jp

はじめに

Ctrl+Alt+Backspaceを押すと確認画面を経由しないでログイン画面に戻るが、確認画面を経由させたい。

Xfce デスクトップからログアウトするためのアイコン(xfce4-session-logout)を使えばログアウトする前に確認画面で確認できる。Ctrl+Alt+Backspaceでログイン画面(lightdm)に戻ったとき未保存のファイルや実行中のコマンドがあったら心配だ。

f:id:obalopetika:20210408005215j:plain

f:id:obalopetika:20210408005221j:plain

Ctrl+Alt+BackspaceによるXサーバーの強制終了を無効化させる方法を調べた。

Ctrl+Alt+Backspaceを無効化した後、キーボード>アプリケーションショートカットキーの設定でコマンドxfce4-session-logoutをショートカットキーCtrl+Alt+BackspaceとCtrl+Alt+Deleteに割り当て、ログアウトや再起動やシャットダウンやサスペンドの前に確認画面で確認する。

/etc/default/keyboardを修正

/etc/default/keyboardがキーボード設定の基本だと思う。なんとなく以下の内容にしている。pc105とjpの組み合わせが日本語キーボードのjp106と同じになると思う。ctrl:nocapsはCapsLockキーをCtrlキーに変えるオプション。

XKBMODEL="pc105"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps"

BACKSPACE="guess"

setxkbmap -queryの結果がおかしい

setxkbmap -queryは現在のキーボードの設定を表示するコマンドだが、ログイン後の結果がおかしい。

$ setxkbmap -query
rules:      evdev
model:      pc105
layout:     jp
options:    terminate:ctrl_alt_bksp,ctrl:nocaps

/etc/default/keyboardでオプションctrl:nocapsだけを指定したのにterminate:ctrl_alt_bkspもオプションに追加され、Ctrl+Alt+Backspaceを押すと確認画面を経由しないでXサーバーを強制終了する。

setxkbmap -queryの結果からterminate:ctrl_alt_bkspを消したい。

どのようにして調べたか?

ファイルの全探索で調べた。

rg terminate:ctrl_alt_bksp

rgは再帰的にディレクトリを探索してファイルの中身を検索するripgrepのコマンド。

すると、いくつかのファイルに存在したが、/usr/local/bin/kbd.shが原因だった。

$ rg terminate:ctrl_alt_bksp
local/bin/kbd.sh
10:setxkbmap -option terminate:ctrl_alt_bksp

/usr/local/bin/kbd.shはsetxkbmap -queryの結果にterminateがなければterminate:ctrl_alt_bkspのオプションを追加する。

/usr/local/bin/kbd.shは何?

次のコマンドで調べた。

$ dpkg -S /usr/local/bin/kbd.sh
desktop-defaults-mx-xfce-system: /usr/local/bin/kbd.sh

dpkg -Sはファイルがどのパッケージに属するかを調べる。

dpkg -L でパッケージのdesktop-defaults-mx-xfce-systemに属するファイル一覧を調べる。

$ dpkg -L desktop-defaults-mx-xfce-system
(長いので省略)
/etc/skel/.config/autostart
/etc/skel/.config/autostart/Blueman-start.desktop
/etc/skel/.config/autostart/blueman.desktop
/etc/skel/.config/autostart/fbxkb.desktop
/etc/skel/.config/autostart/gnome-keyring-secrets.desktop
/etc/skel/.config/autostart/kbd.desktop
/etc/skel/.config/autostart/keyboard switcher.desktop
/etc/skel/.config/autostart/pulse-start.desktop
/etc/skel/.config/autostart/pulseaudio.desktop
/etc/skel/.config/autostart/tumblerd-monitor.desktop
/etc/skel/.config/autostart/volumeicon.desktop
/etc/skel/.config/autostart/xfce4-volumed.desktop
(長いので省略)
/usr/local/bin/kbd.sh

この結果のautostartがヒントになった。

セッションと起動(xfce4-session-settings)の自動開始アプリケーションのなかにコマンド/usr/local/bin/kbd.shをログイン時に実行するkbdを見つけた。

f:id:obalopetika:20210408005218j:plain

これをオフにしたらログイン後にCtrl+Alt+BackspaceによるXサーバーの強制終了を無効化できた。

まとめ

Ctrl+Alt+Backspaceを無効化させる方法をファイルの全探索で調べた。

セッションと起動(xfce4-session-settings)の自動開始アプリケーションのkbdをオフにしてCtrl+Alt+Backspaceを無効化できた。