74a93df1a2d67ef54d0f7904c120a74afed50975
[dotfiles/.git] / .config / alacritty.yml
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 it self.
6 env:
7   # TERM env customization.
8   #
9   # If this property is not set, alacritty will set it to xterm-256color.
10   #
11   # Note that some xterm terminfo databases don't declare support for italics.
12   # You can verify this by checking for the presence of `smso` and `sitm` in
13   # `infocmp xterm-256color`.
14   TERM: xterm-256color
15
16 window:
17   # Window dimensions in character columns and lines
18   # (changes require restart)
19   dimensions:
20     columns: 80
21     lines: 23
22
23   # Adds this many blank pixels of padding around the window
24   # Units are physical pixels; this is not DPI aware.
25   # (change requires restart)
26   padding:
27     x: 1
28     y: 1
29
30   # Spread additional padding evenly around the terminal content.
31   dynamic_padding: false
32
33   # Window decorations
34   # Setting this to false will result in window without borders and title bar.
35   decorations: none
36
37 # When true, bold text is drawn using the bright variant of colors.
38 draw_bold_text_with_bright_colors: true
39
40 scrolling:
41   # Maximum number of lines in the scrollback buffer.
42   # Specifying '0' will disable scrolling.
43   history: 10000
44
45   # Number of lines the viewport will move for every line scrolled when
46   # scrollback is enabled (history > 0).
47   multiplier: 3
48
49 # Font configuration (changes require restart)
50 font:
51   # The normal (roman) font face to use.
52   normal:
53     family: "Fira Code"
54     style: Regular
55
56   # The bold font face
57   bold:
58     family: "Fira Code" 
59     style: Bold
60
61   # The italic font face
62   italic:
63     family: "Fira Code" 
64     style: Light
65
66   # Point size of the font
67   size: 12
68
69   # Offset is the extra space around each character. offset.y can be thought of
70   # as modifying the linespacing, and offset.x as modifying the letter spacing.
71   #offset:
72     #x: 0
73     #y: 0
74
75   # Glyph offset determines the locations of the glyphs within their cells with
76   # the default being at the bottom. Increase the x offset to move the glyph to
77   # the right, increase the y offset to move the glyph upward.
78   #glyph_offset:
79     #x: 0
80     #y: 0
81
82   # OS X only: use thin stroke font rendering. Thin strokes are suitable
83   # for retina displays, but for non-retina you probably want this set to
84   # false.
85   #use_thin_strokes: true
86
87 debug:
88   # Should display the render timer
89   render_timer: false
90
91 # Colors (Tomorrow Night Bright)
92 colors:
93   # Default colors
94   primary:
95     background: '0x191919'
96     foreground: '0xeaeaea'
97
98   # Colors the cursor will use if `custom_cursor_colors` is true
99   cursor:
100     text:   '0xf1c1c1'
101     cursor: '0xff2600'
102
103   # Normal colors
104   normal:
105     black:   '0x000000'
106     red:     '0xd54e53'
107     green:   '0xb9ca4a'
108     yellow:  '0xe6c547'
109     blue:    '0x7aa6da'
110     magenta: '0xc397d8'
111     cyan:    '0x70c0ba'
112     white:   '0xffffff'
113
114   # Bright colors
115   bright:
116     black:   '0x666666'
117     red:     '0xff3334'
118     green:   '0x9ec400'
119     yellow:  '0xe7c547'
120     blue:    '0x7aa6da'
121     magenta: '0xb77ee0'
122     cyan:    '0x54ced6'
123     white:   '0xffffff'
124
125   # Dim colors (Optional)
126   dim:
127     black:   '0x333333'
128     red:     '0xf2777a'
129     green:   '0x99cc99'
130     yellow:  '0xffcc66'
131     blue:    '0x6699cc'
132     magenta: '0xcc99cc'
133     cyan:    '0x66cccc'
134     white:   '0xdddddd'
135
136
137 # Visual Bell
138 #
139 # Any time the BEL code is received, Alacritty "rings" the visual bell. Once
140 # rung, the terminal background will be set to white and transition back to the
141 # default background color. You can control the rate of this transition by
142 # setting the `duration` property (represented in milliseconds). You can also
143 # configure the transition function by setting the `animation` property.
144 #
145 # Possible values for `animation`
146 # `Ease`
147 # `EaseOut`
148 # `EaseOutSine`
149 # `EaseOutQuad`
150 # `EaseOutCubic`
151 # `EaseOutQuart`
152 # `EaseOutQuint`
153 # `EaseOutExpo`
154 # `EaseOutCirc`
155 # `Linear`
156 #
157 # To completely disable the visual bell, set its duration to 0.
158 #
159 bell:
160   animation: EaseOutExpo
161   duration: 0
162
163 # Background opacity
164 background_opacity: 0.80
165
166 # Mouse bindings
167 #
168 # Currently doesn't support modifiers. Both the `mouse` and `action` fields must
169 # be specified.
170 #
171 # Values for `mouse`:
172 # - Middle
173 # - Left
174 # - Right
175 # - Numeric identifier such as `5`
176 #
177 # Values for `action`:
178 # - Paste
179 # - PasteSelection
180 # - Copy (TODO)
181 mouse_bindings:
182   - { mouse: Middle, action: PasteSelection }
183
184 mouse:
185   # Click settings
186   #
187   # The `double_click` and `triple_click` settings control the time
188   # alacritty should wait for accepting multiple clicks as one double
189   # or triple click.
190   double_click: { threshold: 300 }
191   triple_click: { threshold: 300 }
192
193   # If this is `true`, the cursor is temporarily hidden when typing.
194   hide_when_typing: true
195
196   url:
197     # URL launcher
198     #
199     # This program is executed when clicking on a text which is recognized as a URL.
200     # The URL is always added to the command as the last parameter.
201     launcher: qutebrowser
202
203     # URL modifiers
204     #
205     # These are the modifiers that need to be held down for opening URLs when clicking
206     # on them. The available modifiers are documented in the key binding section.
207     #modifiers: Control|Shift
208
209 selection:
210   semantic_escape_chars: ",│`|:\"' ()[]{}<>"
211
212   # When set to `true`, selected text will be copied to both the primary and
213   # the selection clipboard. Otherwise, it will only be copied to the selection
214   # clipboard.
215   save_to_clipboard: true
216
217 window.dynamic_title: true
218
219 cursor:
220   # Cursor style
221   #
222   # Values for 'style':
223   #   - ▇ Block
224   #   - _ Underline
225   #   - | Beam
226   style: Beam
227   unfocused_hollow: true
228
229 # Live config reload (changes require restart)
230 live_config_reload: true
231
232 # Shell
233 #
234 # You can set shell.program to the path of your favorite shell, e.g. /bin/zsh.
235 # Entries in shell.args are passed unmodified as arguments to the shell.
236 #
237
238 # Key bindings
239 #
240 # Each binding is defined as an object with some properties. Most of the
241 # properties are optional. All of the alphabetical keys should have a letter for
242 # the `key` value such as `V`. Function keys are probably what you would expect
243 # as well (F1, F2, ..). The number keys above the main keyboard are encoded as
244 # `Key1`, `Key2`, etc. Keys on the number pad are encoded `Number1`, `Number2`,
245 # etc.  These all match the glutin::VirtualKeyCode variants.
246 #
247 # A list with all available `key` names can be found here:
248 # https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
249 #
250 # Possible values for `mods`
251 # `Command`, `Super` refer to the super/command/windows key
252 # `Control` for the control key
253 # `Shift` for the Shift key
254 # `Alt` and `Option` refer to alt/option
255 #
256 # mods may be combined with a `|`. For example, requiring control and shift
257 # looks like:
258 #
259 # mods: Control|Shift
260 #
261 # The parser is currently quite sensitive to whitespace and capitalization -
262 # capitalization must match exactly, and piped items must not have whitespace
263 # around them.
264 #
265 # Either an `action`, `chars`, or `command` field must be present.
266 #   `action` must be one of `Paste`, `PasteSelection`, `Copy`, or `Quit`.
267 #   `chars` writes the specified string every time that binding is activated.
268 #     These should generally be escape sequences, but they can be configured to
269 #     send arbitrary strings of bytes.
270 #   `command` must be a map containing a `program` string, and `args` array of
271 #     strings. For example:
272 #     - { ... , command: { program: "alacritty", args: ["-e", "vttest"] } }
273 key_bindings:
274   - { key: V,        mods: Command, action: Paste                        }
275   - { key: C,        mods: Command, action: Copy                         }
276   - { key: Q,        mods: Command, action: Quit                         }
277   - { key: N,        mods: Command, command: { program: "open", args: ["-nb", "io.alacritty"] } }
278   - { key: Home,                    chars: "\x1bOH",   mode: AppCursor   }
279   - { key: Home,                    chars: "\x1b[H",   mode: ~AppCursor  }
280   - { key: End,                     chars: "\x1bOF",   mode: AppCursor   }
281   - { key: End,                     chars: "\x1b[F",   mode: ~AppCursor  }
282   - { key: Key0,     mods: Command, action: ResetFontSize                }
283   - { key: Equals,   mods: Command, action: IncreaseFontSize             }
284   - { key: Minus,    mods: Command, action: DecreaseFontSize             }
285   - { key: PageUp,   mods: Shift,   chars: "\x1b[5;2~"                   }
286   - { key: PageUp,   mods: Control, chars: "\x1b[5;5~"                   }
287   - { key: PageUp,                  chars: "\x1b[5~"                     }
288   - { key: PageDown, mods: Shift,   chars: "\x1b[6;2~"                   }
289   - { key: PageDown, mods: Control, chars: "\x1b[6;5~"                   }
290   - { key: PageDown,                chars: "\x1b[6~"                     }
291   - { key: Tab,      mods: Shift,   chars: "\x1b[Z"                      }
292   - { key: Back,                    chars: "\x7f"                        }
293   - { key: Back,     mods: Alt,     chars: "\x1b\x7f"                    }
294   - { key: Insert,                  chars: "\x1b[2~"                     }
295   - { key: Delete,                  chars: "\x1b[3~"                     }
296   - { key: Left,     mods: Shift,   chars: "\x1b[1;2D"                   }
297   - { key: Left,     mods: Control, chars: "\x1b[1;5D"                   }
298   - { key: Left,     mods: Alt,     chars: "\x1b[1;3D"                   }
299   - { key: Left,                    chars: "\x1b[D",   mode: ~AppCursor  }
300   - { key: Left,                    chars: "\x1bOD",   mode: AppCursor   }
301   - { key: Right,    mods: Shift,   chars: "\x1b[1;2C"                   }
302   - { key: Right,    mods: Control, chars: "\x1b[1;5C"                   }
303   - { key: Right,    mods: Alt,     chars: "\x1b[1;3C"                   }
304   - { key: Right,                   chars: "\x1b[C",   mode: ~AppCursor  }
305   - { key: Right,                   chars: "\x1bOC",   mode: AppCursor   }
306   - { key: Up,       mods: Shift,   chars: "\x1b[1;2A"                   }
307   - { key: Up,       mods: Control, chars: "\x1b[1;5A"                   }
308   - { key: Up,       mods: Alt,     chars: "\x1b[1;3A"                   }
309   - { key: Up,                      chars: "\x1b[A",   mode: ~AppCursor  }
310   - { key: Up,                      chars: "\x1bOA",   mode: AppCursor   }
311   - { key: Down,     mods: Shift,   chars: "\x1b[1;2B"                   }
312   - { key: Down,     mods: Control, chars: "\x1b[1;5B"                   }
313   - { key: Down,     mods: Alt,     chars: "\x1b[1;3B"                   }
314   - { key: Down,                    chars: "\x1b[B",   mode: ~AppCursor  }
315   - { key: Down,                    chars: "\x1bOB",   mode: AppCursor   }
316   - { key: F1,                      chars: "\x1bOP"                      }
317   - { key: F2,                      chars: "\x1bOQ"                      }
318   - { key: F3,                      chars: "\x1bOR"                      }
319   - { key: F4,                      chars: "\x1bOS"                      }
320   - { key: F5,                      chars: "\x1b[15~"                    }
321   - { key: F6,                      chars: "\x1b[17~"                    }
322   - { key: F7,                      chars: "\x1b[18~"                    }
323   - { key: F8,                      chars: "\x1b[19~"                    }
324   - { key: F9,                      chars: "\x1b[20~"                    }
325   - { key: F10,                     chars: "\x1b[21~"                    }
326   - { key: F11,                     chars: "\x1b[23~"                    }
327   - { key: F12,                     chars: "\x1b[24~"                    }
328   - { key: F1,       mods: Shift,   chars: "\x1b[1;2P"                   }
329   - { key: F2,       mods: Shift,   chars: "\x1b[1;2Q"                   }
330   - { key: F3,       mods: Shift,   chars: "\x1b[1;2R"                   }
331   - { key: F4,       mods: Shift,   chars: "\x1b[1;2S"                   }
332   - { key: F5,       mods: Shift,   chars: "\x1b[15;2~"                  }
333   - { key: F6,       mods: Shift,   chars: "\x1b[17;2~"                  }
334   - { key: F7,       mods: Shift,   chars: "\x1b[18;2~"                  }
335   - { key: F8,       mods: Shift,   chars: "\x1b[19;2~"                  }
336   - { key: F9,       mods: Shift,   chars: "\x1b[20;2~"                  }
337   - { key: F10,      mods: Shift,   chars: "\x1b[21;2~"                  }
338   - { key: F11,      mods: Shift,   chars: "\x1b[23;2~"                  }
339   - { key: F12,      mods: Shift,   chars: "\x1b[24;2~"                  }
340   - { key: F1,       mods: Control, chars: "\x1b[1;5P"                   }
341   - { key: F2,       mods: Control, chars: "\x1b[1;5Q"                   }
342   - { key: F3,       mods: Control, chars: "\x1b[1;5R"                   }
343   - { key: F4,       mods: Control, chars: "\x1b[1;5S"                   }
344   - { key: F5,       mods: Control, chars: "\x1b[15;5~"                  }
345   - { key: F6,       mods: Control, chars: "\x1b[17;5~"                  }
346   - { key: F7,       mods: Control, chars: "\x1b[18;5~"                  }
347   - { key: F8,       mods: Control, chars: "\x1b[19;5~"                  }
348   - { key: F9,       mods: Control, chars: "\x1b[20;5~"                  }
349   - { key: F10,      mods: Control, chars: "\x1b[21;5~"                  }
350   - { key: F11,      mods: Control, chars: "\x1b[23;5~"                  }
351   - { key: F12,      mods: Control, chars: "\x1b[24;5~"                  }
352   - { key: F1,       mods: Alt,     chars: "\x1b[1;6P"                   }
353   - { key: F2,       mods: Alt,     chars: "\x1b[1;6Q"                   }
354   - { key: F3,       mods: Alt,     chars: "\x1b[1;6R"                   }
355   - { key: F4,       mods: Alt,     chars: "\x1b[1;6S"                   }
356   - { key: F5,       mods: Alt,     chars: "\x1b[15;6~"                  }
357   - { key: F6,       mods: Alt,     chars: "\x1b[17;6~"                  }
358   - { key: F7,       mods: Alt,     chars: "\x1b[18;6~"                  }
359   - { key: F8,       mods: Alt,     chars: "\x1b[19;6~"                  }
360   - { key: F9,       mods: Alt,     chars: "\x1b[20;6~"                  }
361   - { key: F10,      mods: Alt,     chars: "\x1b[21;6~"                  }
362   - { key: F11,      mods: Alt,     chars: "\x1b[23;6~"                  }
363   - { key: F12,      mods: Alt,     chars: "\x1b[24;6~"                  }
364   - { key: F1,       mods: Command, chars: "\x1b[1;3P"                   }
365   - { key: F2,       mods: Command, chars: "\x1b[1;3Q"                   }
366   - { key: F3,       mods: Command, chars: "\x1b[1;3R"                   }
367   - { key: F4,       mods: Command, chars: "\x1b[1;3S"                   }
368   - { key: F5,       mods: Command, chars: "\x1b[15;3~"                  }
369   - { key: F6,       mods: Command, chars: "\x1b[17;3~"                  }
370   - { key: F7,       mods: Command, chars: "\x1b[18;3~"                  }
371   - { key: F8,       mods: Command, chars: "\x1b[19;3~"                  }
372   - { key: F9,       mods: Command, chars: "\x1b[20;3~"                  }
373   - { key: F10,      mods: Command, chars: "\x1b[21;3~"                  }
374   - { key: F11,      mods: Command, chars: "\x1b[23;3~"                  }
375   - { key: F12,      mods: Command, chars: "\x1b[24;3~"                  }
376   - { key: D,        mods: Command,       chars: "\x06\x76" } 
377   - { key: D,        mods: Command|Shift, chars: "\x06\x73" }
378   - { key: W,        mods: Command,       chars: "\x06\x78" }
379   - { key: H,        mods: Command,       chars: "\x06\x68" }
380   - { key: J,        mods: Command,       chars: "\x06\x6a" }
381   - { key: K,        mods: Command,       chars: "\x06\x6b" }
382   - { key: L,        mods: Command,       chars: "\x06\x6c" }
383   - { key: T,        mods: Command,       chars: "\x06\x63" }
384   - { key: RBracket, mods: Command|Shift, chars: "\x06\x6e" }
385   - { key: LBracket, mods: Command|Shift, chars: "\x06\x70" }
386   - { key: Return,   mods: Command|Shift, chars: "\x06\x7a" }
387   - { key: Key1,     mods: Command,       chars: "\x06\x31" }
388   - { key: Key2,     mods: Command,       chars: "\x06\x32" }
389   - { key: Key3,     mods: Command,       chars: "\x06\x33" }
390   - { key: Key4,     mods: Command,       chars: "\x06\x34" }
391   - { key: Key5,     mods: Command,       chars: "\x06\x35" }
392   - { key: Key6,     mods: Command,       chars: "\x06\x36" }
393   - { key: Key7,     mods: Command,       chars: "\x06\x37" }
394   - { key: Key8,     mods: Command,       chars: "\x06\x38" }
395   - { key: Key9,     mods: Command,       chars: "\x06\x39" }
396   - { key: Left,     mods: Command,       chars: "\x06\x48" }
397   - { key: Down,     mods: Command,       chars: "\x06\x4a" }
398   - { key: Up,       mods: Command,       chars: "\x06\x4b" }
399   - { key: Right,    mods: Command,       chars: "\x06\x4c" }