XKB拡張がどのように機能するかを理解するために、Debianでキーボードレイアウトを設定しています。カスタムキーボードレイアウトをロードしようとしていますが、なぜグラフィカル環境では機能しませんが、仮想コンソールでは機能するのかわかりません。
/usr/share/X11/xkb/symbols/foobar
のファイルに基づいて新しいキーボードレイアウトファイルを作成しました/usr/share/X11/xkb/symbols/us
。関連部分は次のとおりです。
default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
name[Group1]= "English (US)";
key <TLDE> { [ grave, asciitilde ] };
// key <AE01> { [ 1, exclam ] };
key <AE01> { [ a, A ] };
key <AE02> { [ 2, at ] };
key <AE03> { [ 3, numbersign ] };
// ...
<AE01
(シングルキー)と表示されているキーが記号からおよびに1
変更exclam
されていることがわかりますa
。A
次のようにファイルを編集して、カスタムレイアウトを使用するようにfoobar
システムを設定しました。/etc/default/keyboard
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
# XKBLAYOUT="us"
XKBLAYOUT="foobar"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps,altwin:menu_win"
BACKSPACE="guess"
システムをグラフィカルデスクトップ環境に起動してキーを押すと、次のようになると1
予想されますが、a
まだ機能しません1
。
奇妙なことは、キーボードショートカットを使用して仮想コンソールに切り替えるとCtrl + Alt + F1
変更が適用され、1
キーを押すとa
。
また、次のコマンドを使用すると、localectl
変更が適用されたように見えます。
$ localectl
System Locale: LANG=en_US.UTF-8
VC Keymap: n/a
X11 Layout: foobar
X11 Model: pc105
X11 Options: ctrl:nocaps,altwin:menu_win
私のカスタムレイアウトがグラフィックfoobar
環境で機能しないのはなぜですか?
私はsystemdデバイスの紆余曲折を検索し、keyboard-setup.service
次のスクリプトが呼び出されることを発見しました。
/lib/console-setup/keyboard-setup.sh
/usr/bin/setupcon
私のレイアウトがコマンドに出力されfoobar
ないことがわかりました。localectl list-x11-keymap-layouts
マニュアルページは、localectl
次の設定ガイドを指しています。
https://www.x.org/releases/current/doc/xorg-docs/input/XKB-Config.html
これ以上レイアウトを使用してはいけないと言われています。
キーマップ設定は、以前にxkbを設定した方法です。ユーザーには、直接 xkb 構成を指定する特殊なキーマップファイルが含まれています。この方法は、より柔軟で簡単で直感的な構文を可能にする、前述のルールファイルに置き換えられました。互換性のためにのみ維持され、可能であれば使用しないことをお勧めします。
それでも、次のように/etc/X11/xorg.conf.d/90-foobar-kdb.conf
ファイルを埋めようとしました。
Section "InputClass"
Identifier "keyboard defaults"
MatchIsKeyboard "on"
Option "XkbModel" "pc105"
Option "XkbLayout" "foobar"
Option "XKbOptions" ""
EndSection
システムを再起動した後、オプションの選択を解除しXKbOptions
ましたが、まだfoobarマップの読み込みに失敗しました。だから私はまだX11でカスタムレイアウトをロードする方法についてまだ混乱しています。