#pragma once #include #include #include #include "action.h" #include "layout.h" #include "types.h" static const char *const font_family = "monospace"; static const int font_size = 10; static const int default_dpi = 144; static const char *const tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", nullptr, }; static const uint16_t border_width = 1; static const uint16_t bar_y_padding = 1; static const uint16_t tag_x_padding = 10; static const char *const bar_bg = "#222222"; static const char *const tag_bg = "#222222"; static const char *const active_tag_bg = "#005577"; static const char *const tag_color = "#bbbbbb"; static const char *const active_tag_color = "#eeeeee"; static const char *const border_color = "#444444"; static const char *const active_border_color = "#005577"; static const button_t button_list[] = { {click_tag, modifier_none, button_left, select_tag_of_current_monitor, {0}}, { click_client_name, modifier_none, button_left, change_client_state_dwim, {0}, }, }; #define TAGKEYS(KEY, TAG) \ {modifier_super, KEY, select_tag_of_current_monitor, {.ui = TAG}}, { \ modifier_super | modifier_shift, KEY, send_client_to_tag, {.ui = TAG}, \ } static const char launcher[] = "rofi -show combi -modes combi -combi-modes window,drun,run,ssh,windowcd"; static const char terminal[] = "xterm"; static const char terminal_class[] = "XTerm"; static const char editor[] = "emacsclient -a '' -r -n"; static const char editor_class[] = "Emacs"; static const char browser[] = "firefox-bin"; static const char browser_class[] = "firefox"; static const char chrome[] = "google-chrome-stable"; static const char chrome_class[] = "Google-chrome"; static const keyboard_t key_list[] = { {modifier_super, XK_r, spawn, {.ptr = launcher}}, {modifier_super, XK_Return, spawn, {.ptr = terminal}}, { modifier_control | modifier_alt, XK_r, raise_or_run, {.ptr = (const char *[]){terminal_class, terminal}}, }, { modifier_super, XK_e, raise_or_run, {.ptr = (const char *[]){editor_class, editor}}, }, { modifier_super, XK_q, raise_or_run, {.ptr = (const char *[]){browser_class, browser}}, }, { modifier_super, XK_a, raise_or_run, {.ptr = (const char *[]){chrome_class, chrome}}, }, {modifier_super | modifier_shift, XK_q, quit, {.b = false}}, {modifier_super | modifier_control, XK_r, quit, {.b = true}}, {modifier_super | modifier_shift, XK_j, focus_client_in_same_tag, {.b = true}}, {modifier_super | modifier_shift, XK_k, focus_client_in_same_tag, {.b = false}}, TAGKEYS(XK_1, 1 << 0), TAGKEYS(XK_2, 1 << 1), TAGKEYS(XK_3, 1 << 2), TAGKEYS(XK_4, 1 << 3), TAGKEYS(XK_5, 1 << 4), TAGKEYS(XK_6, 1 << 5), TAGKEYS(XK_7, 1 << 6), TAGKEYS(XK_8, 1 << 7), TAGKEYS(XK_9, 1 << 8), {modifier_super, XK_o, send_client_to_next_monitor, {0}}, {modifier_super | modifier_control, XK_j, focus_next_monitor, {0}}, {modifier_super | modifier_control, XK_space, toggle_client_floating, {0}}, {modifier_super, XK_f, toggle_client_fullscreen, {0}}, {modifier_super, XK_m, toggle_client_maximize, {0}}, {modifier_super | modifier_shift, XK_c, kill_client, {0}}, {modifier_super, XK_Up, change_volume, {.i = 1}}, {modifier_super, XK_Down, change_volume, {.i = -1}}, {modifier_super | modifier_shift, XK_m, toggle_mute, {0}}, {modifier_none, XF86XK_AudioRaiseVolume, change_volume, {.i = 1}}, {modifier_none, XF86XK_AudioLowerVolume, change_volume, {.i = -1}}, {modifier_none, XF86XK_AudioMute, toggle_mute, {0}}, }; static const layout_t layout_list[] = { {.symbol = "[]=", .arrange = tile}, {.symbol = "[M]", .arrange = monocle}, {.symbol = "><=", .arrange = nullptr}, }; static const char *const autostart_list[] = { "gentoo-pipewire-launcher restart", "picom -b --backend xrender", "fcitx5 -d", nullptr, }; static const rule_t rules[] = { {.role = "dialog", .tag_index = -1, .floating = true}, {.class = "firefox", .role = "About", .tag_index = 1, .floating = true}, {.class = "firefox", .role = "browser", .tag_index = 1, .maximize = true}, {.class = "Google-chrome", .tag_index = 1, .maximize = true}, {.class = "mpv", .tag_index = 11, .switch_to_tag = true, .fullscreen = true}, {.class = "Emacs", .tag_index = 10, .switch_to_tag = true, .maximize = true}, }; /* static const char *const wallpapers[] = {"~/bg/\*", "~/Downloads/bg/\*"}; */ static const char *const wallpapers[] = {}; static const uint32_t wallpaper_interval = 10;