web-dev-qa-db-ja.com

AltGrを<Ctrl> + <Alt>にバインドする方法

私はサララ(ハードラ)と呼ばれる人間工学に基づいたテルグ語キーボードレイアウトに相当するLinuxを作成しようとしています。これまでにすべてのキーをマップすることができました。レイアウトでは、さまざまなレベルで次のキーの組み合わせを使用します。

None (Base): Level1
Shift: Level2
Ctrl + Alt: Level3
Ctrl + Alt + Shift:Level4

Linuxはさまざまなレベルで以下を使用します。

None (Base): Level1
Shift: Level2
RAlt: Level3
RAlt + Shift:Level4

キーの組み合わせをレイアウトと一致させるには、マッピングする必要があります AltGr とともに CtrlAlt/usr/share/X11/xkb/のさまざまなファイルを検索できませんでした。 ISO_Level3_Shiftをバインドする方法を知っている人はいますか CtrlAlt

key <RALT>  {
    symbols[Group1]= [ Mode_switch, Multi_key  ],
    virtualMods= AltGr
};

レイアウトを見たい場合は here

11
ShaggyInjun

新しいxkbタイプを定義する必要があります。 xkb/typesディレクトリ(通常は/usr/share/X11/xkb/types)。そこで、モディファイアの任意の組み合わせを定義して、異なるレベルのシフトを取得できます。あなたの問題には、次のようなものを使うことができます:

type "C_A_to_L3" {
    modifiers = Control+Alt+Shift;
    map[None] = Level1;
    map[Shift] = Level2;
    map[Control+Alt] = Level3;
    map[Control+Alt+Shift] = Level4;
    level_name[Level1] = "Base";
    level_name[Level2] = "Shift";
    level_name[Level3] = "Alt Base";
    level_name[Level4] = "Shift Alt";
};

次に、シンボルファイルで、そのタイプをデフォルトとして設定するか、キーごとにタイプを設定できます。タイプはタイプディレクトリ内のファイルにあり、キー定義はシンボルディレクトリ内のファイルにある必要があります。xkbは厳密なファイルシステム階層を使用して各コンポーネントを検索します。

私は自分のキーボードレイアウトをかなりハッキングして、カスタムレイアウト( https://github.com/willghatch/hatchak )を構築しました。奇妙なことで。 XKBはかなり洗練されていて奇妙な場合がありますが、それでも今まで見た中で最も構成可能なキーボードシステムです。さらに問題が発生した場合の最適なリファレンスは次のとおりです。

[編集:元のリンクは現在ダウンしていますが、ありがたいことにarchive.orgが存在します]

https://web.archive.org/web/20150722164820/http://www.charvolant.org/~doug/xkb/html/index.html

そして

https://web.archive.org/web/20190419170426/http://Pascal.tsu.ru/en/xkb/

注意してください-これは私が見つけた最高のドキュメントですが、多くのあいまいなEdgeケースが残っています。幸運を。

6
William Hatch

AltGrをサポートするキーボードレイアウトが必要だと思うので、構成メニューの「キーボード>ショートカット>代替文字キー」でホットキーを変更するだけです。通常は、「デッドキーあり」または「AltGrデッドキー」と書かれたレイアウトに変更することで確認できます。

0
Huskell