Fusuma plugin to send keyboard events
- Low-latency key event emulation with evdev
- Alternative to xdotool available for X11 and Wayland
Run the following code in your terminal.
NOTE: If you have installed ruby by apt, you must install ruby-dev.
$ sudo apt-get install libevdev-dev ruby-dev build-essential
$ sudo pacman -S libevdev base-devel
Note For Arch Based Distros: By default in Arch Linux, when running gem
, gems are installed per-user (into ~/.gem/ruby/
), instead of system-wide (into /usr/lib/ruby/gems/
). This is considered the best way to manage gems on Arch, because otherwise they might interfere with gems installed by Pacman. (From Arch Wiki)
To install gems system-wide, see any of the methods listed on Arch Wiki
$ sudo gem install revdev
$ sudo gem install bundler
$ sudo gem install fusuma-plugin-sendkey
$ fusuma-sendkey -l
To look up a specific key, such as the next or previous song, you can use the grep -i
filter.
$ fusuma-sendkey -l | grep -i song
NEXTSONG
PREVIOUSSONG
fusuma-sendkey
command is available on your terminal for testing.fusuma-sendkey
supports modifier keys and multiple key presses.- Combine keys for pressing the same time with
+
- Separate keys for pressing sequentially with
,
- Combine keys for pressing the same time with
$ fusuma-sendkey LEFTCTRL+T # Open a new tab
$ fusuma-sendkey ["LEFTSHIFT+F10", "T", "ENTER", "ESC"] # Google Translate
Some of the keys found with fusuma-sendkey -l
may actually be invalid keys.
So test them first with fusuma-sendkey <KEYCODE>
before adding them to config.yml.
Add the sendkey:
property in your ~/.config/fusuma/config.yml
.
Lines beginning with #
are comments.
swipe:
3:
left:
sendkey: "LEFTALT+RIGHT" # History back
right:
sendkey: "LEFTALT+LEFT" # History forward
up:
sendkey: "LEFTCTRL+T" # Open a new tab
down:
sendkey: "LEFTCTRL+W" # Close a tab
hold:
3:
sendkey: ["LEFTSHIFT+F10", "T", "ENTER", "ESC"] # Translate in Google Chrome
clearmodifiers: true
option clears other modifier keys before sending
swipe:
4:
up:
keypress:
LEFTSHIFT:
sendkey: "LEFTMETA+DOWN"
clearmodifiers: true # Clear LEFTSHIFT before sending LEFTMETA+DOWN
If you encounter the following error message, please set your keyboard name in plugin.executors.sendkey_executor.device_name
in config.yml.
$ fusuma-sendkey -l
sendkey: Keyboard: /keyboard|Keyboard|KEYBOARD/ is not found
Add the following code to the bottom of ~/.config/fusuma/config.yml
to recognize only the specified keyboard device.
plugin:
executors:
sendkey_executor:
device_name: 'YOUR KEYBOARD NAME'
Note: If fusuma-plugin-remap is available, it will automatically connect to fusuma_virtual_keyboard
, so the device_name
option is not required.
Bug reports and pull requests are welcome on GitHub at https://github.com/iberianpig/fusuma-plugin-sendkey. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the Fusuma::Plugin::Sendkey project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.