ハンガリー語のキーボードでCtrl + "特殊文字"が対応する英語のレイアウトキーに変換されるのはなぜですか?

ハンガリー語のキーボードでCtrl +

ハンガリー語キーボード端末でCtrlキーを押すと、どちらかがöüóéá作成されます。英語のレイアウトだから、0-=;'それぞれkittygnome-terminal。 Ctrl+はőúű文字を生成せず、両方のエミュレータで操作を少し異なるようにするようです。キティでは、Ctrl+0 は 0 を生成し、Ctrl+í は < を生成しますが、gnome 端末では Ctrl+0 は何もしないように見え、Ctrl+í は í を生成します。

2つの関連する質問があります。

  • 文字ではなく生成シーケンスが実際に何をしているのかを調べる方法は?
  • この行動の説明は何ですか?私はこれらの非ASCII文字に "ctrl-i is tab"型の問題があると仮定します。

(これは明確な答えがないかもしれませんが、少し関連性がないかもしれませんが、将来的には端末がGUIソフトウェアのように「一般的に」キーストロークを処理できますか? )

ベストアンサー1

キーマップは環境(X、コンソール、アプリケーション...)によって異なりますが、取り扱いが最も簡単ではありませんが、役に立ちます。

キーマッピングはファイルで定義されます。環境では、1つを選択し、キーマップの規則に従って各キーコードの解釈を開始します。

このハンガリー語のキーマップを使用するとします(他のディストリビューションでは場所が異なる場合があり、これはDebianで動作します)。/usr/share/keymaps/i386/qwerty/hu101.kmap

zless( , , ...) を見ると、zcat現在見ている情報がほぼ次のようになることがわかります。

# Hungarian keymap for 101 key keyboards (iso8859-2)
...
include "linux-with-alt-and-altgr"
...
keycode  11 = +odiaeresis   +Odiaeresis doubleacute
alt     keycode  11 = Meta_zero

これは単に定義しますノーマルキーとAlt+キー。

それでは、Ctrl+の組み合わせはどこから来たのでしょうか?含まれているファイルとそのファイルが見つかるまで、そのファイルを確認する必要があります。

新しいキーマップを追加したり、既存のキーマップを変更したり、単に実行できます。生きる修正xmodmap(マンページの多くの例)xmodmap特定のコンパイルされたバージョンで動作するため、包含チェーンを直接見る必要はありません。

なぜこれが起こるのですか?まあ、キーボードをローカライズする人は通常、ハンガリー語のキーボードの場所など、誰もが同意するものだけを修正し、より一般的なキーボードから残りのÖ構成を継承しますlinux-bare-keyspc101

Ctrl+何を返すべきですかÖ?グローバルコンセンサスで明確な回答がない場合は同じままですが、ユーザーはカスタマイズできます。

Ctrl+ Ö、、Ü...を分音記号のないバージョンにマップする新しいキーボードを作成できます。それはそうですhungarian-ctrl-diaresisless。誰もが利用できると思われる場合は、パッケージマネージャに提案できます。

おすすめ記事