xmodmapの問題とキーごとの代替記号が4つを超える不一致

xmodmapの問題とキーごとの代替記号が4つを超える不一致

私はキーボードをより便利にし、xmodmap数学とギリシャのシンボルをmod3修飾子レベルにマッピングしようとしています。 Caps Lockはにマップされていますmod3。私が理解したように、8つの入力ラインは.Xmodmap次のように動作します。

[なし]、[shift]、[mod3]、[mod3+shift]、[altgr]、[altgr+shift]、[altgr+mod3]、[altgr+shift+m​​od3]

私はこれを使ってきましたが、ほとんど動作します。いくつかの奇妙な現象を除いて。たとえば、

keycode  49 = backslash bar includes includedin infinity infinity EuroSign EuroSign

これにより、最初の4つの項目が正常に作成されますが、ループが発生します(altgr + key =バックスラッシュ、無限大ではありません)。しかし、もし私がそうするなら

keycode  10 = backslash bar includes includedin infinity infinity EuroSign EuroSign

最初の4つの項目を作成します。そして無限大ですが、ユーロ記号は表示されません(includes合計を取得しますincludedin)。私はちょうど別のキーを使用しましたが、他のすべては同じです!項目が6つしかない(8項目の解析に問題がある場合)、特定のキーに無限大は表示されません。

また、3番目と4番目の項目(mod3とmod3 + shift)にギリシャ文字をマッピングしました。小文字はうまく機能しますが、大文字は Shift+m​​od3+S、Shift+m​​od3+W、Shift+m​​od3+X では機能しません。フォントの問題ではありませんが、xev画面が表示されません。どのこの組み合わせを使用したときに発生するイベントです。

アイテムは次のとおりです

keycode  39 = s S Greek_sigma   Greek_SIGMA   integral integral downarrow downarrow

また、最後の2つの項目はほとんど機能しません。

スノーモーダルの一行は特に混乱します。私は入った

keycode  51 = zcaron Zcaron zcaron Zcaron dstroke Dstroke dstroke Dstroke

しかし、私がこれを行うとき、私xmodmap -pkeは得ます。

keycode  51 = zcaron Zcaron zcaron Zcaron dstroke Dstroke dstroke Dstroke zcaron Zcaron dstroke Dstroke zcaron Zcaron dstroke Dstroke

すべてのアイテムをコピーします。これを行うためのいくつかのキーがありますが、すべてではありません!

だから私の質問は次のとおりです。

  • 8本の入力ラインを正しく使用していますか?
  • キーコードごとに機能するキーシンボルの数が異なるのはなぜですか?
  • ウィンドウマネージャの何かがこれらの組み合わせをマッピングして食べることは可能ですか?
  • なぜ?一部行を適用すると重複が発生しますか?
  • これはあいまいなxlibのバグですか?
  • 修飾子の機能は制限されていますか?

私はユニークな状況にあり、私が知らない未知のショートカットがあるはずがありません。なぜなら、私のウィンドウマネージャは私が自分で作ったものであり、すべてのショートカットを制御するからです。

詳細:Caps Lockマッピングは次のように行われます。

keycode  66 = Mode_switch

clear lock
clear control
clear mod1
clear mod2
clear mod3
clear mod4
clear mod5
add control = Control_L Control_R
add mod1 = Alt_L Meta_L
add mod2 = Num_Lock
add mod3 = Mode_switch
add mod4 = Super_L Super_R Hyper_L
add mod5 = ISO_Level3_Shift

システムは新しく更新されたArch Linuxです。


編集:問題の小さな部分(まったく機能しないSWX)は、キーボードのキーが互いに隣にあるために発生することがわかりました(キーが付いていると同時に押した3つのキーを処理できません)。コンビネーション)。右に移動するとWとXの問題は解決しましたが、Sの問題(この特定のキーボードの場合)は解決されませんでした。

残りはまだ謎です。特に、キーコード49の破損した5番目と6番目のアイテム(タブの上の完全に役に立たないアイテム)です。

答え1

後で参考にするために、私の質問に答えることをお勧めします。

xmodmapわずかな調査の終わりに、キーボードモデルの粗いパッチのために実際にはもう使用されていないことがわかりましたxkbxkb代替の線形配列を使用する代わりに、このモデルはレイアウトを分割し、各groupsグループには異なるシフトレベルの複数の文字があります。これらxmodmapの定義は、グループ1、レベル1、2、グループ2、レベル1、2、グループ1、レベル3などの非常に興味深い順序でアイテムを入力します。これらのグループの意味は「レイアウト」に似ていますが、として使用される修飾子ではありませんが、アクセスのために切り替えることができます。私が使っているキャラクターは例外ですがMode_switch、グループ2にのみアクセスが可能です。

それを除いてすべてがいいです。キーにはタイプがあります。各キーはレイアウトによってTWO_LEVEL等として定義され、各レベルは、どの修飾子がどのレベルにマッピングされるかについて異なる概念を持つことができますFOUR_LEVELFOUR_LEVEL_ALPHANUMERIC私が想定した動作(8レベル、すべての組み合わせ)は、実際にLOCAL_EIGHT_LEVELレイアウトでまったく使用されていません。したがって、keycodeの場合、51デフォルトは実際にありTWO_LEVELxmodmap最初のグループに6レベルを追加する代わりに、3つのグループを6つのキーで埋めます。修飾子は3番目のグループに達していませんMode_switch。別のキーを使用すると、事前定義されたタイプが異なるため、動作が異なります。

printoutの繰り返しと同様に、xmodmap正確に何が起こっているのかわかりません(定義を印刷しましたが、xkbすべてが大丈夫でした)。しかし、可変長多次元配列から次にマッピングするときにエラーが発生することは驚くべきことではありません。単一シンボルのリスト。それにもかかわらず、出力は実際の状態を反映しません。

要約すると、xmodmapは邪悪です。絶対に使用しないでください。その動作はせいぜい不規則で不明瞭です。それはそれが言うようにしません。独自のxkb地図を作成してください。 -ingを使用すると、ほとんどのレイアウトを再利用し、include必要な修正を追加できます。

私の場合、解決策はギリシャ語のレイアウトから2番目のセットを派生させ、戦略的な場所の数学的シンボルを最初のセットに対するいくつかの修正に置き換えることでした。


ほとんどの安価なキーボードは、一度に3つのキーを押すことが非常に制限されています。これにより、一部のキーで不安定でハードウェア関連の障害が発生しました。私は他の修飾子キー(世界で最も役に立たないキー、メニューキー、または同様に役に立たない右のWinキー)を試してみて、より良いキーボードを購入する予定です。これら2つの問題(誤って設計されたハードウェア+悪意のある詐欺ソフトウェア)の組み合わせは、最初に2つの問題を別々の問題として見ることができなかった混乱し、ランダムな状況を引き起こしました。


読む距離:

関連情報