[Armadillo:09099] Re: Armadillo USBキーボード 取得出来ないキーがある。
Yuichiro Goto
email@hidden
2013年 8月 2日 (金) 09:10:49 JST
後藤です。
X イベントをダンプする xev というツールがあるのですが、押されたキーの
キーコードや KeySym の情報を確認できます (下記に矢印キーを押した際の
情報を記載します)。
KeyRelease event, serial 33, synthetic NO, window 0x2600001,
root 0x41, subw 0x0, time 2559976, (60,317), root:(64,366),
state 0x0, keycode 100 (keysym 0xff51, Left), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
このツールでも keysym が 0 と報告されますか?
尚、xev は x11-utils というパッケージに含まれています。
> xmodmap: unable to open display ''
> と言うエラー?が出て、一覧が表示されません。
コンソール上から X のプログラムを実行するには、以下のようにする必要があ
ります。
# export DISPLAY=:0.0
# xmodmap
xev を実行する際も同様です。
以上です。
(2013/08/01 19:32), 中室 純 wrote:
> お世話になります。
>
> 返信ありがとうございます!
>
> 早速 XLookupKeysym() で試してみましたが、取れる KeySym の値はゼロの
> ままでした。
> ただ、KeySymの値だけ取得するのであれば、こちらを使った方が、処理が軽そう
> なので、これからはこちらを使用することにします^^
>
>
>
> まだ、未解決の状態で、返信を下さった方、ならびに皆様に再度質問させて頂き
> ます。
>
>
>
> Linuxでは xmodmap コマンドで、KeyCode KeySym の割り当てが見られるのです
> が、Armadilloでこのコマンドを実行すると
> xmodmap: unable to open display ''
> と言うエラー?が出て、一覧が表示されません。
> ネットで調べてみると、DISPLAY=":0.0"とする解決方が多く載っており、
> 試してみましたが、変わりませんでした。
> 私の理解力不足で、DISPLAY が何を示しているのかも良く分かっていません。
>
> すみませんが、この解決方と、キーの割り当てをしている設定ファイルが
> どこかにありましたら、教えて頂けますでしょうか。
>
>
> 宜しくお願い致します。
>
>
>
>>
>>> X上で取得出来ないキーの原因や、キーを取得する方法をご存知の方、ご教授を
>>> お願い致します。
>>
>> XLookupString() が動作しない原因はわかりませんが、XLookupKeysym() という
>> 関数を使用してみては如何でしょうか?
>>
>> 使用例)
>>
>> ksym = XLookupKeysym((XKeyEvent*)&evt, 0);
>> if (ksym == XK_Up) {
>> /* 矢印キー上が押された */
>> } else if (ksm == XK_Down) {
>> /* 矢印キー下が押された */
>> } else if (ksym == XK_Left) {
>> /* 矢印キー左が押された */
>> } else if (ksym == XK_Right) {
>> /* 矢印キー右が押された */
>> }
>>
>> 尚、XK_Up 等 の KeySym の定義を使用するには以下のヘッダーファイルが必要
>> です。
>>
>> #incluce <X11/keysym.h>
>>
>> 以上です。
>>
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
armadillo メーリングリストの案内