2012-02-15 3 views
0

Xに合成キー押しイベントを送信したいと思っています。これは、KeyPressイベントを送信するのに、​​を使用するほとんどのキーで問題なく動作しているようです。残念ながら私はそれが実際に私のキーボードにはないキーのために働くことができません - この場合は英ポンド(私は米国のキーボードがあります)。キーボードにないキーのキープレスイベントをXに送信するにはどうすればよいですか?

この問題は、XKeyEvent構造がkeycodeを必要としていると思われます。この記号にはKeySymしかありません。 XKeysymToKeycodeは、キーがないため0を返します。

どのように私はこれを達成することができます知っていますか?ここで私はいくつかのアプローチが必要かもしれません - アドバイスをいただければ幸いです!

答えて

1

@Peterあなたは正しい線に沿って探しています。課題の一部は、KeySymsのセットがkeycodeのサイズよりもはるかに大きいことです。これを解決するには、イベントを合成する直前にキーマップを変更します。 http://git.yoctoproject.org/cgit/cgit.cgi/libfakekey/tree/src/libfakekey.c

、特に:コードだけではなく、送信するためにKeySymを取るfakekey_press_keysym機能

libfakekeyを見てみましょう。

+0

ありがとうヒープ - 実際に動作しているようだが、キーマップの変更はそのトリックを行うようだ。 – Peter

2

xdotoolをご覧ください。

+0

提案してくれてありがとう - 私はそれについて知らなかったし、今までのところそれはないが、うまくいくはずだと思う。私は何かが私のXのインストールに関して何とかしていないのではないかと思っています... – Peter

+0

空のXorg.confでXを起動しようとすることができます。 –

関連する問題