all repos — ryudo @ de0bc0397ac6302cb4e11c53097c77abcfb30eb5

the floatiling window manager that flows; fork of rio from plan9port

config.def.h (raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
/***********************
 * RYUDO CONFIGURATION *
 **********************/

/***************
 * LOOK & FEEL * [All of these are required options except OPACITY and
 *TRANSPARENTLIST]
 **************/

/* Border colors */
#define SBORDERCOL 0x17736C
#define BORDERCOL 0x000000

/* Window sweep border color */
#define GHOSTCOL 0x797979

/* Hold mode border colors -- if you don't use 9term you don't need to
 * care what these are
 */
#define SHOLDCOL 0xC8C8C8
#define HOLDCOL 0x444444

/* Border width in pixels */
#define BORDER 4

/* Gap size, in pixels, for pseudo-tiling. Should be even */
#define GAPSZ 4

/* Menu border width and color */
#define MENUBORDER 0
#define MBORDERCOL 0x000000

/* Normal menu colors */
#define MENUFGCOL 0xC9C9C9
#define MENUBGCOL 0x000000

/* Selected menu colors */
#define SMENUFGCOL 0x000000
#define SMENUBGCOL 0x1F9B92

/* You must use a compositor (eg xcompmgr, picom) for the next 2 settings
 * to have any effect, and each setting doesn't work without the other
 */

/* From 0 - 255, the opacity of windows marked 'transparent' */

#define OPACITY 217

// clang-format off

/* Window classes marked 'transparent' */

#define TRANSPARENTLIST { \
  "Alacritty",            \
  "kate",                 \
  "acme",                 \
  "st-256color",\
  0                       \
}


/* List of fonts to try, in order, for rendering the menus.
 * Remember the backslash at the end of non-terminating lines!
 */

#define FONTLIST {                          \
    "*-lucidatypewriter-medium-*-12-*-75-*",\
    "lucm.latin1.9",                        \
    "blit",                                 \
    "*-lucidatypewriter-bold-*-14-*-75-*",  \
    "9x15bold",                             \
    "fixed",                                \
    "*",                                    \
    0                                       \
  }

/* Names for the virtual desktops. Even if you don't use all of them,
 * it's safer to keep dummy or null values for all of them in case you
 * start the program with a different number of virtuals by happenstance.
 * Remember the backslash at the end of non-terminating lines!
 */

#define VIRTUALLIST {\
  "One",             \
  "Two",             \
  "Three",           \
  "Four",            \
  "Five",            \
  "Six",             \
  "Seven",           \
  "Eight",           \
  "Nine",            \
  "Ten",             \
  "Eleven",          \
  "Twelve",          \
  0                  \
}

// clang-format on

/************
 * BEHAVIOR * [Everything in this section is optional unless otherwise noted]
 ***********/

/* This sets the size ratio for windows spawned via keyboard or
 * center-snapped; CENTERNUM should be >= 2, so use 2/4 instead of 1/2
 */
#define CENTERNUM 2 // required unless you also comment/omit SNAPCENTER_KEY
#define CENTERDEN 3 // required unless you also comment/omit SNAPCENTER_KEY

/* Centered windows should maximize vertically by default?
 * This is the behavior of new windows spawned with the launch shortcut
 * and of centered windows with SHORTCUTMOD + SNAPCENTER_KEY --
 * use SHORTCUTMOD + SHIFT + SNAPCENTER_KEY to get the other behavior.
 */
#define CENTERVMAX

/* Show 'Maximize' menuitem? */
// #define SHOWMAX

/* Show 'Stick' menuitem? */
// #define SHOWSTICK

/* Notify on virtual desktop switch? */
#define VIRTNOTIFY

/* The summary and message to pass to the notifcation daeomon */
#define VIRTHEADER "virtual"
#define VIRTMSG "[%s]"

/* If enabled, having the mouse cursor in a monitor will cause
 * new windows to spawn in that monitor; otherwise, they will spawn
 * in the same monitor as the active window and can be moved afterward
 */

#define MONITORFOLLOWSMOUSE

// clang-format off

/* List of window classes to spawn as sticky;
 * Class values for currently open windows are conveniently shown in the last
 * column of the 'xshove' command given with no arguments.
 * Can be partial strings.
 * Remember the backslash at the end of non-terminating lines!
 */

#define AUTOSTICK {\
  "XOsview",       \
  "XClock",        \
  "xneralie",      \
  0                \
}

/* List of terminal window classes -- include your favorite terminal here,
 * and remove those you don't use. Can be partial strings.
 * This array is required. Remember the backslash at the end of non-
 * terminating lines!
 */

#define TERMINALS {\
  "st-256color",    \
  "term",          \
  "Term",          \
  "xvt",           \
  "Alacritty",     \
  "onsole",        \
  0                \
}

/* List of window classes to REQUIRE window sweeping when spawning;
 * Can be partial strings.
 * Remember the backslash at the end of non-terminating lines!
 */

#define ALWAYSDRAW {\
  0                 \
}

// clang-format on

/***************
 * KEYBINDINGS * [Any shortcut key can be omitted]
 **************/

/* Modifier key and associated modifier bits;
 * Shift = (1<<0)
 * Lock = (1<<1)
 * Control = (1<<2)
 * Mod1 = (1<<3)
 * Mod2 = (1<<4)
 * Mod3 = (1<<5)
 * Mod4 = (1<<6)
 * Mod5 = (1<<7)
 */

#define SHORTCUTMOD Mod4Mask
#define MODBITS (1 << 6)

/* Shortcut keys */

#define MAX_KEY XK_m
#define ICON_KEY XK_i
#define UNHIDE_KEY XK_u
#define MOVE_KEY XK_v
#define RESIZE_KEY XK_r
#define DESTROY_KEY XK_d
#define STICK_KEY XK_s
#define WRANGLE_KEY XK_a

#define SNAPLEFT_KEY XK_h
#define SNAPRIGHT_KEY XK_l
#define SNAPTOP_KEY XK_k
#define SNAPBOTTOM_KEY XK_j

#define SNAPTOPLEFT_KEY XK_q
#define SNAPBOTTOMLEFT_KEY XK_w
#define SNAPBOTTOMRIGHT_KEY XK_o
#define SNAPTOPRIGHT_KEY XK_p

#define SNAPCENTER_KEY XK_c

#define ZOOM_KEY XK_z

#define NEXTVIRT_KEY XK_Right
#define PREVVIRT_KEY XK_Left

#define LAUNCH_KEY XK_slash

// ignore these for now -- this is a feature in development
#define STICKYTOFRONT_KEY XK_t
#define STICKYTOBACK_KEY XK_b