Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hanaasagi/xburner
:fire: Linux Advanced keyboard customizer
https://github.com/hanaasagi/xburner
keyboard keyboard-manager
Last synced: about 1 month ago
JSON representation
:fire: Linux Advanced keyboard customizer
- Host: GitHub
- URL: https://github.com/hanaasagi/xburner
- Owner: Hanaasagi
- License: gpl-3.0
- Created: 2021-12-21T12:29:16.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-12-30T06:01:32.000Z (12 months ago)
- Last Synced: 2023-12-30T07:47:14.488Z (12 months ago)
- Topics: keyboard, keyboard-manager
- Language: Rust
- Homepage:
- Size: 159 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# A multi-mode, rule-based keyboard customizer
## Features
- Key Remapping
- Execute command## Install
```
$ git clone https://github.com/Hanaasagi/XBurner
$ cd XBurner
$ cargo install --path .
```## Usage
```
USAGE:
XBurner [OPTIONS]OPTIONS:
-h, --help Print help information
--silent Suppress output of all key events
-v, --verbose
-V, --version Print version informationSUBCOMMANDS:
echo Echo key infomation that you typed
help Print this message or the help of the given subcommand(s)
list-device List devices infomation of this computer
list-keys List supported keys reported by the device
run
```## Configuration
See `exmaple.yml`.
## Q&A
#### How to know device path?
```
$ XBurner list-device
Trying to scan all of /dev/input
Available devices:
/dev/input/event0 : Power Button
/dev/input/event1 : Lid Switch
/dev/input/event2 : AT Translated Set 2 keyboard
/dev/input/event3 : Video Bus
/dev/input/event4 : PC Speaker
/dev/input/event5 : Ideapad extra buttons
/dev/input/event6 : CUST0001:00 06CB:CE44 Mouse
/dev/input/event7 : CUST0001:00 06CB:CE44 Touchpad
/dev/input/event8 : HD-Audio Generic HDMI/DP,pcm=3
/dev/input/event9 : HD-Audio Generic HDMI/DP,pcm=7
/dev/input/event10 : HD-Audio Generic HDMI/DP,pcm=8
/dev/input/event11 : HD-Audio Generic Mic
/dev/input/event12 : HD-Audio Generic Headphone
/dev/input/event13 : PixArt USB Optical Mouse
/dev/input/event14 : Topre Corporation HHKB Professional
/dev/input/event15 : Integrated Camera: Integrated C
/dev/input/event16 : XBurner
```#### How to know key name?
Just run `XBurner echo --device ` and press keyboard.
```
$ XBurner echo --device
Timestamp: 1640964235146 PRESS Kind: Key(KEY_A)
aTimestamp: 1640964235226 RELEASE Kind: Key(KEY_A)
```#### Non-root privileges
```
sudo gpasswd -a $USER input
echo 'KERNEL=="uinput", NAME="input/%k", MODE="660", GROUP="input", TAG+="uaccess"' >> /etc/udev/rules.d/input.rules
```#### Start via systemd
Systemd Unit File
```
[Unit]
Description=xburner[Service]
Type=simple
KillMode=process
WorkingDirectory=
ExecStart=/usr/bin/XBurner run --config --device
Restart=on-failure
RestartSec=3# Maybe needed
Environment=DISPLAY=:0
Environment=RUST_BACKTRACE=1[Install]
WantedBy=default.target
```Because a process inherits the cgroup information from its parent process.
when you use xburner to execute shell commands, it will be in the same cgroup as xburner.
This is not a problem if you have no resource limitations on the process.
If you need to limit resources, you can use `systemd-run` to execute the shell.
For example, `systemd-run --slice --unit --scope --user `.## License
GNU General Public License v3.0