Як імітувати введення клавіатури?


15

Це найбільше, що не дає мені насолодитися Ubuntu / Linux.

В ідеалі я хотів би просто мати змогу запустити свій скрипт AutoHotKey на Ubuntu, але мені не пощастило працювати з 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для імітації введення; ця частина справді баггі; він працює не у всіх програмах, і з-за інших проблем я дуже втрачаю увагу.

Для тих, хто цікавиться, що я намагаюся зробити: я використовую I J K Lяк клавіші зі стрілками, поки не Altпрацює.


Гей, Стівен, я шукаю саме те саме. Вам це вдалося зробити?
lolmaus - Андрій Михайлов

Відповіді:


18

Я ніколи не використовував xvkbd, але є ще дві чудові програми для імітації вводу клавіатури, які мені подобаються та використовуються. Одне є, xteа друге - xdotool.

sudo apt-get install xautomation xdotool  

І те, xdotoolі xteінше дуже схоже, але оскільки я використовую xteнайбільше, я ввійду в це.

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

Читання:

Можливо, вам також буде цікаво прочитати:

Як я можу змінити клавіші на клавіатурі? (Як я можу створити спеціальні команди / ярлики клавіатури?)

Як перезавантажити певні ключі чи пристрої?


Це виглядає добре, але це не працює xbindkeys. Коли xte 'key a'дзвонить, xbindkeysвін просто змушує мій курсор спалахнути, коли натискаю клавішу швидкої клавіші. xte 'key a'в командному рядку працює. gnome-terminalпокликані з xbindkeysтворів. Я не впевнений, де проблема.
Farzher

Це, здається, xteне намагається надіслати ключову подію у зосереджене вікно, коли xbindkeys
дзвонить

@StephenSarcsamKamenar Я сам мав деякі проблеми, але зі свого досвіду, який був xbindkeysпроблемою .. Для мене я повинен натиснути комбінацію клавіш рівно в той самий час, щоб отримати xbindkeysкоманду для відправки. YMMV.
Сет

Можливо, xbindkeysпроблема; xdotoolпрацював з ним, але коли я утримував ключ, він ніколи його не повторив. Які хороші альтернативи xbindkeys?
Farzher

1
@StephenSarcsamKamenar Xmodmap пояснюється як у цій відповіді, так і в цій . Це те, що я б використав, якщо xbindkeysне виконав попередньо попередню підготовку (що не відповідає xte .. принаймні для мене.)
Seth
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.