config.h (2874B)
1 /* 2 * kbgwm, a sucklessy floating window manager 3 * Copyright (c) 2020-2021, Kebigon <git@kebigon.xyz> 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18 #pragma once 19 20 #include "client.h" 21 #include "types.h" 22 #include <X11/keysym.h> 23 24 #define MODKEY XCB_MOD_MASK_1 25 #define SHIFT XCB_MOD_MASK_SHIFT 26 27 #define FOCUS_COLOR 0xFF0000 28 #define UNFOCUS_COLOR 0x005577 29 30 #define BORDER_WIDTH 1 31 32 /* 33 * Number of workspaces 34 * They will be numbered from 0 to NB_WORKSPACES-1 35 */ 36 #define NB_WORKSPACES 10 37 38 static const char *termcmd[] = {"xterm", NULL}; 39 static const char *menucmd[] = {"dmenu_run", NULL}; 40 41 // clang-format off 42 #define WORKSPACEKEYS(KEY,WORKSPACE) \ 43 { MODKEY|XCB_MOD_MASK_SHIFT, KEY, workspace_send, {.i = WORKSPACE} }, \ 44 { MODKEY, KEY, workspace_change, {.i = WORKSPACE} }, 45 46 const struct Key keys[] = { 47 { MODKEY, XK_Return, start, { .cmd = termcmd } }, 48 { MODKEY, XK_p, start, { .cmd = menucmd } }, 49 { MODKEY, XK_Page_Up, workspace_previous, { 0 } }, 50 { MODKEY, XK_Page_Down, workspace_next, { 0 } }, 51 { MODKEY | SHIFT, XK_Tab, focus_next, { .b = true } }, 52 { MODKEY, XK_Tab, focus_next, { .b = false } }, 53 { MODKEY, XK_q, client_kill, { 0 } }, 54 { MODKEY | SHIFT, XK_q, quit, { 0 } }, 55 { MODKEY, XK_x, client_toggle_maximize, { 0 } }, 56 WORKSPACEKEYS(XK_Home, 0) 57 WORKSPACEKEYS(XK_1, 0) 58 WORKSPACEKEYS(XK_2, 1) 59 WORKSPACEKEYS(XK_3, 2) 60 WORKSPACEKEYS(XK_4, 3) 61 WORKSPACEKEYS(XK_5, 4) 62 WORKSPACEKEYS(XK_6, 5) 63 WORKSPACEKEYS(XK_7, 6) 64 WORKSPACEKEYS(XK_8, 7) 65 WORKSPACEKEYS(XK_9, 8) 66 WORKSPACEKEYS(XK_0, 9) 67 WORKSPACEKEYS(XK_End, 9) 68 }; 69 70 const struct Button buttons[] = { 71 { MODKEY, XCB_BUTTON_INDEX_1, mousemove, { 0 } }, 72 { MODKEY, XCB_BUTTON_INDEX_3, mouseresize, { 0 } }, 73 }; 74 // clang-format on 75 76 const uint_least8_t keys_length = LENGTH(keys); 77 const uint_least8_t buttons_length = LENGTH(buttons); 78 const uint_least8_t workspaces_length = NB_WORKSPACES; 79 const uint_least8_t border_width = BORDER_WIDTH; 80 const uint_least8_t border_width_x2 = (border_width << 1);