Skip to content

nshan651/clefd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clefd

https://github.com/nshan651/clefd/actions/workflows/coverage.yml/badge.svg

A universal keybindings manager daemon.

Usage

clefd is a universal keybindings daemon that reacts to input events by executing commands. It reads in a configuration file located at $XDG_CONFIG_HOME/clefd/clefdrc by default. Here the user can define a series of bindings that correspond to different commands.

Example Configuration

# Launch a browser.
Super_L + w : firefox

# Take a screenshot.
Print : flameshot gui

# Launch tmux session.
Super_L + Shift_L + Return : tmux

Modifiers

clefd allows you to chain multiple modifier keys together. It supports the following XKB modifiers:

Shift_L        /* Left shift */
Shift_R        /* Right shift */
Control_L      /* Left control */
Control_R      /* Right control */
Caps_Lock      /* Caps lock */
Shift_Lock     /* Shift lock */

Meta_L         /* Left meta */
Meta_R         /* Right meta */
Alt_L          /* Left alt */
Alt_R          /* Right alt */
Super_L        /* Left super */
Super_R        /* Right super */
Hyper_L        /* Left hyper */
Hyper_R        /* Right hyper */

Other Key Names

For a comprehensive list of XKB key names, please refer to the libxkbcommon docs. Note that you will need to omit the XKB_KEY_ prefix when adding these to your user configuration, e.g. XKB_KEY_Escape becomes Escape.

Installation

Building From Source

git clone https://github.com/nshan651/clefd.git
cd clefd
sudo make install

If you are using systemd, start the service with systemctl --user enable --now clefd.service

Additionally, you will require libinput, libudev, and libxkbcommon as runtime dependencies.

# Debian
sudo apt install libinput10 libudev1 libxkbcommon0

# Arch
sudo pacman -S libinput systemd-libs libxkbcommon

Alternatively, you can use the guix.scm manifest file to create an interactive shell.

guix shell -m guix.scm

About

A universal keyboard shortcut daemon.

Resources

License

Stars

Watchers

Forks

Packages

No packages published