web-dev-qa-db-ja.com

キーボード入力をシミュレートする方法は?

これは、Ubuntu/Linuxを楽しんでいない最大の理由です。

理想的には、UbuntuでAutoHotKeyスクリプトを実行できるようにしたいだけですが、それをWineで動作させることができなかったのです。

AHKで行っていることは次のとおりです(追加の修飾子を使用しても機能しますが、 Shift+Alt+l は Shift+right)。

!l:: Send, {Right}
+!l:: Send, +{Right}
^!l:: Send, ^{Right}
^+!l:: Send, ^+{Right}

AutoKeyを試しましたが、入力を消費せず、再マッピングしました Alt + I 右矢印キーは機能しましたが、それでも実行されました Alt + I、アプリケーションメニューから項目を選択する場合があります。

私が得た最も近いものは、ホットキーを設定するためのxbindkeysでした。これはうまくいくようです。入力をシミュレートするためのxvkbd;この部分は本当にバグです。すべてのプログラムで機能するわけではなく、他の問題の中でも特に集中力を失います。

私が何をしようとしているのか疑問に思う人のために:私は使用しています IJKL 矢印キーとして Alt ダウンしています。

15
Farzher

私はxvkbdを使用したことはありませんが、キーボード入力をシミュレートするために私が気に入って使用している素晴らしいプログラムが2つあります。 1つはxteで、もう1つはxdotoolです。

Sudo apt-get install xautomation xdotool  

xdotoolxteはどちらも非常に似ていますが、xteを使用するので、その1つを使用します。

xte:

xteの最も基本的な構文は次のとおりです。

xte 'command key/mousebutton/xyCoordinates'

xteは、キーボード入力を作成するだけでなく、マウスを動かしたり、マウスボタンの押下などをシミュレートしたりすることもできます。

構文例:

  • 単一のキーを押すには、xte 'key keyName'を押します

  • キーの組み合わせを呼び出すには:xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

  • マウスボタンを呼び出すには:xte 'mouseclick buttonNumber'(ボタン番号はxevで確認できます)

  • マウスを移動するには:xte 'mousemove xCoordinate yCoordinate'

  • もっと! man xteを読む

キーネーム:

キー名のリストは次のとおりです(明らかなものを除く)。

Home
Left
Up
Right
Down
Page_Up
Page_Down
End
Return
BackSpace
Tab
Escape
Delete
Shift_L
Shift_R
Control_L
Control_R
Meta_L
Meta_R
Alt_L
Alt_R
Multi_key  
Super_L  
Super_R

読書:

読むことにも興味があるかもしれません:

キーボードのキーの機能を変更するにはどうすればよいですか?(カスタムキーボードコマンド/ショートカットを作成するにはどうすればよいですか)

特定のキーまたはデバイスを再マップするにはどうすればよいですか?

16
Seth