注:Waylandはxkbを使用しますが、多くのxToolsは正常に動作しなくなりました(xdotoolなど)
注:これは完全なチュートリアルではありません。新しい8レベルのレイアウトを作成し、構文を理解しようとしている個人にとって最も便利です。
注:迅速で汚れたソリューションが提供されます。必要なコードを自動的に生成するスプレッドシートが含まれています。
XKBディレクトリについて
cd /usr/share/X11/xkb/ && ls
- types-生成されたキーがActive Modifiersによってどのように変更されるか。(Shift、Control、Alt〜)
修飾キーをカスタマイズする場合は重要です。
- geometry-キーボードグラフィックスの描画に使用。
非標準のキーボードハードウェアを設計する場合は重要です。
- rules-現在の設定に適した構成を取得します。
これを定義する必要があります
- keycodes-キーボードハードウェアのキーコードのインタープリター。
例:Macintoshキーボードはスペースバーをとして認識し57
ます。ただし、<SPCE>
- symbols-どのキーコードにどの値が割り当てられますか。
ここで、カスタムレイアウトを定義します。
- compat- 互換性の略。
修飾子の
内部動作(Shift、Control、Alt ...)
ワークフロー
keycodes > symbols > compat
タッチするだけsymbols
です:Quick and Dirtyソリューションについては以下を参照してください。
シンボルマップ
/symbols/us このディレクトリ内のファイルはすべて同じ構造に従います。
partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "US/ASCII";
key <TLDE> { [ quoteleft, asciitilde ] };
key <AE01> { [ 1, exclam ] };
modifier_map Shift { Shift_L, Shift_R };
};
partial -完全なキーボードマップではありません
alphanumeric_keysマッピングされるキーボードのセクション。複数を使用できます
注:*_keys
指定しない場合は、完全なキーボードが想定されます。
"basic" -シンボルマップの名前
name[Group1]= "US/ASCII";与えるユニークなこのキーボードのグループに名前を。
modifier_map修飾キーの編集用。(ctrl、shift、alt〜)
Shift { Shift_L, Shift_R };通常は必要ありません。両方のシフトをシフト修飾子、別名レベル2にマッピングします。
key <TLDE> Tildeキー -通常、Tabのすぐ上の左上キー
key <AE01> イラスト -3つの部分で構成され、AE01
A=英数字キーブロック。
KP=キーパッド
FK=ファンクションキー
E=キーボードの行。
Space Key= A行
Shift Key= B行
Caps Lock= C行
Tab Key= D行
01=行のキーの位置。
AE01= 1
AB02= X
AC05=G
[+ ]-C言語。角カッコはリストを示し、これによりアイテムがで分割され,ます。リストの長さはレベルの量を決定します。例えば:
key<AE01> { [ Level 1 , Level 2 , Level 3 , Level 4 , Level 5 ] }
通常、レベルは次のキー入力を示します。
- 修飾キーなし
- Shift
- Alt Gr
- Shift + Alt Gr
- Custom -レベル4を超えるものはほとんどありません。
要するに、shift + altgrにキーをマッピングする場合、リストは少なくとも4項目の長さが必要です。
警告-一般的なエラー
これらの行のいずれかが重大なエラーを引き起こし、使用可能なキーボードがなくなります。
key<AE01> { [ Backspace ] }
key<AE02> { [ a, b, , C ] }
Backspace
する必要がありますBackSpace
:スペルに特に注意を払ってください。
- 空のエントリはである必要があります
VoidSymbol
。
最高の安全対策!
編集しているファイルをバックアップします。
sudo /bin/cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/usBACKUP
rootパスワードなしで実行できるスクリプトを作成します
何かのようなもの:
#!/bin/bash
sudo /bin/cp -rf /usr/share/X11/xkb/symbols/usBACKUP /usr/share/X11/xkb/symbols/us
何か問題が発生した場合は、マウスを使用してそのコード行を実行します(sudoersに許可を与えたbashスクリプトに含まれています。忘れずchmod +x
に実行可能ファイルとして実行してください)。
破損したシステムを回復するためのバックアップ戦略
- 警告:キーボードとスクリーンキーボードは、わずかなエラーで動作しなくなります。
- マウスが動作します。入力するには、文字を強調表示し、中クリックを使用して貼り付けます。Bashでは
return
、改行を貼り付けることで(Enterキーを押す)できます。
- キーボードはルートシェルのリカバリモードで動作します。(bashからアクセス)
- いつでもライブ環境を使用してファイルを修正できます。
迅速で汚れたソリューション
- ここに行く
- ファイル>コピーを作成
- Mapper シートは、レイアウトを定義する場所です。
- 単一文字のエントリは、プログラムが理解できるコードに変換されます。
(に!
なりますU0021
)。Unicodeがサポートされています!
- 文字列は翻訳されず、そのまま扱われます。スペルやケースのエラーがないことを確認してください!
- 空の四角は自動的にで埋められ
VoidSymbol
ます。
- XKB-Sort シートには、次のようなキーグループが含まれます。
key <AE01> { [U0021, U0021, U0021, U0021, U0021, U0021, U0021, U0021] };
key <AE02> { [U005B, U005B, U005B, U005B, U005B, U005B, U005B, U005B] };
key <AE03> { [U005D, U005D, U005D, U005D, U005D, U005D, U005D, U005D] };
key <AE04> { [U0022, U0022, U0022, U0022, U0022, U0022, U0022, U0022] };
key <AE05> { [U002A, U002A, U002A, U002A, U002A, U002A, U002A, U002A] };
key <AE06> { [U007B, U007B, U007B, U007B, U007B, U007B, U007B, U007B] };
key <AE07> { [U007D, U007D, U007D, U007D, U007D, U007D, U007D, U007D] };
key <AE08> { [U002F, U002F, U002F, U002F, U002F, U002F, U002F, U002F] };
key <AE09> { [U0027, U0027, U0037, U0027, U0027, U0027, U0027, U0027] };
key <AE10> { [U0029, U0029, U0038, U0029, U0029, U0029, U0029, U0029] };
key <AE11> { [U0028, U0028, U0039, U0028, U0028, U0028, U0028, U0028] };
key <AE12> { [U005C, U005C, U005C, U005C, U005C, U005C, U005C, U005C] };
8つのすべてのレベルでこれを変更します。
1234567890-= // Physical Keys
![]"*{}/')(\ // Changed to these characters
- XKBタブにも線があります。他のタブはすべて無視できます(そのコード)。
sudo vim /usr/share/X11/xkb/symbols/us
- レイアウトのコンテンツを置き換えます。使用しないものを選択してください。たとえば、構造をそのまま残してcolemakエントリを変更し、キーを置き換えました。
関心のある行:
key.type[group1]="EIGHT_LEVEL"; // Enables 8 levels
modifier_map Control { <LFSH>, <RTSH> }; // Maps ctrl`s to shift keys.
key { [Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R] };
key { [Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L] };
include "level3(lalt_switch)" // Hold Left Alt for Level 3
include "level5(ralt_switch)" // Hold Right Alt for Level 5