キーボードでマウスクリックをエミュレートする


13

できればxmodmapを使用して、キーボードのボタンをマウスクリックのように動作させたいです。どうすればいいのですか?

Ubuntu 10.10。の実行


setxkbmap -option keypad:pointerkeysあなたがしたいことをするでしょう。次に、シフトnumlock。
peterh -復活モニカ

回答:


6

次の手順は、キーボードのキーをマウスボタンに再配線するのに役立ちます。

  1. xevユーティリティを使用してキーボードキーを特定します。

    xevユーティリティを実行し、再配線するキーボードキーを押すと、次のように出力されます

    KeyPress event, serial 37, synthetic NO, window 0x3e00001,
    root 0x82, subw 0x0, time 28977858, (-419,294), root:(175,613),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

    再マップされるキーコードに注意してください。

  2. xkbsetユーティリティを実行します

    xkbset m

  3. xmodmapユーティリティを使用して再マップします。

    以下の場合、メニューキーはマウスの右ボタンに再マップされます。

    xmodmap -e "keycode 135 = Pointer_Button3"


スクリプトを参照してくださいsuperuser.com/questions/313926/…Linuxでマウスボタンにキーを使用します。AHKの代わりに?
ルッソ

4

xmodmapとPointer_Button1キーマップを使用してこれを達成できると思います。

ファイル/usr/include/X11/keysymdef.hで正確なスペルと大文字小文字を確認しますが、キーボードのキーをマウスボタン(1,2,3など)にマップしたり、ダブルクリック(ヘッダーファイルの460行目付近をご覧ください)

keysym W = Pointer_Button1

MIGHTが機能し、Wキーがマウスの左ボタンとして機能します。Wを使用しない限り、別のキーを使用することをお勧めしますが、何でも使用できます。(いいえ、私は自分で試してみるつもりはありません、私のWが必要です!)

また、xmodmapのmanページ、および/usr/include/X11/keysymdef.hの内容を見て、スペルを正しく確認してください。xmodmapのキーシム名を使用するには、XK_プレフィックスを削除します。

私のDebianシステムのx11-proto-core-devパッケージにある(keysymdef.h)のように見えます...ファイルとその内容をオンラインで検索したいかもしれません。ちょうどそれを取得します。GIYF。

これを行う別の方法について頭の後ろでくすぐったいが、今は何も来ない

ああ!ニーズに応じて、キーボードマウスエミュレーションを検討すると、テンキーがフル機能の2ボタン(スクロールホイールなし)マウスに変わります。


1
読者の情報については、「キーボードマウスエミュレーション」について:en.linuxreviews.org/…これを有効にするキーの組み合わせは、しばらく前からデフォルトで無効になっており、現在必要Option XkbOptions "keypad:pointerkeys"です。これをオンにする唯一の方法はキーを押すことではありません:crunchbang.org/forums/viewtopic.php?id=27937xkbset mに従ってこれを行い、厄介なタイムアウトを制御し、コマンドラインからオフにすることもできます。
imz-イワンザカリヤシェフ

3

組み込みの「キーボードマウスエミュレーション」モードではこれを実行できますが、さまざまなマウスクリックや押下(ドラッグ用)をエミュレートするための事前に構成されたキーの組み合わせがあります。

(参考:これを有効にするキーの組み合わせは、しばらく前から現在必要であるため、デフォルトのキーマップから削除されましたOption XkbOptions "keypad:pointerkeys"。)

このモードをオンにする方法は、キーを押すことだけではありません。

xkbset m

http://crunchbang.org/forums/viewtopic.php?id=27937に従ってこれを行い、厄介なタイムアウトを制御し、コマンドラインからオフにすることもできます。厄介なタイムアウトをオフにするには:

xkbset exp =m

だから、xkbsetので、本当に(にこのモードを回転させるためだけのキーを持つよりも)より便利であるxkbsetなどの好適なタイムアウトをより詳細に制御できます

テンキーが使用されます。いくつかの基本的な組み合わせ(詳細はhttp://en.linuxreviews.org/HOWTO_use_the_numeric_keyboard_keys_as_mouse_in_XOrgにあります:

  • /*-のためのものを選択、左、中央または右のボタンを。
  • 5選択したボタンでクリックするためのものです。
  • 0そして.選択されたボタンを押したり放したりするためのものです(ドラッグなどのため)

「キーボードマウスエミュレーション」を常に有効にする際の問題に関する注意

  1. 「キーボードマウスエミュレーション」を常に有効にできませんでした。そのため、特別なキー(などkeypad:pointerkeys)を使用してこれを行いました。

  2. 起動時にXfceがこれらの設定をいじっていることもわかったため、Xfceのxkbset m前に実行すると、設定はアクティブになりません。したがって、Xfce設定の設定を全体的な希望に合わせて変更する必要がありました。つまり、Xfce設定:アクセシビリティ:マウス:エミュレーションを有効にします。(このようなXfceオプションの存在について学んだ私の情報源はhttps://bugzilla.xfce.org/show_bug.cgi?id=3860でした。)これは助けたようです。(タッチパッドも無効にしxinput float ...ます;これはLinuxコンソールを切り替えることで混乱しますが、少なくともXfce設定でこのデバイスを無効にすることで回避できます。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.