Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/livelace/gombokey
gombokey ("go" + "combo" + "key) is a tool for binding specific actions to keys combinations, but with some additional features.
https://github.com/livelace/gombokey
actions hotkeys keyboard shortcuts
Last synced: 14 days ago
JSON representation
gombokey ("go" + "combo" + "key) is a tool for binding specific actions to keys combinations, but with some additional features.
- Host: GitHub
- URL: https://github.com/livelace/gombokey
- Owner: livelace
- License: mit
- Created: 2020-10-27T21:48:12.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-08-31T20:58:12.000Z (over 2 years ago)
- Last Synced: 2024-06-20T15:43:07.799Z (7 months ago)
- Topics: actions, hotkeys, keyboard, shortcuts
- Language: Go
- Homepage:
- Size: 42 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gombokey
***gombokey*** ("go" + "combo" + "key) is a tool for binding specific actions to keys combinations, but with some additional features.
### Features:
* "Hold and press" approach instead of classic shortcuts. Example: **"LEFTALT"**, **"A + A"**. Where combination consists of: **"LEFTALT"** - hold key, **"A + A"** - pressed keys. Action will be performed right after "hold keys" **are released**.
* "Pressed keys" are ordered. Example: **"A + B + A"** and **"A + A + B"** = are different.
* "Hold keys" can be hold arbitrary. Example: **"LEFTALT + LEFTCTRL"** and **"LEFTCTRL + LEFTALT"** = the same.
* Parallel executions limits. Example: you can restrict task with only 3 parallel executions.
* Execution timeout. Example: task will be killed, if it exceeds the specific amount of time.### Quick start:
```shell script
go get github.com/livelace/gombokey/cmd/gombokey
```### Config sample:
```toml
# Configuration file may be placed:
# 1. /etc/gombokey/config.toml
# 2. $HOME/.gombokey/config.toml
# 3. $(pwd)/config.toml[default]
input_device = "/dev/input/event9" # path to device.
input_timeout = 5 # seconds.log_level = "INFO"
hold = ["LEFTALT"] # global hold keys.
#exec_timeout = 60 # global execution timeout.
#parallel = 1 # global unrestricted parallel execution.[rule1]
hold = ["LEFTALT", "LEFTCTRL"] # independent order, case insensitive.
press = ["A", "Q"] # dependent order, case insensitive.exec = ["bash", "-c", "echo 123"] # command and arguments for execution.
exec_timeout = 10
parallel = 3[rule2]
# LEFTALT + B + B + B
press = ["b", "B", "b"]
exec = ["beep"]
```