commit f27627444f26a44ebcfce4a73dc9808b51463d9a from: Brett Fisher date: Fri May 15 06:23:32 2026 UTC config.def.h: Add local flag to Hotkey struct for command dispatch. - Add `local` field to Hotkey to distinguish between commands executed locally by bxhkd (spawn) and commands sent to bxwm over the socket (send_cmd). - Replace abstract labels like "spawn_terminal" with actual program names ("st", "st -e launchprogram") so the command string is always the real thing to execute. - Route "quit" to bxwm via socket (local=0) rather than attempting local exec. commit - 6a492bc4c54d87f4fa8e767141d0eba9d3f12e5f commit + f27627444f26a44ebcfce4a73dc9808b51463d9a blob - 081a135a4f54c26b667f16ee24160f2a14045f9b blob + 27b22170d6564f347a26067e2120b3e5f042bd00 --- config.def.h +++ config.def.h @@ -17,40 +17,41 @@ typedef struct { unsigned int mod; KeySym keysym; const char *command; + int local; } Hotkey; static Hotkey keys[] = { /* modifier(s) keysym command */ - { SHIFT|MOD1, XK_Return, "spawn_terminal" }, - { CTRL|SHIFT, XK_q, "quit" }, - { CTRL|MOD1, XK_c, "center_window" }, - { CTRL|MOD1, XK_h, "left_half" }, - { CTRL|MOD1, XK_l, "right_half" }, - { CTRL|MOD1, XK_s, "small_window" }, - { CTRL|MOD1, XK_m, "maximize_window" }, - { CTRL|MOD1, XK_j, "focus_next" }, - { CTRL|MOD1, XK_k, "focus_prev" }, - { CTRL|MOD1, XK_x, "close_window" }, - { SHIFT|MOD1, XK_p, "spawn_launcher" }, - { MOD4, XK_1, "view 0" }, - { MOD4, XK_2, "view 1" }, - { MOD4, XK_3, "view 2" }, - { MOD4, XK_4, "view 3" }, - { MOD4, XK_5, "view 4" }, - { MOD4, XK_6, "view 5" }, - { MOD4, XK_7, "view 6" }, - { MOD4, XK_8, "view 7" }, - { MOD4, XK_9, "view 8" }, - { MOD4, XK_0, "view 9" }, - { MOD4|SHIFT, XK_1, "movetows 0" }, - { MOD4|SHIFT, XK_2, "movetows 1" }, - { MOD4|SHIFT, XK_3, "movetows 2" }, - { MOD4|SHIFT, XK_4, "movetows 3" }, - { MOD4|SHIFT, XK_5, "movetows 4" }, - { MOD4|SHIFT, XK_6, "movetows 5" }, - { MOD4|SHIFT, XK_7, "movetows 6" }, - { MOD4|SHIFT, XK_8, "movetows 7" }, - { MOD4|SHIFT, XK_9, "movetows 8" }, - { MOD4|SHIFT, XK_0, "movetows 9" }, + { SHIFT|MOD1, XK_Return, "st", 1}, + { SHIFT|MOD1, XK_p, "st -e launchprogram", 1}, + { CTRL|SHIFT, XK_q, "quit", 0}, + { CTRL|MOD1, XK_c, "center_window", 0}, + { CTRL|MOD1, XK_h, "left_half", 0}, + { CTRL|MOD1, XK_l, "right_half", 0}, + { CTRL|MOD1, XK_s, "small_window", 0}, + { CTRL|MOD1, XK_m, "maximize_window", 0}, + { CTRL|MOD1, XK_j, "focus_next", 0}, + { CTRL|MOD1, XK_k, "focus_prev", 0}, + { CTRL|MOD1, XK_x, "close_window", 0}, + { MOD4, XK_1, "view 0", 0}, + { MOD4, XK_2, "view 1", 0}, + { MOD4, XK_3, "view 2", 0}, + { MOD4, XK_4, "view 3", 0}, + { MOD4, XK_5, "view 4", 0}, + { MOD4, XK_6, "view 5", 0}, + { MOD4, XK_7, "view 6", 0}, + { MOD4, XK_8, "view 7", 0}, + { MOD4, XK_9, "view 8", 0}, + { MOD4, XK_0, "view 9", 0}, + { MOD4|SHIFT, XK_1, "movetows 0", 0}, + { MOD4|SHIFT, XK_2, "movetows 1", 0}, + { MOD4|SHIFT, XK_3, "movetows 2", 0}, + { MOD4|SHIFT, XK_4, "movetows 3", 0}, + { MOD4|SHIFT, XK_5, "movetows 4", 0}, + { MOD4|SHIFT, XK_6, "movetows 5", 0}, + { MOD4|SHIFT, XK_7, "movetows 6", 0}, + { MOD4|SHIFT, XK_8, "movetows 7", 0}, + { MOD4|SHIFT, XK_9, "movetows 8", 0}, + { MOD4|SHIFT, XK_0, "movetows 9", 0}, };