Commit Diff


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 &
+```
+