aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar BanceDev 2026-02-20 12:33:18 -0500
committerGravatar BanceDev 2026-02-20 12:33:18 -0500
commit411a7c29aa7c571a62f2d32945cfff773015305e (patch)
tree403e0de1ba888f454ec74e60c6e8d715012296d1
parentalacritty as main and kitty just for oxicord (diff)
updated config to use volume scripts with notifications
Diffstat (limited to '')
-rw-r--r--.clang-format1
-rw-r--r--src/config.h157
-rw-r--r--src/defs.h176
3 files changed, 181 insertions, 153 deletions
diff --git a/.clang-format b/.clang-format
index 0fc6dd1..dfd2d4b 100644
--- a/.clang-format
+++ b/.clang-format
@@ -1,5 +1,4 @@
---
-UseTab: Always
IndentWidth: 4
TabWidth: 4
# BasedOnStyle: LLVM
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 <X11/X.h>
#include <X11/keysym.h>
-#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);