Bagaimana cara mensimulasikan input keyboard?

15

Ini adalah hal terbesar yang membuat saya tidak bisa menikmati Ubuntu / Linux.

Idealnya saya ingin hanya dapat menjalankan skrip Autohotkey saya di Ubuntu, tetapi saya tidak memiliki banyak keberuntungan yang bekerja dengan Wine.

Inilah yang saya lakukan di AHK (menggunakan pengubah ekstra juga berfungsi, Shift+ Alt+ ladalah Shift+ right).

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

Saya mencoba AutoKey, tetapi tidak memakan input, memetakan ulang Alt+ Ike tombol panah kanan bekerja, tetapi masih dijalankan Alt+ I, yang kadang-kadang memilih item dari menu aplikasi.

Yang paling dekat saya adalah xbindkeysuntuk mengatur hotkey, ini sepertinya bekerja dengan baik. Dan xvkbduntuk mensimulasikan input; bagian ini benar-benar buggy; itu tidak berfungsi di semua program, dan menyebabkan saya kehilangan banyak fokus, di antara masalah lainnya.

Bagi siapa pun yang bertanya-tanya apa yang saya coba lakukan: saya gunakan I J K Lsebagai tombol panah saat Altsedang turun.

Farzher
sumber
Hei Stephen, aku mencari hal yang persis sama. Sudahkah Anda berhasil melakukan ini?
lolmaus - Andrey Mikhaylov

Jawaban:

18

Saya tidak pernah menggunakan xvkbd, tetapi ada dua program hebat lainnya untuk mensimulasikan input keyboard yang saya sukai dan gunakan. Yang satu xtedan yang lainnya xdotool.

sudo apt-get install xautomation xdotool  

Keduanya xdotooldan xtesangat mirip, tetapi karena saya menggunakan xtepaling saya akan pergi ke yang itu.

xte:

Sintaks paling dasar untuk xteadalah:

xte 'command key/mousebutton/xyCoordinates'

xte dapat melakukan lebih dari sekedar membuat input keyboard, tetapi juga dapat menggerakkan mouse Anda dan mensimulasikan penekanan tombol mouse, antara lain.

Contoh sintaks:

  • Untuk memanggil satu tombol tekan: xte 'key keyName'

  • Untuk memanggil kombinasi tombol: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

  • Untuk memanggil tombol mouse: xte 'mouseclick buttonNumber'(Anda dapat menemukan nomor tombol melalui xev)

  • Untuk memindahkan mouse: xte 'mousemove xCoordinate yCoordinate'

  • Dan lagi! Bacaman xte

Keynames:

Berikut adalah daftar nama kunci (selain yang jelas):

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

Bacaan:

Anda mungkin juga tertarik membaca:

Bagaimana cara saya mengubah tombol apa pada keyboard saya? (Bagaimana cara membuat perintah / pintasan keyboard khusus?)

Bagaimana cara memetakan kembali kunci atau perangkat tertentu?

Seth
sumber
Ini terlihat bagus tetapi tidak berhasil xbindkeys. Ketika xte 'key a'dipanggil xbindkeysdarinya, kursor saya akan berkedip ketika saya menekan tombol pintas saya. xte 'key a'di baris perintah bekerja. gnome-terminaldipanggil dari xbindkeyskarya. Saya tidak yakin di mana masalahnya.
Farzher
Sepertinya tidak xtesedang mencoba mengirim acara kunci ke jendela fokus ketika dipanggil dari xbindkeys...
Farzher
@StephenSarcsamKamenar Saya sendiri telah memiliki beberapa masalah, tapi dari pengalaman saya yang telah xbindkeysmasalah .. Bagi saya, saya harus menekan kombinasi tombol pada tepat waktu yang sama untuk mendapatkan xbindkeysuntuk mengirim perintah. YMMV.
Seth
Mungkin xbindkeysmasalah; xdotoolbekerja dengannya, tetapi ketika saya menekan kunci, itu tidak akan pernah mengulanginya. Apa alternatif yang baik untuk xbindkeys?
Farzher
1
@StephenSarcsamKamenar Xmodmap dijelaskan dalam jawaban ini dan juga yang ini . Itulah yang akan saya gunakan jika xbindkeystidak membentuk sebelumnya dengan baik (yang tidak dengan xte .. setidaknya untuk saya.)
Seth