fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 1 | # monolith's built-in config, used when ~/.config/monolith/config.toml is |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 2 | # missing. Copy it there to change anything. |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 3 | |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 4 | # Programs started with the compositor, each an argv list. |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 5 | startup = [] |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 6 | |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 7 | [general] |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 8 | # What Mod means in binds. Use alt when nesting inside a compositor that |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 9 | # keeps super for itself. |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 10 | mod = "super" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 11 | gaps = { inner = 8, outer = 8 } |
86ef802692f5 | atagen | 2026-10-19 07:43 UTC | 12 | # A new window splits the one it opens beside along that window's longer side, |
86ef802692f5 | atagen | 2026-10-19 07:43 UTC | 13 | # so windows dwindle. When off it joins the container of that window instead. |
86ef802692f5 | atagen | 2026-10-19 07:43 UTC | 14 | autotile = true |
4444c779eb48 | atagen | 2026-10-16 12:07 UTC | 15 | # What a window move does when it meets a neighbour. swap trades places, |
4444c779eb48 | atagen | 2026-10-16 12:07 UTC | 16 | # merge joins its lane. invert-move does the other one for the next move. |
4444c779eb48 | atagen | 2026-10-16 12:07 UTC | 17 | move = "swap" |
24fca1aad608 | atagen | 2026-10-17 09:56 UTC | 18 | # Focus whatever window the pointer moves onto. |
24fca1aad608 | atagen | 2026-10-17 09:56 UTC | 19 | focus_follows_mouse = false |
24fca1aad608 | atagen | 2026-10-17 09:56 UTC | 20 | # Put the pointer in the middle of a window focused from the keyboard, a |
24fca1aad608 | atagen | 2026-10-17 09:56 UTC | 21 | # rule or a new map. Bare metal only, a nested pointer belongs to the host. |
24fca1aad608 | atagen | 2026-10-17 09:56 UTC | 22 | mouse_follows_focus = false |
c371f16816a5 | atagen | 2026-10-17 13:59 UTC | 23 | # A window landing on, or moved to, a tag or output where its tag is empty and |
c371f16816a5 | atagen | 2026-10-17 13:59 UTC | 24 | # not in view brings the tag into view there, alongside the tags already shown. |
47259c39793f | atagen | 2026-10-17 10:13 UTC | 25 | view_tag_on_first_window = true |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 26 | |
7ce6ae4e5a85 | atagen | 2026-10-16 12:16 UTC | 27 | [decoration] |
7ce6ae4e5a85 | atagen | 2026-10-16 12:16 UTC | 28 | # Borders sit in the gap around each window, so keep them under half the inner gap. |
7ce6ae4e5a85 | atagen | 2026-10-16 12:16 UTC | 29 | border = 2 |
47259c39793f | atagen | 2026-10-17 10:13 UTC | 30 | # Corner radius, one number or [top left, top right, bottom right, bottom left]. |
47259c39793f | atagen | 2026-10-17 10:13 UTC | 31 | # Fullscreen windows stay square. |
47259c39793f | atagen | 2026-10-17 10:13 UTC | 32 | radius = 0 |
7ce6ae4e5a85 | atagen | 2026-10-16 12:16 UTC | 33 | focused = "#88bfd1" |
7ce6ae4e5a85 | atagen | 2026-10-16 12:16 UTC | 34 | unfocused = "#3b4252" |
1d62be4ff79c | atagen | 2026-10-19 07:37 UTC | 35 | # A window asking for attention that is not focused. |
1d62be4ff79c | atagen | 2026-10-19 07:37 UTC | 36 | urgent = "#ebcb8b" |
7ce6ae4e5a85 | atagen | 2026-10-16 12:16 UTC | 37 | |
8e6f96f0a32d | atagen | 2026-10-16 22:17 UTC | 38 | [output] |
8e6f96f0a32d | atagen | 2026-10-16 22:17 UTC | 39 | # Variable refresh rate on outputs that support it, off, on, or fullscreen. |
8e6f96f0a32d | atagen | 2026-10-16 22:17 UTC | 40 | vrr = "fullscreen" |
8e6f96f0a32d | atagen | 2026-10-16 22:17 UTC | 41 | |
ea84a35c5001 | atagen | 2026-10-18 02:40 UTC | 42 | # Per connector. transform and position follow a reload, mode needs a replug. |
ea84a35c5001 | atagen | 2026-10-18 02:40 UTC | 43 | # transform is normal, 90, 180, 270, flipped, flipped-90, flipped-180 or |
ea84a35c5001 | atagen | 2026-10-18 02:40 UTC | 44 | # flipped-270. Outputs without a position line up left to right. |
9b87063809e1 | atagen | 2026-10-17 13:28 UTC | 45 | # [output.DP-1] |
9b87063809e1 | atagen | 2026-10-17 13:28 UTC | 46 | # transform = "90" |
9b87063809e1 | atagen | 2026-10-17 13:28 UTC | 47 | # position = [2560, 0] |
9b87063809e1 | atagen | 2026-10-17 13:28 UTC | 48 | # mode = "1920x1080@60" |
9b87063809e1 | atagen | 2026-10-17 13:28 UTC | 49 | |
2af1d8c55876 | atagen | 2026-10-16 11:05 UTC | 50 | [animation] |
2af1d8c55876 | atagen | 2026-10-16 11:05 UTC | 51 | enabled = true |
2af1d8c55876 | atagen | 2026-10-16 11:05 UTC | 52 | # orthogonal moves each window along one axis per phase, direct allows both. |
2af1d8c55876 | atagen | 2026-10-16 11:05 UTC | 53 | style = "orthogonal" |
2af1d8c55876 | atagen | 2026-10-16 11:05 UTC | 54 | phase_ms = 160 |
2af1d8c55876 | atagen | 2026-10-16 11:05 UTC | 55 | curve = [0.45, 0.0, 0.2, 1.0] |
2af1d8c55876 | atagen | 2026-10-16 11:05 UTC | 56 | |
47b86d08d05a | atagen | 2026-10-19 07:37 UTC | 57 | [idle] |
47b86d08d05a | atagen | 2026-10-19 07:37 UTC | 58 | # Seconds without input before every output is switched off, any input |
47b86d08d05a | atagen | 2026-10-19 07:37 UTC | 59 | # switches them back on. 0 never blanks. Windows holding an idle inhibitor |
47b86d08d05a | atagen | 2026-10-19 07:37 UTC | 60 | # keep the screen on while they are shown. |
47b86d08d05a | atagen | 2026-10-19 07:37 UTC | 61 | blank_after = 0 |
47b86d08d05a | atagen | 2026-10-19 07:37 UTC | 62 | |
5b8422a225da | atagen | 2026-10-19 07:45 UTC | 63 | [lid] |
5b8422a225da | atagen | 2026-10-19 07:45 UTC | 64 | # What closing the lid does, suspend, poweroff or ignore. The internal panel |
5b8422a225da | atagen | 2026-10-19 07:45 UTC | 65 | # (eDP, LVDS) switches off whenever the lid is closed and another output is |
5b8422a225da | atagen | 2026-10-19 07:45 UTC | 66 | # connected, and then neither suspend nor poweroff happens. Without a |
5b8422a225da | atagen | 2026-10-19 07:45 UTC | 67 | # handle-lid-switch inhibitor, logind still acts on the lid itself, so set |
5b8422a225da | atagen | 2026-10-19 07:45 UTC | 68 | # HandleLidSwitch=ignore there for ignore to mean anything. |
5b8422a225da | atagen | 2026-10-19 07:45 UTC | 69 | close = "suspend" |
5b8422a225da | atagen | 2026-10-19 07:45 UTC | 70 | |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 71 | [keyboard] |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 72 | layout = "" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 73 | repeat_delay = 200 |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 74 | repeat_rate = 25 |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 75 | |
1df9b00ad0fd | atagen | 2026-10-19 07:34 UTC | 76 | [xwayland] |
1df9b00ad0fd | atagen | 2026-10-19 07:34 UTC | 77 | # Which X11 clients may read a Wayland-owned clipboard or primary selection. |
1df9b00ad0fd | atagen | 2026-10-19 07:34 UTC | 78 | # focused allows only the window holding keyboard focus, any allows every X11 |
1df9b00ad0fd | atagen | 2026-10-19 07:34 UTC | 79 | # client, which clipboard managers and headless xclip need. |
1df9b00ad0fd | atagen | 2026-10-19 07:34 UTC | 80 | selection_access = "focused" |
1df9b00ad0fd | atagen | 2026-10-19 07:34 UTC | 81 | |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 82 | # libinput settings, bare metal only. Anything left out keeps the device's |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 83 | # own default, and options a device lacks are skipped. Touchpads are devices |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 84 | # that can tap, every other pointing device takes [input.pointer]. |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 85 | # |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 86 | # accel_profile flat, adaptive or custom |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 87 | # accel_speed -1 to 1 |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 88 | # accel_points the custom profile's curve, pointer speed at 0, accel_step, |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 89 | # accel_step 2 * accel_step and so on, in device units per millisecond |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 90 | # natural_scroll, left_handed, tap, tap_drag, tap_drag_lock, dwt (disable |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 91 | # while typing), middle_emulation true or false |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 92 | # scroll_method none, two-finger, edge or on-button-down |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 93 | # scroll_button the evdev code of the on-button-down button, 274 for middle |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 94 | # click_method button-areas or clickfinger |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 95 | # scroll_factor multiplies scroll distance, applied by monolith |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 96 | [input.pointer] |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 97 | |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 98 | [input.touchpad] |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 99 | # tap = true |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 100 | # natural_scroll = true |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 101 | |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 102 | # Per device, by the name `libinput list-devices` shows, over its kind's settings. |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 103 | # Later entries win. |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 104 | # [[input.device]] |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 105 | # name = "Logitech G502" |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 106 | # accel_profile = "flat" |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 107 | # accel_speed = -0.3 |
9944e8618a62 | atagen | 2026-10-18 10:00 UTC | 108 | |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 109 | # Each value is a command in word form, or an argv-style list. |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 110 | [binds] |
3b180fd69834 | atagen | 2026-10-17 10:40 UTC | 111 | "Mod+Return" = "spawn beer" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 112 | "Mod+q" = "close" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 113 | "Mod+Shift+e" = "quit" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 114 | "Mod+Shift+r" = "reload" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 115 | |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 116 | "Mod+h" = "focus left" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 117 | "Mod+j" = "focus down" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 118 | "Mod+k" = "focus up" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 119 | "Mod+l" = "focus right" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 120 | "Mod+Shift+h" = "move left" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 121 | "Mod+Shift+j" = "move down" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 122 | "Mod+Shift+k" = "move up" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 123 | "Mod+Shift+l" = "move right" |
4444c779eb48 | atagen | 2026-10-16 12:07 UTC | 124 | "Mod+Ctrl+h" = "move-container left" |
4444c779eb48 | atagen | 2026-10-16 12:07 UTC | 125 | "Mod+Ctrl+j" = "move-container down" |
4444c779eb48 | atagen | 2026-10-16 12:07 UTC | 126 | "Mod+Ctrl+k" = "move-container up" |
4444c779eb48 | atagen | 2026-10-16 12:07 UTC | 127 | "Mod+Ctrl+l" = "move-container right" |
4444c779eb48 | atagen | 2026-10-16 12:07 UTC | 128 | "Mod+m" = "invert-move" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 129 | "Mod+Alt+h" = "resize horizontal -0.05" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 130 | "Mod+Alt+l" = "resize horizontal 0.05" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 131 | "Mod+Alt+k" = "resize vertical -0.05" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 132 | "Mod+Alt+j" = "resize vertical 0.05" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 133 | |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 134 | "Mod+e" = "expand window" |
4444c779eb48 | atagen | 2026-10-16 12:07 UTC | 135 | "Mod+Shift+w" = "expand container" |
4444c779eb48 | atagen | 2026-10-16 12:07 UTC | 136 | "Mod+w" = "maximize" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 137 | "Mod+o" = "flip" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 138 | "Mod+f" = "fullscreen" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 139 | "Mod+Shift+space" = "float" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 140 | "Mod+s" = "sticky" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 141 | |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 142 | "Mod+comma" = "focus-output left" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 143 | "Mod+period" = "focus-output right" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 144 | "Mod+Shift+comma" = "send-to-output left" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 145 | "Mod+Shift+period" = "send-to-output right" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 146 | |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 147 | "Mod+grave" = "summon term" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 148 | "Mod+Shift+grave" = "scratchpad term" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 149 | "Mod+Escape" = "dismiss" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 150 | |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 151 | "Mod+1" = "view 1" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 152 | "Mod+2" = "view 2" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 153 | "Mod+3" = "view 3" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 154 | "Mod+4" = "view 4" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 155 | "Mod+5" = "view 5" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 156 | "Mod+6" = "view 6" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 157 | "Mod+7" = "view 7" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 158 | "Mod+8" = "view 8" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 159 | "Mod+9" = "view 9" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 160 | "Mod+Ctrl+1" = "toggle-view 1" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 161 | "Mod+Ctrl+2" = "toggle-view 2" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 162 | "Mod+Ctrl+3" = "toggle-view 3" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 163 | "Mod+Ctrl+4" = "toggle-view 4" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 164 | "Mod+Ctrl+5" = "toggle-view 5" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 165 | "Mod+Ctrl+6" = "toggle-view 6" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 166 | "Mod+Ctrl+7" = "toggle-view 7" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 167 | "Mod+Ctrl+8" = "toggle-view 8" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 168 | "Mod+Ctrl+9" = "toggle-view 9" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 169 | "Mod+Shift+1" = "tag 1" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 170 | "Mod+Shift+2" = "tag 2" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 171 | "Mod+Shift+3" = "tag 3" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 172 | "Mod+Shift+4" = "tag 4" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 173 | "Mod+Shift+5" = "tag 5" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 174 | "Mod+Shift+6" = "tag 6" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 175 | "Mod+Shift+7" = "tag 7" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 176 | "Mod+Shift+8" = "tag 8" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 177 | "Mod+Shift+9" = "tag 9" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 178 | |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 179 | # Rules match app_id and title by regex, later rules overriding earlier ones. |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 180 | # [[rules]] |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 181 | # app_id = "^pavucontrol$" |
fe835aed6c8d | atagen | 2026-10-16 10:05 UTC | 182 | # floating = true |