キーボードを押したときにXサーバーはどのように文字をエクスポートしますか? [コピー]

キーボードを押したときにXサーバーはどのように文字をエクスポートしますか? [コピー]

これは実際にコーディングの問題です。

私はXサーバーがどの文字をエクスポートするかを決定するためにアクティブなキーボードレイアウトを調べることを知っています(Unicodeがサポートされています)。しかし、実際にこれがどのように行われるのかわかりません。誰かがこれを実際に見ることができるソースコードを教えてもらえますか?

実際に私が望むのは、同じ操作(アクティブレイアウトを無視)を実行する「Unicodeキーボードドライバ」を作成することです。ただし、XがGUIにUnicode文字を送信する方法を知る必要があります。

X サーバーに新機能を追加して再コンパイルする必要はありません。私はこれらの文字をGUIに送信するための正しいソースコードを指摘したかったです。

編集する:

このコメントは私に答えを見つけるための正しい方向を教えてくれました。これで、LinuxでプログラムでUnicodeテキストをGUIに出力する方法がわかりました。

ヒント: xdotool/libxdo, XTestFakeKeyEvent, xmodmap -e "キーコード 107 = U2196"

私は最終的に私自身のC ++ライブラリを使用してこの質問に答えることができるかどうかを確認します。

答え1

プログラムでこれを行うために必要な2つのコマンドを見つけました。

XChangeKeyboardMapping(使用しないキーコードを文字/ユニコードにマッピング)

XTestFakeKeyEvent(Xサーバーに転送)

したがって、すべての文字を転送でき、キーボードのレイアウトは変更されずにそのまま残ります。

関連情報