| 1 | # monolith's built-in config, used when ~/.config/monolith/config.toml is |
| 2 | # missing. Copy it there to change anything. |
| 3 | |
| 4 | # Programs started with the compositor, each an argv list. |
| 5 | startup = [] |
| 6 | |
| 7 | [general] |
| 8 | # What Mod means in binds. Use alt when nesting inside a compositor that |
| 9 | # keeps super for itself. |
| 10 | mod = "super" |
| 11 | gaps = { inner = 8, outer = 8 } |
| 12 | # What a window move does when it meets a neighbour. swap trades places, |
| 13 | # merge joins its lane. invert-move does the other one for the next move. |
| 14 | move = "swap" |
| 15 | # Focus whatever window the pointer moves onto. |
| 16 | focus_follows_mouse = false |
| 17 | # Put the pointer in the middle of a window focused from the keyboard, a |
| 18 | # rule or a new map. Bare metal only, a nested pointer belongs to the host. |
| 19 | mouse_follows_focus = false |
| 20 | # A window landing on, or moved to, a tag or output where its tag is empty and |
| 21 | # not in view brings the tag into view there, alongside the tags already shown. |
| 22 | view_tag_on_first_window = true |
| 23 | |
| 24 | [decoration] |
| 25 | # Borders sit in the gap around each window, so keep them under half the inner gap. |
| 26 | border = 2 |
| 27 | # Corner radius, one number or [top left, top right, bottom right, bottom left]. |
| 28 | # Fullscreen windows stay square. |
| 29 | radius = 0 |
| 30 | focused = "#88bfd1" |
| 31 | unfocused = "#3b4252" |
| 32 | |
| 33 | [output] |
| 34 | # Variable refresh rate on outputs that support it, off, on, or fullscreen. |
| 35 | vrr = "fullscreen" |
| 36 | |
| 37 | # Per connector. transform and position follow a reload, mode needs a replug. |
| 38 | # transform is normal, 90, 180, 270, flipped, flipped-90, flipped-180 or |
| 39 | # flipped-270. Outputs without a position line up left to right. |
| 40 | # [output.DP-1] |
| 41 | # transform = "90" |
| 42 | # position = [2560, 0] |
| 43 | # mode = "1920x1080@60" |
| 44 | |
| 45 | [animation] |
| 46 | enabled = true |
| 47 | # orthogonal moves each window along one axis per phase, direct allows both. |
| 48 | style = "orthogonal" |
| 49 | phase_ms = 160 |
| 50 | curve = [0.45, 0.0, 0.2, 1.0] |
| 51 | |
| 52 | [keyboard] |
| 53 | layout = "" |
| 54 | repeat_delay = 200 |
| 55 | repeat_rate = 25 |
| 56 | |
| 57 | # libinput settings, bare metal only. Anything left out keeps the device's |
| 58 | # own default, and options a device lacks are skipped. Touchpads are devices |
| 59 | # that can tap, every other pointing device takes [input.pointer]. |
| 60 | # |
| 61 | # accel_profile flat, adaptive or custom |
| 62 | # accel_speed -1 to 1 |
| 63 | # accel_points the custom profile's curve, pointer speed at 0, accel_step, |
| 64 | # accel_step 2 * accel_step and so on, in device units per millisecond |
| 65 | # natural_scroll, left_handed, tap, tap_drag, tap_drag_lock, dwt (disable |
| 66 | # while typing), middle_emulation true or false |
| 67 | # scroll_method none, two-finger, edge or on-button-down |
| 68 | # scroll_button the evdev code of the on-button-down button, 274 for middle |
| 69 | # click_method button-areas or clickfinger |
| 70 | # scroll_factor multiplies scroll distance, applied by monolith |
| 71 | [input.pointer] |
| 72 | |
| 73 | [input.touchpad] |
| 74 | # tap = true |
| 75 | # natural_scroll = true |
| 76 | |
| 77 | # Per device, by the name `libinput list-devices` shows, over its kind's settings. |
| 78 | # Later entries win. |
| 79 | # [[input.device]] |
| 80 | # name = "Logitech G502" |
| 81 | # accel_profile = "flat" |
| 82 | # accel_speed = -0.3 |
| 83 | |
| 84 | # Each value is a command in word form, or an argv-style list. |
| 85 | [binds] |
| 86 | "Mod+Return" = "spawn beer" |
| 87 | "Mod+q" = "close" |
| 88 | "Mod+Shift+e" = "quit" |
| 89 | "Mod+Shift+r" = "reload" |
| 90 | |
| 91 | "Mod+h" = "focus left" |
| 92 | "Mod+j" = "focus down" |
| 93 | "Mod+k" = "focus up" |
| 94 | "Mod+l" = "focus right" |
| 95 | "Mod+Shift+h" = "move left" |
| 96 | "Mod+Shift+j" = "move down" |
| 97 | "Mod+Shift+k" = "move up" |
| 98 | "Mod+Shift+l" = "move right" |
| 99 | "Mod+Ctrl+h" = "move-container left" |
| 100 | "Mod+Ctrl+j" = "move-container down" |
| 101 | "Mod+Ctrl+k" = "move-container up" |
| 102 | "Mod+Ctrl+l" = "move-container right" |
| 103 | "Mod+m" = "invert-move" |
| 104 | "Mod+Alt+h" = "resize horizontal -0.05" |
| 105 | "Mod+Alt+l" = "resize horizontal 0.05" |
| 106 | "Mod+Alt+k" = "resize vertical -0.05" |
| 107 | "Mod+Alt+j" = "resize vertical 0.05" |
| 108 | |
| 109 | "Mod+e" = "expand window" |
| 110 | "Mod+Shift+w" = "expand container" |
| 111 | "Mod+w" = "maximize" |
| 112 | "Mod+o" = "flip" |
| 113 | "Mod+f" = "fullscreen" |
| 114 | "Mod+Shift+space" = "float" |
| 115 | "Mod+s" = "sticky" |
| 116 | |
| 117 | "Mod+comma" = "focus-output left" |
| 118 | "Mod+period" = "focus-output right" |
| 119 | "Mod+Shift+comma" = "send-to-output left" |
| 120 | "Mod+Shift+period" = "send-to-output right" |
| 121 | |
| 122 | "Mod+grave" = "summon term" |
| 123 | "Mod+Shift+grave" = "scratchpad term" |
| 124 | "Mod+Escape" = "dismiss" |
| 125 | |
| 126 | "Mod+1" = "view 1" |
| 127 | "Mod+2" = "view 2" |
| 128 | "Mod+3" = "view 3" |
| 129 | "Mod+4" = "view 4" |
| 130 | "Mod+5" = "view 5" |
| 131 | "Mod+6" = "view 6" |
| 132 | "Mod+7" = "view 7" |
| 133 | "Mod+8" = "view 8" |
| 134 | "Mod+9" = "view 9" |
| 135 | "Mod+Ctrl+1" = "toggle-view 1" |
| 136 | "Mod+Ctrl+2" = "toggle-view 2" |
| 137 | "Mod+Ctrl+3" = "toggle-view 3" |
| 138 | "Mod+Ctrl+4" = "toggle-view 4" |
| 139 | "Mod+Ctrl+5" = "toggle-view 5" |
| 140 | "Mod+Ctrl+6" = "toggle-view 6" |
| 141 | "Mod+Ctrl+7" = "toggle-view 7" |
| 142 | "Mod+Ctrl+8" = "toggle-view 8" |
| 143 | "Mod+Ctrl+9" = "toggle-view 9" |
| 144 | "Mod+Shift+1" = "tag 1" |
| 145 | "Mod+Shift+2" = "tag 2" |
| 146 | "Mod+Shift+3" = "tag 3" |
| 147 | "Mod+Shift+4" = "tag 4" |
| 148 | "Mod+Shift+5" = "tag 5" |
| 149 | "Mod+Shift+6" = "tag 6" |
| 150 | "Mod+Shift+7" = "tag 7" |
| 151 | "Mod+Shift+8" = "tag 8" |
| 152 | "Mod+Shift+9" = "tag 9" |
| 153 | |
| 154 | # Rules match app_id and title by regex, later rules overriding earlier ones. |
| 155 | # [[rules]] |
| 156 | # app_id = "^pavucontrol$" |
| 157 | # floating = true |