Manjaro XfceでCtrl+Alt+Backspaceを無効化する方法
対象
この記事の対象はManjaroのダウンロードページの一番上にある版のXfce 21.0です。
MX LinuxでCtrl+Alt+Backspaceを無効化する方法はこちらにあります。
はじめに
Ctrl+Alt+Backspaceを押すと確認画面を経由しないでログイン画面に戻るが、確認画面を経由させたい。
Xfce デスクトップからログアウトするためのランチャー(xfce4-session-logout)を使えばログアウトする前に確認画面で確認できる。Ctrl+Alt+Backspaceでログイン画面(lightdm)に戻ったとき未保存のファイルや実行中のコマンドがあったら心配だ。
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
/etc/default/keyboardでオプションctrl:nocaps
だけを指定したのに反映されず、オプションがterminate:ctrl_alt_bksp
になり、Ctrl+Alt+Backspaceを押すと確認画面を経由しないでXサーバーを強制終了する。
setxkbmap -query
の結果からterminate:ctrl_alt_bksp
を消し、ctrl:nocaps
を有効にしたい。
どのようにして調べたか?
ファイルの全探索で調べた。
rg terminate:ctrl_alt_bksp
rgは再帰的にディレクトリを探索してファイルの中身を検索するripgrepのコマンド。
すると、いくつかのファイルに存在したが、/etc/X11/mhwd.d/nvidia.confが原因だった。このファイルに/etc/X11/xorg.conf.d/90-mhwd.confからリンクが貼られている。
$ rg terminate:ctrl_alt_bksp X11/mhwd.d/nvidia.conf 62: Option "XkbOptions" "terminate:ctrl_alt_bksp"
Xorg(Xサーバー)がxorg.conf.dディレクトリにあるコンフィグファイルを順番に実行すると思う。
90-mhwd.confのXkbOptionsを書き換えたら、ログイン後にCtrl+Alt+BackspaceによるXサーバーの強制終了を無効化できた。
Optionの行を削除したらctrl:nocaps
が有効にならなかった。Manjaroは/etc/default/keyboardを無視してる。
インストール画面でBoot with proprietary driversを選択しないとNVIDIAドライバーが入らないのでterminate:ctrl_alt_bksp
は入らなかった。
まとめ
Ctrl+Alt+Backspaceが有効だった原因はNVIDIAドライバーだった。
NVIDIAの設定ファイル/etc/X11/xorg.conf.d/90-mhwd.confでterminate:ctrl_alt_bksp
を設定する部分を書き換えることで無効化できた。