†Linuxなんて大キライ†

XKBOPTIONS −あるいは setxkbmap -option−

作成開始日 2022.01.06
最終更新日 2022.01.07

【結論】オプション一覧は/usr/share/X11/xkb/rules/evdevにある

[CapsLock]キーを[Ctrl]キーに変更するには、/etc/default/keyboardを編集して、XKBOPTIONS="ctrl:nocaps"あるいは"ctrl:swapcaps"を追加する。または、コマンドラインからsetxkbmap -optionで同様な設定をする。これらの手法は定番のようで、さまざまなところで紹介されているが、他のキーの変更にも利用できるのだろうか?

先日ちょっとした都合で、[F10]を[Ctrl]に変更する必要が出てきたのだが、これもXKBOPTIONSで設定可能なのだろうか?そもそも、XKBOPTIONSに指定可能なオプションにはどんな物があるのか?あるいは全てのキーに対応できる一般的な書式のようなものが存在するのか?この辺りが全然判らなくて実に困った。ネットで検索しても、そうした情報はほとんど出てこなかった。

が、ようやくこの点に関する情報が見つかった(引用元失念!申し訳ない!)。それによると、/usr/share/X11/xkb/rules/evdevにオプション一覧が書き込まれているらしい。正確に言えば、setxkbmap -print -verbose 10で表示されるrulesファイルに含まれているとのこと。ウチの環境では、そのrulesファイルが上記のファイルだった。

【オプション一覧】

ともあれ、指定できるオプションはこの一覧に書かれている物だけで、他のものは使用できないらしい(オプションを自作する、という方法はあるようだが…)。この一覧には[F10]キーに関する設定は含まれておらず、従って、私の所期の目的は達成できないことが判明した。

しかし、[F10]ではなく[Win]キーを[Ctrl]に変更しても用は足りそうだ。そして、[Win]キーを[Ctrl]に変更するオプションは用意されていた。それが「altwin:ctrl_win」で、例えばsetxkbmapを使って指定する場合は、次のようになる。

setxkbmap -option altwin:ctrl_win
複数のオプションを指定する場合には、オプションをカンマで区切って並べる。
setxkbmap -option ctrl:nocaps,altwin:ctrl_win

【留意点】基本的に、変更する「キー」と、そのキーに割り当てる「機能」を指定するのだが、その順序が統一されていない感じなので注意が必要。例えば「altwin:ctrl_win」は[機能_キー]の順序だが、「ctrl:menu_rctrl」は[キー_機能]の順序。

なお、オプション設定を全て取り消して、初期状態に戻すには、以下のようにする。
setxkbmap -option


【Linuxなんて大キライ目次】 【ホーム】