Skip to content

Hanaasagi/XBurner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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] <SUBCOMMAND>

OPTIONS:
    -h, --help       Print help information
        --silent     Suppress output of all key events
    -v, --verbose
    -V, --version    Print version information

SUBCOMMANDS:
    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 <your device path> and press keyboard.

$ XBurner echo --device <your device path>
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=<YOUR HOME>
ExecStart=/usr/bin/XBurner run --config <CONFIG_PATH> --device <YOUR DEVICE NAME>
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 <YOUR SLICE> --unit <UNIT NAME> --scope --user <SHELL_COMMAND>.

License

GNU General Public License v3.0

About

🔥 Linux Advanced keyboard customizer

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy