96 :
名無しさん@お腹いっぱい。:
あるwindowに対して新しいkeymapを用意するのはどうやるんでしょう?
例えば、classが^xmms/*$のwindow上で、用意しておいたxmms-keymapを
使うようなことは可能なんでしょうか。
97 :
名無しさん@お腹いっぱい。:01/12/16 23:59
>>96 一つ一つの command の方で focus がある window を調べて
対応する方法なら考えられるけど,
もっと根本的な方法があるかどうかはわからない.
Sawmill!!
Sawmill!!
Sawmill!!
Sawmill!!
Sawmill!!
Sawmill!!
Sawmill!!
Sawmill!!
Sawmill!!
色々調べてみたら
(windowput $window 'keymap $keymap)
でウィンドウのプロパティにkeymapを加えられることがわかりました。
が、どこでこの関数を実行すればいいんだろう。
add-window-hookに追加すればいいのかなぁ。
customファイルをいぢって無理矢理keymapを設定したら出来ました。
あとでちゃんとやろう。
でもキーイベントを送るのが出来ませんでした。
hjklにカーソルキーを割りあてたいんですが。
synthesize-eventを使ってキーのリマップが出来ましたぁ
hhkみたいにキーの数が少ないキーボードはこれが出来無いと大変ですねぇ
103 :
名無しさん@お腹いっぱい。:02/01/27 13:06
>>96 すみません、どうやりました?
私はCtrl+jkliに←↓→↑を割り当てたいんですけど……
#synthesize-eventの使い方がわからない……
うちではこんな感じで動いてます。
(defun my-key (key w)
(synthesize-event key w))
(define-command 'my-key my-keys #:spec "%W")
(bind-keys my-apps-keymap "C-j" '(my-key "Down" (current-event-window)))
コマンドの定義の仕方が良く分からないので
結局(current-event-window)を呼んでるあたり間抜けですが。
>>104 ~/.sawfish/custom
に直書きしてみましたけど、うまくいきません(;;
そこでちょっと教えていただきたいのですけど、
(define-command 'my-key my-keys #:spec "%W")
の部分って、何をしているのですか?
#ここが理解できないから、あまりいじくれない……
#クレクレ君で申し訳ないです。
#なんか、XTestFakeKeyEvent使って簡単なキーイベント生成プログラム
#作ったほうが早そうな気がしてきました……
すみません。my-keysはmy-keyでした。このままじゃ動かないですね。
で、自分もよく理解してないんですけど、my-keyにはinteractive宣言が含まれてないので、
define-commandでコマンドとして使えるようにしているんだと思います。
自分のミスで混乱させてしまって申し訳ない。
補足です。
#spec "%W" の部分は本来なら現在選択されているウィンドウに対してイベントを送るための
おまじないなんですが、自分がrepをよく理解していないために結局current-event-windowを
呼んでしまっているのでした。
>>96 どうも解説ありがとうございます。
なんとかうまくいきました……といっても、ちょっと違う方法ですけど。
~/.sawfish/customの中にあった設定方法をまねして、こんな感じにしました。
(custom-set-keymap (quote global-keymap) (quote (keymap
((synthesize-event "Down" (current-event-window)) . "C-j")
)))
これでCtrlコンビネーションが快適になります(^^
#そもそもこれ位はxmodmapで設定できるようにしてほしい……
#と言うのは置いといて
どうもお世話になりました。ありがとうございます。