summaryrefslogtreecommitdiff
path: root/src/defs.h
diff options
context:
space:
mode:
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