Replaced flextile with flextile-deluxe, refactored monitor rules to support predetermined layouts per tag
This commit is contained in:
107
patch/flextile-deluxe.h
Normal file
107
patch/flextile-deluxe.h
Normal file
@ -0,0 +1,107 @@
|
||||
static void flextile(Monitor *m);
|
||||
static void mirrorlayout(const Arg *arg);
|
||||
static void rotatelayoutaxis(const Arg *arg);
|
||||
static void incnstack(const Arg *arg);
|
||||
|
||||
/* Symbol handlers */
|
||||
static void setflexsymbols(Monitor *m, unsigned int n);
|
||||
static void monoclesymbols(Monitor *m, unsigned int n);
|
||||
static void decksymbols(Monitor *m, unsigned int n);
|
||||
|
||||
/* Layout split */
|
||||
static void layout_no_split(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_split_vertical(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_split_horizontal(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_split_vertical_dual_stack(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_split_horizontal_dual_stack(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_split_centered_vertical(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_split_centered_horizontal(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_floating_master(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_split_vertical_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_split_horizontal_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_split_vertical_dual_stack_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_split_horizontal_dual_stack_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_split_centered_vertical_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_split_centered_horizontal_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
static void layout_floating_master_fixed(Monitor *m, int x, int y, int h, int w, int ih, int iv, int n);
|
||||
|
||||
/* Layout tile arrangements */
|
||||
static void arrange_left_to_right(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
|
||||
static void arrange_top_to_bottom(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
|
||||
static void arrange_monocle(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
|
||||
static void arrange_gapplessgrid(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
|
||||
static void arrange_gridmode(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
|
||||
static void arrange_horizgrid(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
|
||||
static void arrange_dwindle(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
|
||||
static void arrange_spiral(Monitor *m, int ax, int ay, int ah, int aw, int ih, int iv, int n, int an, int ai);
|
||||
|
||||
/* Named flextile constants */
|
||||
enum {
|
||||
LAYOUT, // controls overall layout arrangement / split
|
||||
MASTER, // indicates the tile arrangement for the master area
|
||||
STACK, // indicates the tile arrangement for the stack area
|
||||
STACK2, // indicates the tile arrangement for the secondary stack area
|
||||
LTAXIS_LAST,
|
||||
};
|
||||
|
||||
/* Layout arrangements */
|
||||
enum {
|
||||
NO_SPLIT,
|
||||
SPLIT_VERTICAL, // master stack vertical split
|
||||
SPLIT_HORIZONTAL, // master stack horizontal split
|
||||
SPLIT_CENTERED_VERTICAL, // centered master vertical split
|
||||
SPLIT_CENTERED_HORIZONTAL, // centered master horizontal split
|
||||
SPLIT_VERTICAL_DUAL_STACK, // master stack vertical split with dual stack
|
||||
SPLIT_HORIZONTAL_DUAL_STACK, // master stack vertical split with dual stack
|
||||
FLOATING_MASTER, // (fake) floating master
|
||||
SPLIT_VERTICAL_FIXED, // master stack vertical fixed split
|
||||
SPLIT_HORIZONTAL_FIXED, // master stack horizontal fixed split
|
||||
SPLIT_CENTERED_VERTICAL_FIXED, // centered master vertical fixed split
|
||||
SPLIT_CENTERED_HORIZONTAL_FIXED, // centered master horizontal fixed split
|
||||
SPLIT_VERTICAL_DUAL_STACK_FIXED, // master stack vertical split with fixed dual stack
|
||||
SPLIT_HORIZONTAL_DUAL_STACK_FIXED, // master stack vertical split with fixed dual stack
|
||||
FLOATING_MASTER_FIXED, // (fake) fixed floating master
|
||||
LAYOUT_LAST,
|
||||
};
|
||||
|
||||
static char layoutsymb[] = {
|
||||
32, // " ",
|
||||
124, // "|",
|
||||
61, // "=",
|
||||
94, // "^",
|
||||
126, // "~",
|
||||
58, // ":",
|
||||
59, // ";",
|
||||
43, // "+",
|
||||
124, // "¦",
|
||||
61, // "=",
|
||||
94, // "^",
|
||||
126, // "~",
|
||||
58, // ":",
|
||||
59, // ";",
|
||||
43, // "+",
|
||||
};
|
||||
|
||||
/* Tile arrangements */
|
||||
enum {
|
||||
TOP_TO_BOTTOM, // clients are stacked vertically
|
||||
LEFT_TO_RIGHT, // clients are stacked horizontally
|
||||
MONOCLE, // clients are stacked in deck / monocle mode
|
||||
GAPPLESSGRID, // clients are stacked in a gappless grid
|
||||
GRIDMODE, // clients are stacked in a grid
|
||||
HORIZGRID, // clients are stacked in a grid
|
||||
DWINDLE, // clients are stacked in fibonacci dwindle mode
|
||||
SPIRAL, // clients are stacked in fibonacci spiral mode
|
||||
AXIS_LAST,
|
||||
};
|
||||
|
||||
static char tilesymb[] = {
|
||||
61, // "=",
|
||||
124, // "|",
|
||||
68, // "D",
|
||||
35, // "#",
|
||||
35, // "#",
|
||||
35, // "#",
|
||||
92, // "\\",
|
||||
64, // "@",
|
||||
};
|
Reference in New Issue
Block a user