commit 44dbec001e057ba20d7cdd329cfe846a84c24f39 from: Brett Fisher date: Thu May 21 19:16:02 2026 UTC README.md: Initial commit. commit - 9354c05637051b86f036acfea212e56eeb9f05c1 commit + 44dbec001e057ba20d7cdd329cfe846a84c24f39 blob - /dev/null blob + a52398fbb22a5b2b9ba65e41897e2113cc9bb404 (mode 644) --- /dev/null +++ README.md @@ -0,0 +1,80 @@ +# bxhkd + +A very basix X hotkey daemon, a.k.a Brett's X hotkey daemon. + +## Doing One Thing and Doing It Well + +Modern window managers, even popular _minimalist_ ones, have bloat in +in their codebases from bundling extraneous features into a single +binary. Just my opinion. + +I chose a different path. __bxhkd__ is an independent, modular +companion to my primary window manager, __bxwm__. By offloading key +handling management, I ensure that both the window manager and the +hotkey daemon remain focused, llightweight, and easily maintainable. + +__bxhkd__ isn't just about managing keys. This hotkey daemon +is another project I am using for transitioning from writing shell +scripts for automating workflow to writing robust C that prioritizes +minimal runtime overhead, adherence to the Unix philosophy, and clean, + readable API design. + +## Build + +Compile __bxhkd__ from source. + +``` +make +``` + +## Install + +Install the binary and man page. Note that root privileges are not +required as the default desination is `~/.local/`. + +``` +make install +``` + +## Uninstall + +Remove the binary and man page. + +``` +make uninstall +``` + +## Configuration + +__bxhkd__ is configured at compile-time by editing config.def.h. After +making changes, the program must be recompiled and reinstalled. See +bxhkd(1) for details. + +## Design & Functionality + +__bxhkd__ operates as a background daemon that interfaces directly with +the X11 window system. + + - Input Processing + - Maps X11 key-events to command strings defined in config.def.h + - Open a New Window + - Open a window running st, simple terminal + - Open a window running the author's launcher script + - Users should change these per their own preferences + - Focus, Move, and Resize A Window + - Centered horizontally, full height + - Left half + - Right half + - Maximized + - Small, centered horizontally and vertically + - Workspaces + - Move windows to a specific workspace + - Navigate to a specific workspace + - Close Focused Window + +Add the following lines to `~/.xinitrc` to start __bxhkd__. + +``` +exec bxhkd 2> ~/.local/var/log/bxhkd.log & +``` +