setxkbmap:X11標準のレイアウト切替&シンプルなキーマップ変更ツール

目次
setxkbmapコマンドについての概要と詳細
setxkbmapとは
setxkbmap
は、X11環境で使用されるキーボードレイアウトを設定・変更するためのコマンドラインツールです。主にLinuxのX環境で、キーボードのレイアウト、オプション、バリアントを変更するために使われます。Xサーバの再起動なしで、リアルタイムにキーマッピングを切り替えることができ、マルチレイアウト設定や特殊キーの動作カスタマイズにも対応しています。
主な用途
- 英語(us)や日本語(jp)などのキーボードレイアウト切り替え
- CapsLockをCtrlに変更、AltとWinキーの入れ替えなどのカスタマイズ
- 複数レイアウトをトグル切り替え(例:英語 ↔ 日本語)
- ウィンドウマネージャやXセッションの初期化スクリプトでの使用
インストール方法
Debian/Ubuntu系: sudo apt install x11-xkb-utils
Fedora/RedHat系: sudo dnf install setxkbmap
Arch Linux系: sudo pacman -S xorg-setxkbmap
基本的な使い方
$ setxkbmap us # 英語レイアウトに設定
$ setxkbmap jp # 日本語キーボードに設定
$ setxkbmap -layout us,ru -option "grp:alt_shift_toggle" # Alt+Shiftで英語/ロシア語を切り替え
$ setxkbmap -layout jp -option "ctrl:nocaps" # CapsLockキーをCtrlに変更
よく使うオプション
オプション | 説明 |
---|---|
-layout | 使用するキーボードレイアウトを指定(例: us, jp) |
-variant | レイアウトのバリアント(例: dvorak, intl) |
-option | 特殊なキー設定や切替オプションを指定 |
-print | 現在の設定を出力(xkbcompとの組み合わせ用) |
複数レイアウトの切り替え設定例
$ setxkbmap -layout us,jp -option "grp:win_space_toggle"
→ Windowsキー+Spaceで英語と日本語キーボードを切り替え可能になります。
CapsLockをCtrlキーに変更する例
$ setxkbmap -option "ctrl:nocaps"
→ CapsLockキーを完全にCtrlキーとして動作させます。
Xの起動時に自動で適用するには
~/.xinitrc
またはウィンドウマネージャの起動スクリプトに追加:
$ setxkbmap -layout jp -option "ctrl:nocaps"
他のXキーボードユーティリティとの違い
- xmodmap: キーコードとシンボルを直接編集(低レベル)
- setxkbmap: レイアウト単位で設定(高レベル・推奨)
- xkbcomp: カスタムレイアウトを構築・ビルド
使用上の注意
- X11専用であり、Waylandでは使用不可
- ディストリビューションによっては最初から導入されていない
- 入力メソッド(IBus、Fcitxなど)と競合する場合がある
まとめ
setxkbmap
は、LinuxのX11環境において最も手軽にキーボードレイアウトを変更できるツールの一つです。レイアウト切替、特殊キー再割り当て、多言語入力のトグルなど、幅広いカスタマイズに対応しており、軽量なウィンドウマネージャとの組み合わせに最適です。Wayland環境では使用できませんが、X11ユーザーにとっては今なお有効なツールです。