alacritty.yml (18350B)
1 # Configuration for Alacritty, the GPU enhanced terminal emulator.
2
3 # Any items in the `env` entry below will be added as
4 # environment variables. Some entries may override variables
5 # set by alacritty itself.
6 #env:
7 # TERM variable
8 #
9 # This value is used to set the `$TERM` environment variable for
10 # each instance of Alacritty. If it is not present, alacritty will
11 # check the local terminfo database and use 'alacritty' if it is
12 # available, otherwise 'xterm-256color' is used.
13 #TERM: xterm-256color
14
15 window:
16 # Window dimensions (changes require restart)
17 #
18 # Specified in number of columns/lines, not pixels.
19 # If both are `0`, this setting is ignored.
20 dimensions:
21 columns: 80
22 lines: 24
23
24 # Window padding (changes require restart)
25 #
26 # Blank space added around the window in pixels. This padding is scaled
27 # by DPI and the specified value is always added at both opposing sides.
28 padding:
29 x: 2
30 y: 2
31
32 # Spread additional padding evenly around the terminal content.
33 dynamic_padding: false
34
35 dynamic_title: true
36
37 # Window decorations
38 #
39 # Values for `decorations`:
40 # - full: Borders and title bar
41 # - none: Neither borders nor title bar
42 decorations: full
43
44 # When true, alacritty starts maximized.
45 window.startup_mode: maximized
46
47 scrolling:
48 # Maximum number of lines in the scrollback buffer.
49 # Specifying '0' will disable scrolling.
50 history: 10000
51
52 # Number of lines the viewport will move for every line scrolled when
53 # scrollback is enabled (history > 0).
54 multiplier: 3
55
56 # Font configuration (changes require restart)
57 #
58 # Important font attributes like antialiasing, subpixel aa, and hinting can be
59 # controlled through fontconfig. Specifically, the following attributes should
60 # have an effect:
61 # - hintstyle
62 # - antialias
63 # - lcdfilter
64 # - rgba
65 #
66 # For instance, if you wish to disable subpixel antialiasing, you might set the
67 # rgba property to `none`. If you wish to completely disable antialiasing, you
68 # can set antialias to `false`.
69 #
70 # Please see these resources for more information on how to use fontconfig:
71 # - https://wiki.archlinux.org/index.php/font_configuration#Fontconfig_configuration
72 # - file:///usr/share/doc/fontconfig/fontconfig-user.html
73 font:
74 # Normal (roman) font face
75 normal:
76 family: Iosevka Term SS09
77 # The `style` can be specified to pick a specific face.
78 style: Regular
79
80 # Bold font face
81 bold:
82 family: Iosevka Term SS09
83 # The `style` can be specified to pick a specific face.
84 style: Bold
85
86 # Italic font face
87 italic:
88 family: Iosevka Term SS09
89 # The `style` can be specified to pick a specific face.
90 style: Italic
91
92 # Point size
93 size: 12.0
94
95 # Offset is the extra space around each character. `offset.y` can be thought of
96 # as modifying the line spacing, and `offset.x` as modifying the letter spacing.
97 offset:
98 x: 0
99 y: 0
100
101 # Glyph offset determines the locations of the glyphs within their cells with
102 # the default being at the bottom. Increasing `x` moves the glyph to the right,
103 # increasing `y` moves the glyph upwards.
104 glyph_offset:
105 x: 0
106 y: 0
107
108 debug:
109 # Display the time it takes to redraw each frame.
110 render_timer: false
111
112 # Keep the log file after quitting Alacritty.
113 persistent_logging: false
114
115 # If `true`, bold text is drawn using the bright color variants.
116 draw_bold_text_with_bright_colors: false
117
118 # Colors (Gruvbox Dark)
119 colors:
120 # Default colors
121 primary:
122 background: '0x282828'
123 foreground: '0xebdbb2'
124
125 # Bright and dim foreground colors
126 #
127 # The dimmed foreground color is calculated automatically if it is not present.
128 # If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
129 # is `false`, the normal foreground color will be used.
130 #dim_foreground: '0x9a9a9a'
131 #bright_foreground: '0xffffff'
132
133 # Cursor colors
134 #
135 # Colors which should be used to draw the terminal cursor. If these are unset,
136 # the cursor color will be the inverse of the cell color.
137 cursor:
138 text: '0x282828'
139 cursor: '0xb8bb26'
140
141 # Normal colors
142 normal:
143 black: '0x282828'
144 red: '0xcc241d'
145 green: '0x98971a'
146 yellow: '0xd79921'
147 blue: '0x458588'
148 magenta: '0xb16286'
149 cyan: '0x689d6a'
150 white: '0xa89984'
151
152 # Bright colors
153 bright:
154 black: '0x928374'
155 red: '0xfb4934'
156 green: '0xb8bb26'
157 yellow: '0xfabd2f'
158 blue: '0x83a598'
159 magenta: '0xd3869b'
160 cyan: '0x8ec97c'
161 white: '0xebdbb2'
162
163 # Dim colors
164 #
165 # If the dim colors are not set, they will be calculated automatically based
166 # on the `normal` colors.
167 # dim:
168 # black: '0x333333'
169 # red: '0xf2777a'
170 # green: '0x99cc99'
171 # yellow: '0xffcc66'
172 # blue: '0x6699cc'
173 # magenta: '0xcc99cc'
174 # cyan: '0x66cccc'
175 # white: '0xdddddd'
176
177 # Indexed Colors
178 #
179 # The indexed colors include all colors from 16 to 256.
180 # When these are not set, they're filled with sensible defaults.
181 #indexed_colors:
182 # - { index: 16, color: '0x000000' }
183
184 # Visual Bell
185 #
186 # Any time the BEL code is received, Alacritty "rings" the visual bell. Once
187 # rung, the terminal background will be set to white and transition back to the
188 # default background color. You can control the rate of this transition by
189 # setting the `duration` property (represented in milliseconds). You can also
190 # configure the transition function by setting the `animation` property.
191 #
192 # Values for `animation`:
193 # - Ease
194 # - EaseOut
195 # - EaseOutSine
196 # - EaseOutQuad
197 # - EaseOutCubic
198 # - EaseOutQuart
199 # - EaseOutQuint
200 # - EaseOutExpo
201 # - EaseOutCirc
202 # - Linear
203 #
204 # Specifying a `duration` of `0` will disable the visual bell.
205 bell:
206 animation: EaseOutExpo
207 duration: 0
208 color: '0xffffff'
209
210 # Background opacity
211 #
212 # Window opacity as a floating point number from `0.0` to `1.0`.
213 # The value `0.0` is completely transparent and `1.0` is opaque.
214 background_opacity: 0.95
215
216 # Mouse bindings
217 #
218 # Available fields:
219 # - mouse
220 # - action
221 # - mods (optional)
222 #
223 # Values for `mouse`:
224 # - Middle
225 # - Left
226 # - Right
227 # - Numeric identifier such as `5`
228 #
229 # All available `mods` and `action` values are documented in the key binding
230 # section.
231 mouse_bindings:
232 - { mouse: Middle, action: PasteSelection }
233
234 mouse:
235 # Click settings
236 #
237 # The `double_click` and `triple_click` settings control the time
238 # alacritty should wait for accepting multiple clicks as one double
239 # or triple click.
240 double_click: { threshold: 300 }
241 triple_click: { threshold: 300 }
242
243 # If this is `true`, the cursor is temporarily hidden when typing.
244 hide_when_typing: false
245
246 url:
247 # URL launcher
248 #
249 # This program is executed when clicking on a text which is recognized as a URL.
250 # The URL is always added to the command as the last parameter.
251 launcher: xdg-open
252
253 # URL modifiers
254 #
255 # These are the modifiers that need to be held down for opening URLs when clicking
256 # on them. The available modifiers are documented in the key binding section.
257 #modifiers: Control|Shift
258
259 selection:
260 semantic_escape_chars: ",│`|:\"' ()[]{}<>"
261
262 # When set to `true`, selected text will be copied to both the primary and
263 # the selection clipboard. Otherwise, it will only be copied to the selection
264 # clipboard.
265 save_to_clipboard: true
266
267 cursor:
268 # Cursor style
269 #
270 # Values for 'style':
271 # - ▇ Block
272 # - _ Underline
273 # - | Beam
274 style: Block
275
276 # If this is `true`, the cursor will be rendered as a hollow box when the
277 # window is not focused.
278 unfocused_hollow: true
279
280 # Live config reload (changes require restart)
281 live_config_reload: true
282
283 # Shell
284 #
285 # You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
286 # Entries in `shell.args` are passed unmodified as arguments to the shell.
287 #shell:
288 # program: /bin/bash
289 # args:
290 # - --login
291
292 # Key bindings
293 #
294 # Key bindings are specified as a list of objects. Each binding will specify
295 # a key and modifiers required to trigger it, terminal modes where the binding
296 # is applicable, and what should be done when the key binding fires. It can
297 # either send a byte sequnce to the running application (`chars`), execute
298 # a predefined action (`action`) or fork and execute a specified command plus
299 # arguments (`command`).
300 #
301 # Example:
302 # `- { key: V, mods: Command, action: Paste }`
303 #
304 # Available fields:
305 # - key
306 # - mods (optional)
307 # - chars | action | command (exactly one required)
308 # - mode (optional)
309 #
310 # Values for `key`:
311 # - `A` -> `Z`
312 # - `F1` -> `F12`
313 # - `Key1` -> `Key0`
314 #
315 # A full list with available key codes can be found here:
316 # https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
317 #
318 # Instead of using the name of the keys, the `key` field also supports using
319 # the scancode of the desired key. Scancodes have to be specified as a
320 # decimal number.
321 # This command will allow you to display the hex scancodes for certain keys:
322 # `showkey --scancodes`
323 #
324 # Values for `mods`:
325 # - Command
326 # - Control
327 # - Shift
328 # - Alt
329 #
330 # Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
331 # Whitespace and capitalization is relevant and must match the example.
332 #
333 # Values for `chars`:
334 # The `chars` field writes the specified string to the terminal. This makes
335 # it possible to pass escape sequences.
336 # To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
337 # the command `showkey -a` outside of tmux.
338 # Note that applications use terminfo to map escape sequences back to
339 # keys. It is therefore required to update the terminfo when
340 # changing an escape sequence.
341 #
342 # Values for `action`:
343 # - Paste
344 # - PasteSelection
345 # - Copy
346 # - IncreaseFontSize
347 # - DecreaseFontSize
348 # - ResetFontSize
349 # - ScrollPageUp
350 # - ScrollPageDown
351 # - ScrollToTop
352 # - ScrollToBottom
353 # - ClearHistory
354 # - Hide
355 # - Quit
356 # - ClearLogNotice
357 #
358 # Values for `command`:
359 # The `command` field must be a map containing a `program` string and
360 # an `args` array of command line parameter strings.
361 #
362 # Example:
363 # `command: { program: "alacritty", args: ["-e", "vttest"] }`
364 #
365 # Values for `mode`:
366 # - ~AppCursor
367 # - AppCursor
368 # - ~AppKeypad
369 # - AppKeypad
370 key_bindings:
371 - { key: V, mods: Control|Shift, action: Paste }
372 - { key: C, mods: Control|Shift, action: Copy }
373 - { key: Paste, action: Paste }
374 - { key: Copy, action: Copy }
375 - { key: Q, mods: Command, action: Quit }
376 - { key: W, mods: Command, action: Quit }
377 - { key: Insert, mods: Shift, action: PasteSelection }
378 - { key: Key0, mods: Control, action: ResetFontSize }
379 - { key: Equals, mods: Control, action: IncreaseFontSize }
380 - { key: Minus, mods: Control, action: DecreaseFontSize }
381 - { key: L, mods: Control, action: ClearLogNotice }
382 - { key: L, mods: Control, chars: "\x0c" }
383 - { key: Home, chars: "\x1bOH", mode: AppCursor }
384 - { key: Home, chars: "\x1b[H", mode: ~AppCursor }
385 - { key: End, chars: "\x1bOF", mode: AppCursor }
386 - { key: End, chars: "\x1b[F", mode: ~AppCursor }
387 - { key: PageUp, mods: Shift, chars: "\x1b[5;2~" }
388 - { key: PageUp, mods: Control, chars: "\x1b[5;5~" }
389 - { key: PageUp, chars: "\x1b[5~" }
390 - { key: PageDown, mods: Shift, chars: "\x1b[6;2~" }
391 - { key: PageDown, mods: Control, chars: "\x1b[6;5~" }
392 - { key: PageDown, chars: "\x1b[6~" }
393 - { key: Tab, mods: Shift, chars: "\x1b[Z" }
394 - { key: Back, chars: "\x7f" }
395 - { key: Back, mods: Alt, chars: "\x1b\x7f" }
396 - { key: Insert, chars: "\x1b[2~" }
397 - { key: Delete, chars: "\x1b[3~" }
398 - { key: Left, mods: Shift, chars: "\x1b[1;2D" }
399 - { key: Left, mods: Control, chars: "\x1b[1;5D" }
400 - { key: Left, mods: Alt, chars: "\x1b[1;3D" }
401 - { key: Left, chars: "\x1b[D", mode: ~AppCursor }
402 - { key: Left, chars: "\x1bOD", mode: AppCursor }
403 - { key: Right, mods: Shift, chars: "\x1b[1;2C" }
404 - { key: Right, mods: Control, chars: "\x1b[1;5C" }
405 - { key: Right, mods: Alt, chars: "\x1b[1;3C" }
406 - { key: Right, chars: "\x1b[C", mode: ~AppCursor }
407 - { key: Right, chars: "\x1bOC", mode: AppCursor }
408 - { key: Up, mods: Shift, chars: "\x1b[1;2A" }
409 - { key: Up, mods: Control, chars: "\x1b[1;5A" }
410 - { key: Up, mods: Alt, chars: "\x1b[1;3A" }
411 - { key: Up, chars: "\x1b[A", mode: ~AppCursor }
412 - { key: Up, chars: "\x1bOA", mode: AppCursor }
413 - { key: Down, mods: Shift, chars: "\x1b[1;2B" }
414 - { key: Down, mods: Control, chars: "\x1b[1;5B" }
415 - { key: Down, mods: Alt, chars: "\x1b[1;3B" }
416 - { key: Down, chars: "\x1b[B", mode: ~AppCursor }
417 - { key: Down, chars: "\x1bOB", mode: AppCursor }
418 - { key: F1, chars: "\x1bOP" }
419 - { key: F2, chars: "\x1bOQ" }
420 - { key: F3, chars: "\x1bOR" }
421 - { key: F4, chars: "\x1bOS" }
422 - { key: F5, chars: "\x1b[15~" }
423 - { key: F6, chars: "\x1b[17~" }
424 - { key: F7, chars: "\x1b[18~" }
425 - { key: F8, chars: "\x1b[19~" }
426 - { key: F9, chars: "\x1b[20~" }
427 - { key: F10, chars: "\x1b[21~" }
428 - { key: F11, chars: "\x1b[23~" }
429 - { key: F12, chars: "\x1b[24~" }
430 - { key: F1, mods: Shift, chars: "\x1b[1;2P" }
431 - { key: F2, mods: Shift, chars: "\x1b[1;2Q" }
432 - { key: F3, mods: Shift, chars: "\x1b[1;2R" }
433 - { key: F4, mods: Shift, chars: "\x1b[1;2S" }
434 - { key: F5, mods: Shift, chars: "\x1b[15;2~" }
435 - { key: F6, mods: Shift, chars: "\x1b[17;2~" }
436 - { key: F7, mods: Shift, chars: "\x1b[18;2~" }
437 - { key: F8, mods: Shift, chars: "\x1b[19;2~" }
438 - { key: F9, mods: Shift, chars: "\x1b[20;2~" }
439 - { key: F10, mods: Shift, chars: "\x1b[21;2~" }
440 - { key: F11, mods: Shift, chars: "\x1b[23;2~" }
441 - { key: F12, mods: Shift, chars: "\x1b[24;2~" }
442 - { key: F1, mods: Control, chars: "\x1b[1;5P" }
443 - { key: F2, mods: Control, chars: "\x1b[1;5Q" }
444 - { key: F3, mods: Control, chars: "\x1b[1;5R" }
445 - { key: F4, mods: Control, chars: "\x1b[1;5S" }
446 - { key: F5, mods: Control, chars: "\x1b[15;5~" }
447 - { key: F6, mods: Control, chars: "\x1b[17;5~" }
448 - { key: F7, mods: Control, chars: "\x1b[18;5~" }
449 - { key: F8, mods: Control, chars: "\x1b[19;5~" }
450 - { key: F9, mods: Control, chars: "\x1b[20;5~" }
451 - { key: F10, mods: Control, chars: "\x1b[21;5~" }
452 - { key: F11, mods: Control, chars: "\x1b[23;5~" }
453 - { key: F12, mods: Control, chars: "\x1b[24;5~" }
454 - { key: F1, mods: Alt, chars: "\x1b[1;6P" }
455 - { key: F2, mods: Alt, chars: "\x1b[1;6Q" }
456 - { key: F3, mods: Alt, chars: "\x1b[1;6R" }
457 - { key: F4, mods: Alt, chars: "\x1b[1;6S" }
458 - { key: F5, mods: Alt, chars: "\x1b[15;6~" }
459 - { key: F6, mods: Alt, chars: "\x1b[17;6~" }
460 - { key: F7, mods: Alt, chars: "\x1b[18;6~" }
461 - { key: F8, mods: Alt, chars: "\x1b[19;6~" }
462 - { key: F9, mods: Alt, chars: "\x1b[20;6~" }
463 - { key: F10, mods: Alt, chars: "\x1b[21;6~" }
464 - { key: F11, mods: Alt, chars: "\x1b[23;6~" }
465 - { key: F12, mods: Alt, chars: "\x1b[24;6~" }
466 - { key: F1, mods: Super, chars: "\x1b[1;3P" }
467 - { key: F2, mods: Super, chars: "\x1b[1;3Q" }
468 - { key: F3, mods: Super, chars: "\x1b[1;3R" }
469 - { key: F4, mods: Super, chars: "\x1b[1;3S" }
470 - { key: F5, mods: Super, chars: "\x1b[15;3~" }
471 - { key: F6, mods: Super, chars: "\x1b[17;3~" }
472 - { key: F7, mods: Super, chars: "\x1b[18;3~" }
473 - { key: F8, mods: Super, chars: "\x1b[19;3~" }
474 - { key: F9, mods: Super, chars: "\x1b[20;3~" }
475 - { key: F10, mods: Super, chars: "\x1b[21;3~" }
476 - { key: F11, mods: Super, chars: "\x1b[23;3~" }
477 - { key: F12, mods: Super, chars: "\x1b[24;3~" }