Centos 7 - 端末を介したキーボードレイアウトのカスタマイズ

Centos 7 - 端末を介したキーボードレイアウトのカスタマイズ

GUIなしでCentOS 7を使用しています。カスタムキーボードレイアウトを作成し、それをデフォルトのキーボードレイアウトとして永久に使用するには?どのファイルを編集する必要がありますか?

編集する:

ファイルを編集して再起動してキーマップを設定し、GUIで動作させることができますが、/usr/share/X11/xkb/symbols端末には影響しません(少なくともCtrl+Alt+F5.私のレイアウトを使用してください)。

/lib/kbd/keymaps/legacy/i386/xxx/キーマップファイルをasの下に置いたxxx.map.gzので、実際にロードがうまく行ってloadkeys実行すると、次のようなlocalectl内容が表示されます。

# localectl
System Locale: LANG=en_US.UTF-8
   VC Keymap: xxx
  X11 Layout: us

しかし、Ctrl + Alt + F5で開いた端末では、キーボードのレイアウトは古くなっています。

答え1

既存の構成から始めます。

  • 現在のキーボードレイアウトはを使ってダンプできますdumpkeys
  • 通常、他の基本レイアウトが配置されます。/lib/kbd/キーマップディレクトリはgzip圧縮ファイルで、その内容を使用zcatしたり簡単にアクセスしたりできます。zless

特定のキーボードキーのコードを取得するには、を使用しますshowkey

キーボードレイアウトファイルを手動でロードするには、を使用しますloadkeys。カスタムファイルへのパスを引数として受け入れます。

結果がうまくいけば、デフォルトで使用する新しいレイアウトの名前を設定できます。/etc/vconsole.conf:

KEYMAP="your-layout"

答え2

許可された回答にいくつかの詳細を追加するために私が見たものとそれを機能させるために行ったことがあります。このような内容を見つけたら、より多くのトリックとねじれを追加します。

を使用すると、sudo dumpkeys次のような結果が出力されます。

keycode  12 = minus
    shift   keycode  12 = underscore
    shift   altgr   keycode  12 = underscore
    control keycode  12 = Control_underscore
    shift   control keycode  12 = Control_underscore
    altgr   control keycode  12 = Control_underscore
    shift   altgr   control keycode  12 = Control_underscore
    alt     keycode  12 = Meta_minus
    ...

そして、以下のキーマップファイルを開くと、行/lib/kbd/keymaps/xkb/に複数の(時にはあまりにも多くの)列があることがわかります。たとえば、次のようになります。

keycode 12 = U+002d U+005f U+002d U+005f Control_underscore Control_underscore Control_underscore ...

keymaps:()のマニュアルページによると、man 5 keymaps次のようになります。

キーが押されたときにそのキーにバインドされた操作が実行されるのは、当時適用される修飾子によって異なります。キーボードドライバは9つの修飾子をサポートします。これらの修飾子は(完全に任意)、、、、、、、Shiftで表されます。各修飾子は、次の表に従って関連するpower-2重みを持ちます。AltGrControlAltShiftLShiftRCtrlLCtrlRCapsShift

modifier   weight
Shift           1
AltGr           2
Control         4
Alt             8
ShiftL         16
ShiftR         32
CtrlL          64
CtrlR         128
CapsShift     256

キーの有効なアクションは、すべての有効な修飾子の重みを追加することによって検索されます。デフォルトでは、修飾子は適用されないため、キーを押すか放すと、キー定義行の最初の列にあるアクションであるタスク番号0が実行されます。たとえば、タスク番号9(列10から始まる)は、ShiftキーとAlt修飾キーが有効な場合に有効です。

修飾子のアクティブ状態は、適切なキー入力を所望のキーにバインドすることによって変更することができる。たとえば、Shift シンボルをキーにバインドすると、そのキーを押すと Shift 修飾子が適用されるように設定され、キーを離すと修飾子の効果がキャンセルされます。 AltGr_Lockをキーにバインドすると、AltGrがキーを押したときに適用され、キーをもう一度押すと効果がキャンセルされるように設定されます。 (Shift、AltGr、Control、Altはデフォルトで同様のラベル付きキーにバインドされています。AltGrは正しいAltキーを表すことができます。)

私たちはU+002disHyphen-MinusU+005fisを知ってlow-lineいるので、はっきりと見ることができます。キーマップファイルの各行はキー自体です。 Shift+key, Shift+altgr+key... 押したときのキーコードと keysys 文字出力です。注文する。

(表を忘れた場合は、表を使用してdumpkeys --long-info表示できます。)

彼らは互いに対応しています:最初の部分の行は、2番目の部分の列に対応します。

表で見ると、最もよく見えます:

+----------+------------------------+----------------------------+
|          |                        |                            |
|  col.    | key to press(+ keycode)| chars to produce (keysys)  |
|          |                        |                            |
+----------------------------------------------------------------+
|          |                        |                            |
|   0      | keycode 12             | minus                      |
|          |                        |                            |
+----------------------------------------------------------------+
|          |                        |                            |
|   1      | shift                  | underscore                 |
|          |                        |                            |
+----------------------------------------------------------------+
|          |                        |                            |
|   2      | altgr                  | underscore                 |
|          |                        |                            |
+----------------------------------------------------------------+
|          |                        |                            |
|   3(1+2) | shift + altgr          | underscore                 |
|          |                        |                            |
+----------------------------------------------------------------+
|          |                        |                            |
|   4      | ctrl                   | ctrl + underscore          |
|          |                        |                            |
+----------------------------------------------------------------+
|          |                        |                            |
|   5(4+1) | ctrl + shift           | ctrl + underscore          |
|          |                        |                            |
+----------+------------------------+----------------------------+
|          |                        |                            |
|   6(4+2) | ctrl + alt             | ctrl + underscore          |
|          |                        |                            |
+----------+------------------------+----------------------------+

関連情報