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

オバロペチカのITポエム

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

Manjaro XfceでCtrl+Alt+Backspaceを無効化する方法

対象

この記事の対象はManjaroのダウンロードページの一番上にある版のXfce 21.0です。

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

obalopetika.hatenablog.jp

はじめに

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

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

f:id:obalopetika:20210408005729j:plain

f:id:obalopetika:20210408005720j: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

/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を無視してる。

f:id:obalopetika:20210408005724j:plain

インストール画面で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を設定する部分を書き換えることで無効化できた。