-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathconfig.toml
277 lines (226 loc) · 8.71 KB
/
config.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
[global-config]
# Options: alt, ctrl, logo, mod2, mod3
# This key can be referenced in custom keybindings as `meta`
meta-key = "alt"
focus-follows-mouse = true
# One workspace with each name is generated automatically. Each workspace receives layouts
# as defined in the [[layout]] list below. You can configure keybindings to switch to
# workspaces by name, or to move windows between them.
workspace-names = ["main", "2", "3", "4", "5", "6", "7", "8", "9"]
# Autogenerate keybinds to switch to workspaces, specifically:
# - Bind meta-$N to switch to workspace number N, for each number key $N,
# - Bind meta-shift-$N to move the active window to workspace number N, for each number key $N
# You can also/alternatively create these bindings via custom [[keybind]]s below.
# Set this to false to disable automatic keybind generation and leave the keybinds all to you.
bind-workspaces-to-numbers = true
# Cursor button used to drag windows around (also making them floating) when meta is held
win-move-cursor-button = "left"
# Cursor button used to resize windows (also making them floating) when meta is held
win-resize-cursor-button = "right"
# Window border configuration
border-width = 2 # pixels
active-border-colour = [1.0, 0.0, 0.7, 1.0] # rgba
inactive-border-colour = [0.6, 0.6, 0.9, 1.0] # rgba
# Gap distance between windows
gap-width = 0 # pixels
# Allow views to enter fullscreen state. If allowed this bypasses the current layout.
allow-fullscreen = true
# Desktop background colour. Note this is overridden by the [background] if set.
clear-colour = [0.73, 0.73, 0.73, 1.0]
### BACKGROUND ###
# The background options are displayed using `swaybg`. Make sure you have this installed
# if you want to use them.
[background]
colour = "#bbbbbb"
image = "/path/to/your/background.png"
mode = "fill"
### XKB-CONFIG ###
# These all accept standard xkb syntax and options, e.g. as you would pass to `setxkbmap`
# run from a shell.
[xkb-config]
# model = "pc104"
# layout = "us"
# variant = "basic"
# options = "ctrl:nocaps"
### BAR ###
# Options for configuring a bar program. The desktop bar (if any) is often used to display
# information such as current workspaces, system information, and open windows.
[bar]
command = "waybar" # note this is a command to execute: this program must be installed to work
update-signal-number = 1
### IPC ###
# Inter-process communication settings.
[ipc]
# The filename to which Vivarium will write workspace state information whenever something changes.
# Programs can watch this file to display the workspace status.
# This is a hacky solution that will be deprecated at some point.
# workspaces-filename = "/path/to/some/file.txt"
### LAYOUTS ###
# Configure any number of layouts. Each workspace gets an independent copy of each layout.
# The following options are available for each layout:
# - name : The layout name to display in bar programs and logs, can be anything
# Defaults to matching the `layout` option.
# - layout : The name of the Vivarium layout function to use.
# Run `vivarium -h` to get a list of available layout names.
# - show-borders : If true, draw borders around windows. Defaults to true.
# - ignore-excluded-regions : If true, tile windows across the full workspace regardless of
# space reserved for bars, system tray etc.
#
# Run `vivarium --list-config-options` to get a list of available layouts.
[[layout]]
name = "Tall"
layout = "split"
[[layout]]
name = "Fullscreen"
layout = "fullscreen"
show-borders = false
[[layout]]
name = "Fullscreen No Borders"
layout = "fullscreen"
ignore-excluded-regions = true
show-borders = false
### KEYBINDS ###
# Configure any number of keybinds. The following options are available for each one:
# - modifiers : List of strings, not compulsory, defaults to ["meta"]
# - keysym : Keysym to bind to. The keysym is the value of the key as interpreted by your keyboard layout.
# You may not bind to both keysym and keycode in the same binding.
# - keycode : Keycode to bind to. The keycode is the numerical identifier of the hardware key.
# It always has the same value for a given physical key regardless of your keyboard layout.
# - action : Any Vivarium action.
# Run `vivarium -h` to show documentation of all available actions, or see examples below.
# - <action-arguments> : Arguments for the `action`, if applicable.
# See action documentation for available arguments.
#
# To find the keysym or keycode of a given key, use tools like `wev` or `xev`.
#
# Run `vivarium --list-config-options` to get a list of available keybind actions
[[keybind]]
keysym = "Q"
action = "terminate"
[[keybind]]
keysym = "T"
action = "do_exec"
executable = "alacritty"
[[keybind]]
modifiers = ["meta", "shift"]
keysym = "Return"
action = "do_exec"
executable = "alacritty"
[[keybind]]
keysym = "l"
action = "increment_divide"
increment = 0.05
[[keybind]]
keysym = "h"
action = "increment_divide"
increment = -0.05
[[keybind]]
keysym = "comma"
action = "increment_counter"
increment = 1
[[keybind]]
keysym = "period"
action = "increment_counter"
increment = -1
[[keybind]]
keysym = "j"
action = "next_window"
[[keybind]]
keysym = "k"
action = "prev_window"
[[keybind]]
keysym = "J"
action = "shift_active_window_down"
[[keybind]]
keysym = "K"
action = "shift_active_window_up"
[[keybind]]
keysym = "t"
action = "tile_window"
[[keybind]]
keysym = "e"
action = "right_output"
[[keybind]]
keysym = "w"
action = "left_output"
[[keybind]]
keysym = "space"
action = "next_layout"
[[keybind]]
keysym = "E"
action = "shift_active_window_to_right_output"
[[keybind]]
keysym = "W"
action = "shift_active_window_to_left_output"
[[keybind]]
keysym = "C"
action = "close_window"
[[keybind]]
keysym = "Return"
action = "make_window_main"
[[keybind]]
keysym = "R"
action = "reload_config"
[[keybind]]
keysym = "o"
action = "do_exec"
executable = "bemenu-run"
[[keybind]]
modifiers = []
keysym = "XF86AudioMute"
action = "do_shell"
command = "pactl set-sink-mute 0 toggle"
[[keybind]]
modifiers = []
keysym = "XF86AudioLowerVolume"
action = "do_shell"
command = "amixer -q sset Master 3%-"
[[keybind]]
modifiers = []
keysym = "XF86AudioRaiseVolume"
action = "do_shell"
command = "amixer -q sset Master 3%+"
### LIBINPUT CONFIG ###
# Create any number of libinput configurations. The following options are available for each libinput config:
# - device-name : A string to match libinput devices that should have your rules applied.
# - scroll-method : One of "no-scroll", "2-finger", "edge" or "scroll-button".
# - scroll-button : An integer representing the libinput button index to use for scrolling.
# Has no effect unless scroll-method="scroll-button".
# - middle-emulation : If true, emulate middle click events when clicking left and right simultaneously.
# Defaults to false.
# - left-handed : If true, switch left and right buttons. Defaults to false.
# - natural-scroll : If true, switch the scrolling direction from default style (scroll down => go down)
# to so-called "natural" style (scroll down => go up). Defaults to false.
# - disable-while-typing : If true, disables the device while typing. Defaults to false.
# - click-method : Method for determining which button is being clicked.
# One of "none", "areas" or "fingers". Defaults to "none"
# - tap-to-click : If true, enable tap to click on touchpads and similar devices. Defaults to true.
# - tap-button-map : Map from number of fingers (1,2,3) to clicked button when using tap-to-click.
# One of "left-right-middle" or "left-middle-right", other options not supported.
[[libinput-config]]
# Example libinput-config for a popular trackball:
device-name = "Logitech USB Trackball"
scroll-method = "scroll-button"
scroll-button = 8
middle-emulation = true
left-handed = false
natural-scroll = false
disable-while-typing = false
click-method = "none"
tap-to-click = true
tap-button-map = "left-right-middle"
### DEBUG ###
# Vivarium debug options included for completion. You will want to leave these with their
# default values under normal operation.
[debug]
# Draw a graphical indicator of what shell (XDG, XWayland, Layer) is providing each window surface.
mark-views-by-shell = false
# Draw a graphical indicator of what shell (i.e. normally what monitor) is currently active.
mark-active-output = false
# Damage tracking: "none" to draw every frame, "frame" to draw only damaged frames, "full"
# to draw only damaged regions of damaged frames
damage-tracking-mode = "frame"
# Draw the background red before drawing damaged regions, so only damaged regions are rendered
mark-undamaged-regions = false
# Draw a small square that cycles through red/green/blue each time a frame is drawn
mark-frame-draws = false