| Crates.io | hyprKCS |
| lib.rs | hyprKCS |
| version | 1.20.5 |
| created_at | 2026-01-22 14:08:00.057615+00 |
| updated_at | 2026-01-25 18:37:28.56131+00 |
| description | A fast, lightweight, and graphical keybind manager for Hyprland |
| homepage | https://github.com/kosa12/hyprKCS |
| repository | https://github.com/kosa12/hyprKCS |
| max_upload_size | |
| id | 2061712 |
| size | 372,758 |
A fast, lightweight, and graphical keybind manager for Hyprland, built with Rust and GTK4.
hyprKCS provides a simple and intuitive interface to view, edit, and manage your Hyprland keybinds. It automatically parses your hyprland.conf (and any sourced files), detects conflicts, and allows you to make changes safely.
mod:, key:, action:, or desc: to filter keybinds with precision.$mainMod) for accuracy.exec and execr commands, flagging keybinds that point to missing executables or scripts with a red exclamation mark.binde (repeat), bindl (locked), bindr (release), and more, selectable via a dropdown in the editor.bindm) using a dedicated UI mode.input { ... } block (layout, sensitivity, repeat rate) directly from the settings.gesture = ... syntax, replacing the deprecated gestures { ... } block.yay -S hyprkcs-git
cargo install hyprKCS
nix run github:kosa12/hyprKCS
Ensure you have rust, cargo, and gtk4 development headers installed.
Using Make (Recommended):
git clone --depth=1 https://github.com/kosa12/hyprKCS.git
cd hyprKCS
make
sudo make install
Using Cargo directly:
git clone --depth=1 https://github.com/kosa12/hyprKCS.git
cd hyprKCS
cargo build --release
# The binary will be at ./target/release/hyprkcs
You can customize the appearance and behavior of hyprKCS by creating a configuration file at ~/.config/hyprkcs/hyprkcs.conf. If a value is invalid or omitted, a default will be used.
| Option | Description | Default |
|---|---|---|
width |
Window width (in pixels) | 700 |
height |
Window height (in pixels) | 500 |
opacity |
Window background opacity (0.0 to 1.0) | 1.0 |
fontSize |
Global font size (e.g., 10pt, 1rem) |
0.9rem |
borderSize |
Global border thickness | 1px |
borderRadius |
Main window corner radius | 12px |
showSubmaps |
Toggles visibility of the "Submap" column | false |
showArgs |
Toggles visibility of the "Arguments" column | true |
showFavorites |
Toggles visibility of the "Favorites" column and category | true |
alternatingRowColors |
Toggles striped rows for the list view | true |
defaultSort |
Initial sort column (key, dispatcher, mods, etc.) |
key |
keyboardLayout |
Physical keyboard layout for the visualizer (ANSI, ISO, JIS, ABNT2, HU) |
ANSI |
shadowSize |
CSS box-shadow property for the window (none to disable) |
0 4px 24px rgba(0,0,0,0.4) |
monitorMargin |
Margin around the window (in pixels) | 12 |
rowPadding |
Vertical padding between list rows (in pixels) | 2 |
autoBackup |
Automatically backup config on save | true |
maxBackupsEnabled |
Enable limiting the number of backups | false |
maxBackupsCount |
Maximum number of backups to keep | 10 |
showDescription |
Toggles visibility of the "Description" column (parsed comments from config files) | false |
# Window dimensions
width = 1000px
height = 800px
# Appearance
opacity = 0.95
fontSize = 10pt
borderSize = 2px
borderRadius = 10px
alternatingRowColors = true
shadowSize = 0 4px 24px rgba(0,0,0,0.4)
# UI Elements
showSubmaps = false
showArgs = true
showFavorites = true
defaultSort = mods
keyboardLayout = ANSI
showDescription = true
# Behavior
autoBackup = true
maxBackupsEnabled = true
maxBackupsCount = 20
# Spacing
monitorMargin = 20px
rowPadding = 5px
Launch hyprkcs from your application menu or terminal to open the main window.
Keyboard Shortcuts
| Key | Action |
|---|---|
/ |
Focus the search bar |
Enter |
Edit the selected keybind |
Ctrl + f |
Focus the search bar |
Esc |
Clear search or close the window |
Advanced Search Syntax The search bar supports specific tags to filter results:
mod:<value> / mods:<value>: Filter by modifiers (e.g., mod:super).key:<value>: Filter by key (e.g., key:return).action:<value> / disp:<value>: Filter by dispatcher/action (e.g., action:exec).arg:<value>: Filter by arguments (e.g., arg:volume).desc:<value>: Filter by description (e.g., desc:screenshot).Example: mod:super action:exec firefox finds all Super-bound execution commands for Firefox.
Visual Keyboard Map Click the keyboard icon in the top toolbar to open an interactive keyboard layout.
Input Configuration Manage your system's input behavior without manual text editing.
hyprland.conf input block.Macro Builder Create complex multi-step actions without writing scripts.
exec -> grim, Step 2: exec -> notify-send "Screenshot taken").bash and hyprctl (e.g., bind = ..., exec, bash -c "hyprctl dispatch exec grim; hyprctl dispatch exec 'notify-send \"Screenshot taken\"'").Bulk Replace
Quickly update multiple keybinds at once (e.g., swapping SUPER for ALT or changing your terminal emulator).
Backup and Restore Safely manage your configuration versions.
~/.config/hypr directory recursively, preserving folder structures and external scripts.hyprKCS also includes a CLI for quick lookups and scripting.
hyprkcs --print
# Short: hyprkcs -p
hyprkcs --search "firefox"
# Short: hyprkcs -s "firefox"
hyprkcs --search "mod:super action:exec"
hyprkcs --config ~/.config/hypr/custom.conf
# Short: hyprkcs -c ~/.config/hypr/custom.conf
hyprkcs --doctor
If the application fails to start or keybinds aren't saving, run the doctor command to diagnose your environment:
hyprkcs --doctor
This tool verifies:
hyprland.conf is found and writable.hyprctl can communicate with the compositor.If you encounter errors during installation via yay (such as "cannot stat" or build failures after a package update), it may be due to a stale cache. Try clearing the cache and installing again:
rm -rf ~/.cache/yay/hyprkcs-git
yay -S hyprkcs-git
If you encounter errors like gpg: keyserver receive failed when installing from the AUR, you may need to import the required PGP key manually.
Try importing from the Ubuntu keyserver:
gpg --keyserver keyserver.ubuntu.com --recv-keys D2059131FDE2EECC7C90A549F2CB939C8AA67892
Or from OpenPGP:
gpg --keyserver keys.openpgp.org --recv-keys D2059131FDE2EECC7C90A549F2CB939C8AA67892
Contributions are welcome. Please see CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License. See the LICENSE file for details.