2009-10-13 12 views
7

キーボードにもう1つの「レイアウト」を追加する方法を探しています。私はすでにアルファベットのアルファベットをaltgrでレイアウトしています。私は追加したいことはキャップロックで活性化していますミラーリングされた右側側のキーボードである(http://xkcd.com/mirrorboard.xkbに記載のもの)多くの修飾子を使用したキーボードの再マッピング

残念ながらISO_LEVEL3_SHIFTは、すでに地元のアルファベットで使用されています。 (AFAIK)グループを変更するのにmode_shiftを使用すると、グループ内で2つ以上のレベルを使用することはできません。 altgrとmode_shiftの両方に異なるグループを作成する方法はありますか?

+0

この質問は基本的に、低レベルのハッキングを必要とするかなり珍しい方法でキーマップをコンパイルすることに関するものです。私はそれをスーパーユーザーにすることを考えましたが、そこには何の答えも得られません。スーパーユーザーが特化している設定を調整するだけでなく、プログラミングにも近づきます(これは基本的にxkbのプログラミングです)。 – viraptor

答えて

11

各キーコードの定義には、最大8個のkeysymを設定できます。これらは、ペアごとに4つのグループに分類されます。 ISO_Next_GroupISO_Prev_GroupISO_First_Group、およびISO_Last_Groupのファミリがあり、これを押すとkeysymグループの中でキーを押してkeysym出力を繰り返します。これらのキーは、複数のレイアウトを達成する方法です。

「X」からのタイプのラベル「X」と私のキーボードのキーを押す
keycode 53 = x X Greek_xi Greek_XI multiply U2297 U24E7 U24CD

ISO_Next_Groupは、この定義のために、その後、キーコードにバインドし、修正に割り当てられていると仮定例として

、 。 ISO_Next_Groupキーを押すと、私は "ξ"を得る。もう一度押すと、「×」が表示されます。もう一度 "ⓧ"を押す。最後に、4回目に押すと元の状態に戻ります。

 
    key <SPCE> { 
// Level I  II  III IV 
     [ space, space, U2395, U2592 ], // Group 1 
     [ U2423, emspace, U2420, hairspace ] // Group 2 
    }; 

    key <RALT> { 
     [ Mode_switch, Mode_switch ] 
    }; 

    key <RCTL> { 
     [ ISO_Level3_Shift, ISO_Level3_Shift ] 
    }; 

ブラケットが単一を囲みます、あなたはこのようなエントリを持つシンボル定義ファイルを作成することができます。(最終的には大丈夫ガイドhereを見つけXkb¹は恐ろしいドキュメントを持っているので)、数日を過ごす持つ


グループ。通常、最初のグループはアクティブです。グループは、ISO_Group_Shift、a.k.a. Mode_switchで一時的に1つ増分することができます。グループ内では、放出されるシンボルは増加するレベルで定義されます。レベルIは裸のキーを押したままです。 シフトは、現在のレベルに1を加算します。 ISO_Level3_ShiftはレベルをIIIに設定します。

上記の例では、スペースバーを加えたように、様々なシフトキーに7つのシンボルをマッピングします。

はスペース⟨⟩U + 0020 SPACE
Shiftキー+スペース⟨⟩Uが+ 0020 SPACE
R. Altキー+スペース⟨␣⟩U + 2423 OPEN BOX
R. Altキー+ Shiftキー+スペース⟨⟩U + 2003のEM SPACE
R.のCtl +空間⟨⎕⟩U + 2395 APL FUNCTIONAL SYMBOL QUAD
R.のCtl +は、+スペース⟨▒⟩U + 2592媒体SHADE
R. Alt + Rシフト。 Ctl。+ space⟨␠⟩U + 2420スペースのシンボル
R. Alt + R。 Ctl。+ Shiftキー+スペース⟨⟩U + 200A HAIRスペース

キーISO_Level5_Shiftを使用すると、1つのレベルのために少なくとも6つのシンボルを持つことができますので、レベルのV.のためにもあります。モードシフトキーを使用すると、約1,200個の異なるシンボルを入力するようにキーボードを構成できますが、その時点で多くの修飾キーが押されているため、いくつかのキーが消される可能性があります。

P.S.すべての名前付きシンボルの名前は/usr/include/X11/keysymdef.hに格納されます。


¹は xmodmapを(1)バギーと廃止予定であることが判明しました。

+0

ちょうど不思議 - いくつかのキーをそのように変更する方法はありますか?それで、リリースではISO_Next_Groupを、リリースではISO_Prev_Groupを行うようにしますか? – viraptor

関連する問題