動機 #
この設定の目的は、Shift + CapsLockで副作用なく全角半角を切り替えられるようにすることです。
私は普段Windows + US配列のキーボードを使用するときは、Shift + CapsLockで全角半角切り替えています。
Linuxでも同じ操作感を実現したいんですが、単にIMEの設定でShift + CapsLockに全角半角切り替えを割り当てただけでは問題があります。
問題は、Shift + CapsLockを押すと全角半角切り替えと同時にCapsLockもトグルされてしまうので、そのままでは使いづらいということです。
そこで、CapsLockのトグル機能を無効化してShift + CapsLockを純粋に全角半角切り替えのみに使用できるよう設定します。
ググってみたところXmodmapでやるのが簡単そうではあったんですが、そちらはWayland環境では使えないのでXKB(X Keyboard Extension)の設定でカスタムキーボードレイアウトを追加します。
私が使ってるディストリビューションはFedora KDE Spinです。他のディストリビューションでは違うかもしれません。
環境 #
- OS: Fedora Linux 41 (KDE Plasma) x86_64
- ディスプレイサーバー: Wayland
- キーボード: US配列
設定方法 #
編集対象のファイル #
XKBの以下の設定ファイルを編集します。
/usr/share/X11/xkb/symbols/us- US英語キーボードレイアウトのキーシンボル定義ファイル - このファイルへの修正が肝になります/usr/share/X11/xkb/rules/base.lst- 基本的な(古典的な)キーボードレイアウト、モデル、オプションの一覧- (テキスト形式)/usr/share/X11/xkb/rules/base.xml- 基本的な(古典的な)キーボード設定の構造化された定義(XML形式)/usr/share/X11/xkb/rules/evdev.lst- evdevドライバー用(現在主流)のキーボードレイアウト、モデル、オプションの一覧(テキスト形式)/usr/share/X11/xkb/rules/evdev.xml- evdevドライバー用(現在主流)の構造化された定義(XML形式)
/usr/share/X11/xkb/symbols/us の編集 #
以下の内容を追加します。
|
|
partial alphanumeric_keys modifier_keys: キーボードのキー定義を部分的に拡張することを示します。xkb_symbols "custom": カスタムキーボードレイアウトを定義するセクションです。“custom"はこのレイアウトの名前で、任意の名前を指定できます。include "us(basic)": ベースとなるUSキーボードレイアウトをインクルードします。“us(basic)“はこのファイル内に定義されている基本的なUSキーボードレイアウトの名前です。name[Group1]= "English (Custom)": キーボードレイアウトの第1グループ(基本レイアウト)に対する人間が読める名前を定義します。ここでは"English (Custom)“としていますが、任意の名前に変更可能です。replace key <CAPS>: CapsLockキーの定義を置き換えます。type= "TWO_LEVEL": CapsLockキーが2つのレベル(通常とShift)のキーであることを示します。repeat= No: CapsLockキーがリピートしないことを示します。symbols= [ Caps_Lock, Caps_Lock ]: 通常状態とShift押下状態の両方で同じCaps_Lockシンボルを生成することを示します。actions= [ LockMods(modifiers=Lock), NoAction() ]: CapsLock単体では従来通りロック機能が働くように設定し、Shift + CapsLock(2番目のレベル)では何もアクションを実行しないように設定します。
/usr/share/X11/xkb/rules/base.lst, /usr/share/X11/xkb/rules/evdev.lst の編集 #
! variantのセクションに以下の内容を追加します。
|
|
custom us: English (Custom): 先ほど定義したカスタムキーボードレイアウトを、USキーボードレイアウトのバリアントとして追加します。
/usr/share/X11/xkb/rules/base.xml, /usr/share/X11/xkb/rules/evdev.xml の編集 #
以下の内容を追加します。
|
|
<variant>: 新しいキーボードレイアウトのバリアントを定義します。<configItem>: キーボードレイアウトの設定項目を定義します。<name>custom</name>: 先ほど定義したカスタムキーボードレイアウトの名前を指定します。<description>English (Custom)</description>: このレイアウトの人間が読める説明を指定します。
設定の反映 #
デスクトップセッションに再ログインすると、デスクトップマネージャの設定画面から先程追加したキーボードレイアウトを選択できるようになります。
参考 #
困ったときのArch Wiki