atagen

monolith

public
Star0
Watch0
33d439770e90592599a895c57c8b9a32abb1931b
1
ssh://brewery@pls.lobotomise.me:33/atagen/monolith.git
crates/config/default.tomlToml242 lines8.7 KB
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
# A new window splits the one it opens beside along that window's longer side,
13
# so windows dwindle. When off it joins the container of that window instead.
14
autotile = true
15
# What a window move does when it meets a neighbour. swap trades places,
16
# merge joins its lane. invert-move does the other one for the next move.
17
move = "swap"
18
# Focus whatever window the pointer moves onto.
19
focus_follows_mouse = false
20
# Put the pointer in the middle of a window focused from the keyboard, a
21
# rule or a new map. Bare metal only, a nested pointer belongs to the host.
22
mouse_follows_focus = false
23
# A window landing on, or moved to, a tag or output where its tag is empty and
24
# not in view brings the tag into view there, alongside the tags already shown.
25
view_tag_on_first_window = true
26
27
[decoration]
28
# Borders sit in the gap around each window, so keep them under half the inner gap.
29
border = 2
30
# Corner radius, one number or [top left, top right, bottom right, bottom left].
31
# Fullscreen windows stay square.
32
radius = 0
33
focused = "#88bfd1"
34
unfocused = "#3b4252"
35
# A window asking for attention that is not focused.
36
urgent = "#ebcb8b"
37
38
[output]
39
# Variable refresh rate on outputs that support it, off, on, or fullscreen.
40
vrr = "fullscreen"
41
42
# Per connector. transform, position and scale follow a reload, mode needs a
43
# replug. transform is normal, 90, 180, 270, flipped, flipped-90, flipped-180 or
44
# flipped-270. Outputs without a position line up left to right. position is in
45
# logical pixels, the size of the output divided by its scale. scale is 0.5 to
46
# 4.0 and is rounded to the nearest 1/120. X11 clients are drawn at scale 1 and
47
# stretched. The nested backend's window is [output.nested], where only scale
48
# applies.
49
# [output.DP-1]
50
# transform = "90"
51
# position = [2560, 0]
52
# mode = "1920x1080@60"
53
# scale = 1.5
54
55
[animation]
56
enabled = true
57
# orthogonal moves each window along one axis per phase, direct allows both.
58
style = "orthogonal"
59
phase_ms = 160
60
curve = [0.45, 0.0, 0.2, 1.0]
61
62
[idle]
63
# Seconds without input before every output is switched off, any input
64
# switches them back on. 0 never blanks. Windows holding an idle inhibitor
65
# keep the screen on while they are shown.
66
blank_after = 0
67
68
[lid]
69
# What closing the lid does, suspend, poweroff or ignore. The internal panel
70
# (eDP, LVDS) switches off whenever the lid is closed and another output is
71
# connected, and then neither suspend nor poweroff happens. Without a
72
# handle-lid-switch inhibitor, logind still acts on the lid itself, so set
73
# HandleLidSwitch=ignore there for ignore to mean anything.
74
close = "suspend"
75
76
[keyboard]
77
layout = ""
78
repeat_delay = 200
79
repeat_rate = 25
80
81
[xwayland]
82
# Which X11 clients may read a Wayland-owned clipboard or primary selection.
83
# focused allows only the window holding keyboard focus, any allows every X11
84
# client, which clipboard managers and headless xclip need.
85
selection_access = "focused"
86
87
# libinput settings, bare metal only. Anything left out keeps the device's
88
# own default, and options a device lacks are skipped. Touchpads are devices
89
# that can tap, every other pointing device takes [input.pointer].
90
#
91
# accel_profile    flat, adaptive or custom
92
# accel_speed      -1 to 1
93
# accel_points     the custom profile's curve, pointer speed at 0, accel_step,
94
# accel_step       2 * accel_step and so on, in device units per millisecond
95
# natural_scroll, left_handed, tap, tap_drag, tap_drag_lock, dwt (disable
96
# while typing), middle_emulation   true or false
97
# scroll_method    none, two-finger, edge or on-button-down
98
# scroll_button    the evdev code of the on-button-down button, 274 for middle
99
# click_method     button-areas or clickfinger
100
# scroll_factor    multiplies scroll distance, applied by monolith
101
[input.pointer]
102
103
[input.touchpad]
104
# tap = true
105
# natural_scroll = true
106
107
# Per device, by the name `libinput list-devices` shows, over its kind's settings.
108
# Later entries win.
109
# [[input.device]]
110
# name = "Logitech G502"
111
# accel_profile = "flat"
112
# accel_speed = -0.3
113
114
# Each value is a command in word form, or an argv-style list.
115
[binds]
116
"Mod+Return" = "spawn beer"
117
"Mod+q" = "close"
118
"Mod+Shift+e" = "quit"
119
"Mod+Shift+r" = "reload"
120
121
"Mod+h" = "focus left"
122
"Mod+j" = "focus down"
123
"Mod+k" = "focus up"
124
"Mod+l" = "focus right"
125
"Mod+Shift+h" = "move left"
126
"Mod+Shift+j" = "move down"
127
"Mod+Shift+k" = "move up"
128
"Mod+Shift+l" = "move right"
129
"Mod+Ctrl+h" = "move-container left"
130
"Mod+Ctrl+j" = "move-container down"
131
"Mod+Ctrl+k" = "move-container up"
132
"Mod+Ctrl+l" = "move-container right"
133
"Mod+m" = "invert-move"
134
"Mod+Alt+h" = "resize horizontal -0.05"
135
"Mod+Alt+l" = "resize horizontal 0.05"
136
"Mod+Alt+k" = "resize vertical -0.05"
137
"Mod+Alt+j" = "resize vertical 0.05"
138
139
"Mod+e" = "expand window"
140
"Mod+Shift+w" = "expand container"
141
"Mod+w" = "maximize"
142
"Mod+o" = "flip"
143
"Mod+f" = "fullscreen"
144
"Mod+Shift+space" = "float"
145
"Mod+s" = "sticky"
146
147
"Mod+comma" = "focus-output left"
148
"Mod+period" = "focus-output right"
149
"Mod+Shift+comma" = "send-to-output left"
150
"Mod+Shift+period" = "send-to-output right"
151
152
"Mod+grave" = "summon term"
153
"Mod+Shift+grave" = "scratchpad term"
154
"Mod+Escape" = "dismiss"
155
156
"Mod+1" = "view 1"
157
"Mod+2" = "view 2"
158
"Mod+3" = "view 3"
159
"Mod+4" = "view 4"
160
"Mod+5" = "view 5"
161
"Mod+6" = "view 6"
162
"Mod+7" = "view 7"
163
"Mod+8" = "view 8"
164
"Mod+9" = "view 9"
165
"Mod+Ctrl+1" = "toggle-view 1"
166
"Mod+Ctrl+2" = "toggle-view 2"
167
"Mod+Ctrl+3" = "toggle-view 3"
168
"Mod+Ctrl+4" = "toggle-view 4"
169
"Mod+Ctrl+5" = "toggle-view 5"
170
"Mod+Ctrl+6" = "toggle-view 6"
171
"Mod+Ctrl+7" = "toggle-view 7"
172
"Mod+Ctrl+8" = "toggle-view 8"
173
"Mod+Ctrl+9" = "toggle-view 9"
174
"Mod+Shift+1" = "tag 1"
175
"Mod+Shift+2" = "tag 2"
176
"Mod+Shift+3" = "tag 3"
177
"Mod+Shift+4" = "tag 4"
178
"Mod+Shift+5" = "tag 5"
179
"Mod+Shift+6" = "tag 6"
180
"Mod+Shift+7" = "tag 7"
181
"Mod+Shift+8" = "tag 8"
182
"Mod+Shift+9" = "tag 9"
183
184
# Every rule matcher given must hit, later rules overriding earlier ones. Rules
185
# are matched when a window maps and again when its title or app_id changes
186
# before it has drawn, since many apps only set the real ones after their first
187
# commit. A pattern that does not compile leaves the rule out.
188
#
189
# Matchers, all optional. Patterns are regexes searched anywhere in the text.
190
#   app_id         the Wayland app_id, or the X11 class
191
#   title          the current title
192
#   initial_title  the title the window had when it mapped, which never changes
193
#   class          the X11 WM_CLASS class, never hits a Wayland window
194
#   instance       the X11 WM_CLASS instance, never hits a Wayland window
195
#   xwayland       true for X11 windows, false for Wayland ones
196
#   dialog         true for a window with a parent or transient, or an X11
197
#                  dialog, false for any other
198
#   parent_app_id  the app_id of the window it is a dialog of, never hits a
199
#                  window without a parent
200
#
201
# Placement, fixed when the window maps or when its rules change before it has
202
# drawn.
203
#   tag            tag name to open on
204
#   output         connector name to open on
205
#   floating       open floating or tiled, whatever the window would be
206
#   sticky         show on every tag
207
#   scratchpad     name of the scratchpad to join
208
#   fullscreen     open fullscreen or not, over what the client asks
209
#   focus          false keeps the focus where it is when the window maps
210
#   size           [width, height] of a floating window
211
#   position       [x, y] of a floating window from its output top left
212
#   center         true centres a floating window, over position
213
#   min_size       [width, height] lower bound for floating sizes, 0 for none
214
#   max_size       [width, height] upper bound for floating sizes, 0 for none
215
# size, position, center and the bounds only touch windows that float, so
216
# pair them with floating = true unless the window floats anyway.
217
#
218
# Effects, following the latest rules that hit for the window's lifetime.
219
#   opacity        0.0 to 1.0, multiplies how opaque the window is drawn
220
#   idle_inhibit   visible keeps the screen on while the window is shown,
221
#                  fullscreen only while it is also fullscreen
222
#   vrr            true or false forces adaptive sync on or off for the output
223
#                  while this window is fullscreen on it
224
#   tearing        reserved, tearing presentation is not implemented yet
225
#
226
# [[rules]]
227
# app_id = "^pavucontrol$"
228
# floating = true
229
# size = [900, 600]
230
# center = true
231
#
232
# [[rules]]
233
# app_id = "^mpv$"
234
# idle_inhibit = "fullscreen"
235
# vrr = true
236
#
237
# [[rules]]
238
# app_id = "^firefox$"
239
# title = "^Picture-in-Picture$"
240
# floating = true
241
# opacity = 0.9
242
# focus = false