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


11

私はサララ(ハードラ)と呼ばれる人間工学に基づいたテルグ語キーボードレイアウトに相当する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は、Ctrl+でマッピングする必要がありますAlt。のさまざまなファイルを検索できませんでした/usr/share/X11/xkb/。+ ISO_Level3_Shiftとバインドする方法を知っている人はいますか?CtrlAlt

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

レイアウトを見たい方はこちら



2
ありがとう、それは非常に有益ですが、xkb構成以外のすべてについて話します。
ShaggyInjun 14

arch linux wikiからこのwikiを調べ、AltとAltgr(レベル3)に関する部分を確認してください。これがあなたに役立つかどうかはわかり
ませんが

私はそれを試しましたが、xkbはそれほど記述的ではないエラーでロードに失敗します。エラーはありませんが、後で取り付けることができます。
ShaggyInjun 14

回答:


6

新しい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/

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


あなたのアイデアは本当に役に立つと思いますが、あなたが言ったように、シンボルファイルで作成されたタイプをデフォルトとして使用するのは本当に苦労しています。コンピュータにあるシンボルファイルは非常に長く、デフォルトのタイプの定義のように見える行が表示されません。
Dave

1
を設定することにより、シンボルファイル内のセクションのデフォルトを定義できますkey.type/usr/share/X11/xkb/symbols/srvr_ctrl"no_srvr_keys"セクションの例(またはそのような場所)をおそらく参照できます。これが私が持っているものです:xkb_symbols "no_srvr_keys" {key.type = "TWO_LEVEL"; キー<FK01> {[F1、F1]}; キー<FK02> {[F2、F2]}; <etc ...>};
ウィリアムハッチ

素早い回答ありがとうございます。応用できると思います。よろしくお願いします。
Daveが

このページに戻って来たすべての人へのフィードバックと同じように、かなり後のことです。私にとって、このアプローチは新しくインストールされたFedoraで機能しました。いくつかの(私にとっては)未知の理由で、上記のコメントを書いたときにMintで動作しませんでした。しかし、今ではそれが機能し、時間を大幅に節約できます。
Dave

-1

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


私は個人的な使用を求めていません。レイアウトを発送する必要があります。残念ながら、これは悪い答えです。ありがとうございます。
ShaggyInjun 2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.