summaryrefslogtreecommitdiff
path: root/src/defs.h
diff options
context:
space:
mode:
authorAbhinav <abhinav.prsai@gmail.com>2025-06-24 00:20:36 +0100
committerAbhinav <abhinav.prsai@gmail.com>2025-06-24 00:20:36 +0100
commitcc234a66f020256ca2cd2a0a189fda00195bb8f0 (patch)
treeef27eafe15154ef42f9f773fae96d52ad3d969b2 /src/defs.h
parentd0862b78106c9bdd4c286b2e165cec9b582e04f1 (diff)
add scratchpads
there are now i3 like scratchpads. all default binds added, mans updated
Diffstat (limited to 'src/defs.h')
-rw-r--r--src/defs.h26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/defs.h b/src/defs.h
index ae60c94..18c7e2b 100644
--- a/src/defs.h
+++ b/src/defs.h
@@ -20,15 +20,23 @@
#define UDIST(a, b) abs((int)(a) - (int)(b))
#define CLAMP(x, lo, hi) (((x) < (lo)) ? (lo) : ((x) > (hi)) ? (hi) : (x))
#define MAXCLIENTS 99
+#define MAX_SCRATCHPADS 20
#define MIN_WINDOW_SIZE 20
#define BIND(mod, key, cmdstr) {(mod), XK_##key, {cmdstr}, False}
#define CALL(mod, key, fnptr) {(mod), XK_##key, {.fn = fnptr}, True}
#define CMD(name, ...) const char *name[] = {__VA_ARGS__, NULL}
-#define TYPE_CWKSP 0
-#define TYPE_MWKSP 1
+/* workspaces */
+#define TYPE_FUNC 2
+#define TYPE_WS_CHANGE 0
+#define TYPE_WS_MOVE 1
+/* fn/cmd */
#define TYPE_FUNC 2
#define TYPE_CMD 3
+/* scratchpads*/
+#define TYPE_SP_REMOVE 4
+#define TYPE_SP_TOGGLE 5
+#define TYPE_SP_CREATE 6
#define NUM_WORKSPACES 9
#define WORKSPACE_NAMES \
@@ -43,13 +51,13 @@
"9" "\0"
typedef enum { DRAG_NONE, DRAG_MOVE, DRAG_RESIZE, DRAG_SWAP } DragMode;
-
typedef void (*EventHandler)(XEvent *);
typedef union {
const char **cmd;
void (*fn)(void);
- int ws;
+ int ws; /* workspace */
+ int sp; /* scratchpad */
} Action;
typedef struct {
@@ -95,7 +103,8 @@ typedef struct {
Binding binds[256];
char **should_float[256];
char **can_swallow[256];
- char **can_be_swallowed[256];
+ char **can_be_swallowed[256];
+ char **scratchpads[32];
char *torun[256];
} Config;
@@ -104,6 +113,11 @@ typedef struct {
int w, h;
} Monitor;
+typedef struct {
+ Client *client;
+ Bool enabled;
+} Scratchpad;
+
extern void close_focused(void);
extern void dec_gaps(void);
extern void focus_next(void);
@@ -124,4 +138,4 @@ extern void resize_stack_add(void);
extern void resize_stack_sub(void);
extern void toggle_floating(void);
extern void toggle_floating_global(void);
-extern void toggle_fullscreen(void);
+extern void toggle_fullscreen(void); \ No newline at end of file