https://github.com/madand/interception-home-row-fu
Dual function keys for home row; with support for fast (touch) typing.
https://github.com/madand/interception-home-row-fu
evdev interception-tools keyboard keyboard-emulation keyboard-events keyboard-mapping uinput xcape
Last synced: about 1 year ago
JSON representation
Dual function keys for home row; with support for fast (touch) typing.
- Host: GitHub
- URL: https://github.com/madand/interception-home-row-fu
- Owner: madand
- License: mit
- Created: 2020-10-04T01:26:20.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-08-29T13:40:55.000Z (almost 5 years ago)
- Last Synced: 2025-01-29T17:44:21.213Z (over 1 year ago)
- Topics: evdev, interception-tools, keyboard, keyboard-emulation, keyboard-events, keyboard-mapping, uinput, xcape
- Language: C
- Homepage:
- Size: 121 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
Home Row Fu
===========
Make the home row keys (`A S D F` and `J K L ;`) act as modifiers (`Shift`,
`Ctrl`, `Meta`, `Alt`) in addition to their default function.
Installation
------------
This is a [Interception Tools](https://gitlab.com/interception/linux/tools)
plugin so you need to have them installed. The plugin itself has no external
dependencies and can be compiled as simple as:
``` shell
make
make install
# Invoke the following command only if you install for the first time, as it
# will overwrite any existing config file!
make install-config-file
```
Caveats
-------
The following caveats only pertain to the keys the plugin is configured to
handle; all events pertaining to the other keys are just passed through.
* Visual lag when entering one of the handled keys. This is by design: the
keys are being sent either after the next key press (during burst typing) or
after the key release.
* Need to slow down for using modifiers in order to wait out the burst typing
time window (200 msec by default).
* Key Repeat events are discarded, because on longish press (more that 700
msec by default) keys are being "locked" to be a modifier and would insert
nothing when released.
TODO
----
* Fix interaction of e.g. the real Left Shift holding and pressing A (which
emulates) Left Shift.
License
-------
This project is licensed under the terms of the MIT license.
Related Projects
----------------
* [Interception Tools](https://gitlab.com/interception/linux/tools)
* [Dual Function Keys](https://gitlab.com/interception/linux/plugins/dual-function-keys/)