From 411a7c29aa7c571a62f2d32945cfff773015305e Mon Sep 17 00:00:00 2001 From: BanceDev Date: Fri, 20 Feb 2026 12:33:18 -0500 Subject: updated config to use volume scripts with notifications --- src/config.h | 157 ++++++++++++++++++++++++++++++---------------------- src/defs.h | 176 +++++++++++++++++++++++++++++------------------------------ 2 files changed, 181 insertions(+), 152 deletions(-) (limited to 'src') diff --git a/src/config.h b/src/config.h index 85ef9fa..5431393 100644 --- a/src/config.h +++ b/src/config.h @@ -1,73 +1,102 @@ #pragma once +#include "defs.h" #include #include -#include "defs.h" #define MODKEY Mod4Mask -#define CFG_FOCUSED_BORDER_COL "#89B4FA" +#define CFG_FOCUSED_BORDER_COL "#89B4FA" #define CFG_UNFOCUSED_BORDER_COL "#1E1E2E" -#define CFG_SWAP_BORDER_COL "#1E1E2E" +#define CFG_SWAP_BORDER_COL "#1E1E2E" -#define CFG_GAPS 5 -#define CFG_BORDER_WIDTH 3 -#define CFG_MOVE_WINDOW_AMT 50 -#define CFG_RESIZE_WINDOW_AMT 50 -#define CFG_SNAP_DISTANCE 5 -#define CFG_MOTION_THROTTLE 60 -#define CFG_NEW_WIN_FOCUS True -#define CFG_WARP_CURSOR True -#define CFG_FLOATING_ON_TOP True +#define CFG_GAPS 5 +#define CFG_BORDER_WIDTH 3 +#define CFG_MOVE_WINDOW_AMT 50 +#define CFG_RESIZE_WINDOW_AMT 50 +#define CFG_SNAP_DISTANCE 5 +#define CFG_MOTION_THROTTLE 60 +#define CFG_NEW_WIN_FOCUS True +#define CFG_WARP_CURSOR True +#define CFG_FLOATING_ON_TOP True -#define CFG_BINDS \ - /* Application launchers */ \ - { MODKEY, XK_Return, 0, { .cmd = build_argv("alacritty") }, TYPE_CMD }, \ - { MODKEY, XK_d, 0, { .cmd = build_argv("kitty -e oxicord") }, TYPE_CMD }, \ - { MODKEY, XK_w, 0, { .cmd = build_argv("surf git.bance.dev") }, TYPE_CMD }, \ - { MODKEY, XK_space, 0, { .cmd = build_argv("dmenu_run") }, TYPE_CMD }, \ - { MODKEY, XK_equal, 0, { .cmd = build_argv("pactl set-sink-volume @DEFAULT_SINK@ +5%") }, TYPE_CMD }, \ - { MODKEY, XK_minus, 0, { .cmd = build_argv("pactl set-sink-volume @DEFAULT_SINK@ -5%") }, TYPE_CMD }, \ - { MODKEY, XK_0, 0, { .cmd = build_argv("pactl set-sink-mute @DEFAULT_SINK@ toggle") }, TYPE_CMD }, \ - /* Window management */ \ - { MODKEY, XK_q, 0, { .fn = close_focused }, TYPE_FUNC }, \ - { MODKEY|ShiftMask, XK_e, 0, { .fn = quit }, TYPE_FUNC }, \ - { MODKEY, XK_m, 0, { .fn = toggle_monocle }, TYPE_FUNC }, \ - /* Focus */ \ - { MODKEY, XK_j, 0, { .fn = focus_next }, TYPE_FUNC }, \ - { MODKEY, XK_k, 0, { .fn = focus_prev }, TYPE_FUNC }, \ - /* Movement */ \ - { MODKEY|ShiftMask, XK_j, 0, { .fn = move_focused_next }, TYPE_FUNC }, \ - { MODKEY|ShiftMask, XK_k, 0, { .fn = move_focused_prev }, TYPE_FUNC }, \ - /* Keyboard window movement */ \ - { MODKEY, XK_Up, 0, { .fn = move_win_up }, TYPE_FUNC }, \ - { MODKEY, XK_Down, 0, { .fn = move_win_down }, TYPE_FUNC }, \ - { MODKEY, XK_Left, 0, { .fn = move_win_left }, TYPE_FUNC }, \ - { MODKEY, XK_Right, 0, { .fn = move_win_right }, TYPE_FUNC }, \ - /* Keyboard window resize */ \ - { MODKEY|ShiftMask, XK_Up, 0, { .fn = resize_win_up }, TYPE_FUNC }, \ - { MODKEY|ShiftMask, XK_Down, 0, { .fn = resize_win_down }, TYPE_FUNC }, \ - { MODKEY|ShiftMask, XK_Left, 0, { .fn = resize_win_left }, TYPE_FUNC }, \ - { MODKEY|ShiftMask, XK_Right, 0, { .fn = resize_win_right }, TYPE_FUNC }, \ - /* Floating / fullscreen */ \ - { MODKEY, XK_f, 0, { .fn = toggle_floating }, TYPE_FUNC }, \ - { MODKEY|ShiftMask, XK_space, 0, { .fn = toggle_floating_global }, TYPE_FUNC }, \ - { MODKEY|ShiftMask, XK_f, 0, { .fn = toggle_fullscreen }, TYPE_FUNC }, \ - /* Workspaces 1–9 */ \ - { MODKEY, XK_1, 0, { .ws = 0 }, TYPE_WS_CHANGE }, \ - { MODKEY|ShiftMask, XK_1, 0, { .ws = 0 }, TYPE_WS_MOVE }, \ - { MODKEY, XK_2, 0, { .ws = 1 }, TYPE_WS_CHANGE }, \ - { MODKEY|ShiftMask, XK_2, 0, { .ws = 1 }, TYPE_WS_MOVE }, \ - { MODKEY, XK_3, 0, { .ws = 2 }, TYPE_WS_CHANGE }, \ - { MODKEY|ShiftMask, XK_3, 0, { .ws = 2 }, TYPE_WS_MOVE }, \ - { MODKEY, XK_4, 0, { .ws = 3 }, TYPE_WS_CHANGE }, \ - { MODKEY|ShiftMask, XK_4, 0, { .ws = 3 }, TYPE_WS_MOVE }, \ - { MODKEY, XK_5, 0, { .ws = 4 }, TYPE_WS_CHANGE }, \ - { MODKEY|ShiftMask, XK_5, 0, { .ws = 4 }, TYPE_WS_MOVE }, \ - { MODKEY, XK_6, 0, { .ws = 5 }, TYPE_WS_CHANGE }, \ - { MODKEY|ShiftMask, XK_6, 0, { .ws = 5 }, TYPE_WS_MOVE }, \ - { MODKEY, XK_7, 0, { .ws = 6 }, TYPE_WS_CHANGE }, \ - { MODKEY|ShiftMask, XK_7, 0, { .ws = 6 }, TYPE_WS_MOVE }, \ - { MODKEY, XK_8, 0, { .ws = 7 }, TYPE_WS_CHANGE }, \ - { MODKEY|ShiftMask, XK_8, 0, { .ws = 7 }, TYPE_WS_MOVE }, \ - { MODKEY, XK_9, 0, { .ws = 8 }, TYPE_WS_CHANGE }, \ - { MODKEY|ShiftMask, XK_9, 0, { .ws = 8 }, TYPE_WS_MOVE }, +#define CFG_BINDS \ + /* Application launchers */ \ + {MODKEY, XK_Return, 0, {.cmd = build_argv("alacritty")}, TYPE_CMD}, \ + {MODKEY, XK_d, 0, {.cmd = build_argv("kitty -e oxicord")}, TYPE_CMD}, \ + {MODKEY, \ + XK_w, \ + 0, \ + {.cmd = build_argv("surf git.bance.dev")}, \ + TYPE_CMD}, \ + {MODKEY, XK_space, 0, {.cmd = build_argv("dmenu_run")}, TYPE_CMD}, \ + {MODKEY, \ + XK_equal, \ + 0, \ + {.cmd = build_argv("volup")}, \ + TYPE_CMD}, \ + {MODKEY, \ + XK_minus, \ + 0, \ + {.cmd = build_argv("voldown")}, \ + TYPE_CMD}, \ + {MODKEY, \ + XK_0, \ + 0, \ + {.cmd = build_argv("volmute")}, \ + TYPE_CMD}, /* Window management */ \ + {MODKEY, XK_q, 0, {.fn = close_focused}, TYPE_FUNC}, \ + {MODKEY | ShiftMask, XK_e, 0, {.fn = quit}, TYPE_FUNC}, \ + {MODKEY, XK_m, 0, {.fn = toggle_monocle}, TYPE_FUNC}, /* Focus */ \ + {MODKEY, XK_j, 0, {.fn = focus_next}, TYPE_FUNC}, \ + {MODKEY, XK_k, 0, {.fn = focus_prev}, TYPE_FUNC}, /* Movement */ \ + {MODKEY | ShiftMask, XK_j, 0, {.fn = move_focused_next}, TYPE_FUNC}, \ + {MODKEY | ShiftMask, \ + XK_k, \ + 0, \ + {.fn = move_focused_prev}, \ + TYPE_FUNC}, /* Keyboard window movement */ \ + {MODKEY, XK_Up, 0, {.fn = move_win_up}, TYPE_FUNC}, \ + {MODKEY, XK_Down, 0, {.fn = move_win_down}, TYPE_FUNC}, \ + {MODKEY, XK_Left, 0, {.fn = move_win_left}, TYPE_FUNC}, \ + {MODKEY, \ + XK_Right, \ + 0, \ + {.fn = move_win_right}, \ + TYPE_FUNC}, /* Keyboard window resize */ \ + {MODKEY | ShiftMask, XK_Up, 0, {.fn = resize_win_up}, TYPE_FUNC}, \ + {MODKEY | ShiftMask, XK_Down, 0, {.fn = resize_win_down}, TYPE_FUNC}, \ + {MODKEY | ShiftMask, XK_Left, 0, {.fn = resize_win_left}, TYPE_FUNC}, \ + {MODKEY | ShiftMask, \ + XK_Right, \ + 0, \ + {.fn = resize_win_right}, \ + TYPE_FUNC}, /* Floating / fullscreen */ \ + {MODKEY, XK_f, 0, {.fn = toggle_floating}, TYPE_FUNC}, \ + {MODKEY | ShiftMask, \ + XK_space, \ + 0, \ + {.fn = toggle_floating_global}, \ + TYPE_FUNC}, \ + {MODKEY | ShiftMask, \ + XK_f, \ + 0, \ + {.fn = toggle_fullscreen}, \ + TYPE_FUNC}, /* Workspaces 1–9 */ \ + {MODKEY, XK_1, 0, {.ws = 0}, TYPE_WS_CHANGE}, \ + {MODKEY | ShiftMask, XK_1, 0, {.ws = 0}, TYPE_WS_MOVE}, \ + {MODKEY, XK_2, 0, {.ws = 1}, TYPE_WS_CHANGE}, \ + {MODKEY | ShiftMask, XK_2, 0, {.ws = 1}, TYPE_WS_MOVE}, \ + {MODKEY, XK_3, 0, {.ws = 2}, TYPE_WS_CHANGE}, \ + {MODKEY | ShiftMask, XK_3, 0, {.ws = 2}, TYPE_WS_MOVE}, \ + {MODKEY, XK_4, 0, {.ws = 3}, TYPE_WS_CHANGE}, \ + {MODKEY | ShiftMask, XK_4, 0, {.ws = 3}, TYPE_WS_MOVE}, \ + {MODKEY, XK_5, 0, {.ws = 4}, TYPE_WS_CHANGE}, \ + {MODKEY | ShiftMask, XK_5, 0, {.ws = 4}, TYPE_WS_MOVE}, \ + {MODKEY, XK_6, 0, {.ws = 5}, TYPE_WS_CHANGE}, \ + {MODKEY | ShiftMask, XK_6, 0, {.ws = 5}, TYPE_WS_MOVE}, \ + {MODKEY, XK_7, 0, {.ws = 6}, TYPE_WS_CHANGE}, \ + {MODKEY | ShiftMask, XK_7, 0, {.ws = 6}, TYPE_WS_MOVE}, \ + {MODKEY, XK_8, 0, {.ws = 7}, TYPE_WS_CHANGE}, \ + {MODKEY | ShiftMask, XK_8, 0, {.ws = 7}, TYPE_WS_MOVE}, \ + {MODKEY, XK_9, 0, {.ws = 8}, TYPE_WS_CHANGE}, \ + {MODKEY | ShiftMask, XK_9, 0, {.ws = 8}, TYPE_WS_MOVE}, diff --git a/src/defs.h b/src/defs.h index 142dcac..4e48a68 100644 --- a/src/defs.h +++ b/src/defs.h @@ -27,113 +27,113 @@ #define NUM_WORKSPACES 9 #define WORKSPACE_NAMES \ - "1" \ - "\0" \ - "2" \ - "\0" \ - "3" \ - "\0" \ - "4" \ - "\0" \ - "5" \ - "\0" \ - "6" \ - "\0" \ - "7" \ - "\0" \ - "8" \ - "\0" \ - "9" \ - "\0" + "1" \ + "\0" \ + "2" \ + "\0" \ + "3" \ + "\0" \ + "4" \ + "\0" \ + "5" \ + "\0" \ + "6" \ + "\0" \ + "7" \ + "\0" \ + "8" \ + "\0" \ + "9" \ + "\0" typedef enum { DRAG_NONE, DRAG_MOVE, DRAG_RESIZE, DRAG_SWAP } DragMode; typedef void (*event_t)(XEvent *); typedef union { - const char **cmd; - void (*fn)(void); - int ws; + const char **cmd; + void (*fn)(void); + int ws; } action_t; typedef struct { - int mods; - KeySym keysym; - KeyCode keycode; - action_t action; - int type; + int mods; + KeySym keysym; + KeyCode keycode; + action_t action; + int type; } binding_t; typedef struct client_t { - Window win; - int x, y, w, h; - int orig_x, orig_y, orig_w, orig_h; - int ws; - Bool fixed; - Bool floating; - Bool fullscreen; - Bool mapped; - pid_t pid; - struct client_t *next; + Window win; + int x, y, w, h; + int orig_x, orig_y, orig_w, orig_h; + int ws; + Bool fixed; + Bool floating; + Bool fullscreen; + Bool mapped; + pid_t pid; + struct client_t *next; } client_t; typedef struct { - int modkey; - int gaps; - int border_width; - long border_foc_col; - long border_ufoc_col; - long border_swap_col; - int motion_throttle; - int snap_distance; - int n_binds; - int move_window_amt; - int resize_window_amt; - Bool new_win_focus; - Bool warp_cursor; - Bool floating_on_top; - binding_t binds[MAX_ITEMS]; - char *to_run[MAX_ITEMS]; + int modkey; + int gaps; + int border_width; + long border_foc_col; + long border_ufoc_col; + long border_swap_col; + int motion_throttle; + int snap_distance; + int n_binds; + int move_window_amt; + int resize_window_amt; + Bool new_win_focus; + Bool warp_cursor; + Bool floating_on_top; + binding_t binds[MAX_ITEMS]; + char *to_run[MAX_ITEMS]; } config_t; typedef struct { - const char *name; - void (*fn)(void); + const char *name; + void (*fn)(void); } command_t; typedef enum { - ATOM_NET_ACTIVE_WINDOW, - ATOM_NET_CURRENT_DESKTOP, - ATOM_NET_SUPPORTED, - ATOM_NET_WM_STATE, - ATOM_NET_WM_STATE_FULLSCREEN, - ATOM_WM_STATE, - ATOM_NET_WM_WINDOW_TYPE, - ATOM_NET_WORKAREA, - ATOM_WM_DELETE_WINDOW, - ATOM_NET_WM_STRUT, - ATOM_NET_WM_STRUT_PARTIAL, - ATOM_NET_SUPPORTING_WM_CHECK, - ATOM_NET_WM_NAME, - ATOM_UTF8_STRING, - ATOM_NET_WM_DESKTOP, - ATOM_NET_CLIENT_LIST, - ATOM_NET_FRAME_EXTENTS, - ATOM_NET_NUMBER_OF_DESKTOPS, - ATOM_NET_DESKTOP_NAMES, - ATOM_NET_WM_PID, - ATOM_NET_WM_WINDOW_TYPE_DOCK, - ATOM_NET_WM_WINDOW_TYPE_UTILITY, - ATOM_NET_WM_WINDOW_TYPE_DIALOG, - ATOM_NET_WM_WINDOW_TYPE_TOOLBAR, - ATOM_NET_WM_WINDOW_TYPE_SPLASH, - ATOM_NET_WM_WINDOW_TYPE_POPUP_MENU, - ATOM_NET_WM_WINDOW_TYPE_MENU, - ATOM_NET_WM_WINDOW_TYPE_DROPDOWN_MENU, - ATOM_NET_WM_WINDOW_TYPE_TOOLTIP, - ATOM_NET_WM_WINDOW_TYPE_NOTIFICATION, - ATOM_NET_WM_STATE_MODAL, - ATOM_WM_PROTOCOLS, - ATOM_COUNT + ATOM_NET_ACTIVE_WINDOW, + ATOM_NET_CURRENT_DESKTOP, + ATOM_NET_SUPPORTED, + ATOM_NET_WM_STATE, + ATOM_NET_WM_STATE_FULLSCREEN, + ATOM_WM_STATE, + ATOM_NET_WM_WINDOW_TYPE, + ATOM_NET_WORKAREA, + ATOM_WM_DELETE_WINDOW, + ATOM_NET_WM_STRUT, + ATOM_NET_WM_STRUT_PARTIAL, + ATOM_NET_SUPPORTING_WM_CHECK, + ATOM_NET_WM_NAME, + ATOM_UTF8_STRING, + ATOM_NET_WM_DESKTOP, + ATOM_NET_CLIENT_LIST, + ATOM_NET_FRAME_EXTENTS, + ATOM_NET_NUMBER_OF_DESKTOPS, + ATOM_NET_DESKTOP_NAMES, + ATOM_NET_WM_PID, + ATOM_NET_WM_WINDOW_TYPE_DOCK, + ATOM_NET_WM_WINDOW_TYPE_UTILITY, + ATOM_NET_WM_WINDOW_TYPE_DIALOG, + ATOM_NET_WM_WINDOW_TYPE_TOOLBAR, + ATOM_NET_WM_WINDOW_TYPE_SPLASH, + ATOM_NET_WM_WINDOW_TYPE_POPUP_MENU, + ATOM_NET_WM_WINDOW_TYPE_MENU, + ATOM_NET_WM_WINDOW_TYPE_DROPDOWN_MENU, + ATOM_NET_WM_WINDOW_TYPE_TOOLTIP, + ATOM_NET_WM_WINDOW_TYPE_NOTIFICATION, + ATOM_NET_WM_STATE_MODAL, + ATOM_WM_PROTOCOLS, + ATOM_COUNT } atom_type_t; const char **build_argv(const char *cmd); @@ -151,7 +151,7 @@ pid_t get_parent_process(pid_t c); pid_t get_pid(Window w); int get_workspace_for_window(Window w); void grab_button(Mask button, Mask mod, Window w, Bool owner_events, - Mask masks); + Mask masks); void grab_keys(void); void hdl_button(XEvent *xev); void hdl_button_release(XEvent *xev); -- cgit v1.2.3-59-g8ed1b