# Configuration for Alacritty, the GPU enhanced terminal emulator.12# Any items in the `env` entry below will be added as3# environment variables. Some entries may override variables4# set by alacritty itself.5#env:6# TERM variable7#8# This value is used to set the `$TERM` environment variable for9# each instance of Alacritty. If it is not present, alacritty will10# check the local terminfo database and use `alacritty` if it is11# available, otherwise `xterm-256color` is used.12# TERM: xterm-256color1314window:15# Window dimensions (changes require restart)16#17# Specified in number of columns/lines, not pixels.18# If both are `0`, this setting is ignored.19dimensions:20columns: 021lines: 02223dynamic_title: true2425# Window position (changes require restart)26#27# Specified in number of pixels.28# If the position is not set, the window manager will handle the placement.29#position:30# x: 031# y: 03233# Window padding (changes require restart)34#35# Blank space added around the window in pixels. This padding is scaled36# by DPI and the specified value is always added at both opposing sides.37padding:38x: 539y: 04041# Spread additional padding evenly around the terminal content.42dynamic_padding: false4344# Window decorations45#46# Values for `decorations`:47# - full: Borders and title bar48# - none: Neither borders nor title bar49#50# Values for `decorations` (macOS only):51# - transparent: Title bar, transparent background and title bar buttons52# - buttonless: Title bar, transparent background, but no title bar buttons53decorations: full5455# Startup Mode (changes require restart)56#57# Values for `startup_mode`:58# - Windowed59# - Maximized60# - Fullscreen61#62# Values for `startup_mode` (macOS only):63# - SimpleFullscreen64startup_mode: Windowed6566# Window title67#title: Alacritty6869# Window class (Linux only):70#class: Alacritty7172scrolling:73# Maximum number of lines in the scrollback buffer.74# Specifying '0' will disable scrolling.75history: 100007677# Number of lines the viewport will move for every line scrolled when78# scrollback is enabled (history > 0).79multiplier: 38081# Faux Scrolling82#83# The `faux_multiplier` setting controls the number of lines the terminal84# should scroll when the alternate screen buffer is active. This is used85# to allow mouse scrolling for applications like `man`.86#87# Specifying `0` will disable faux scrolling.88# faux_multiplier: 38990# Scroll to the bottom when new text is written to the terminal.91# auto_scroll: false9293# Spaces per Tab (changes require restart)94#95# This setting defines the width of a tab in cells.96#97# Some applications, like Emacs, rely on knowing about the width of a tab.98# To prevent unexpected behavior in these applications, it's also required to99# change the `it` value in terminfo when altering this setting.100# tabspaces: 8101102# Font configuration (changes require restart)103font:104# Normal (roman) font face105normal:106# Font family107#108# Default:109# - (macOS) Menlo110# - (Linux) monospace111# - (Windows) Consolas112family: "monospace"113114# The `style` can be specified to pick a specific face.115style: Regular116117# Bold font face118bold:119# Font family120#121# If the bold family is not specified, it will fall back to the122# value specified for the normal font.123family: "monospace"124125# The `style` can be specified to pick a specific face.126style: Bold127128# Italic font face129italic:130# Font family131#132# If the italic family is not specified, it will fall back to the133# value specified for the normal font.134family: "monospace"135136# The `style` can be specified to pick a specific face.137style: Italic138139# Point size140size: 11141142# Offset is the extra space around each character. `offset.y` can be thought of143# as modifying the line spacing, and `offset.x` as modifying the letter spacing.144offset:145x: 0146y: 0147148# Glyph offset determines the locations of the glyphs within their cells with149# the default being at the bottom. Increasing `x` moves the glyph to the right,150# increasing `y` moves the glyph upwards.151glyph_offset:152x: 0153y: 0154155# Thin stroke font rendering (macOS only)156#157# Thin strokes are suitable for retina displays, but for non-retina screens158# it is recommended to set `use_thin_strokes` to `false`159#160# macOS >= 10.14.x:161#162# If the font quality on non-retina display looks bad then set163# `use_thin_strokes` to `true` and enable font smoothing by running the164# following command:165# `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`166#167# This is a global setting and will require a log out or restart to take168# effect.169use_thin_strokes: true170171# If `true`, bold text is drawn using the bright color variants.172draw_bold_text_with_bright_colors: true173174# Colors (Gruvbox)175colors:176# Default colors177primary:178background: '0x282828'179foreground: '0xeaeaea'180181# Bright and dim foreground colors182#183# The dimmed foreground color is calculated automatically if it is not present.184# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`185# is `false`, the normal foreground color will be used.186#dim_foreground: '0x9a9a9a'187#bright_foreground: '0xffffff'188189# Cursor colors190#191# Colors which should be used to draw the terminal cursor. If these are unset,192# the cursor color will be the inverse of the cell color.193#cursor:194# text: '0x000000'195# cursor: '0xffffff'196197# Selection colors198#199# Colors which should be used to draw the selection area. If selection200# background is unset, selection color will be the inverse of the cell colors.201# If only text is unset the cell text color will remain the same.202#selection:203# text: '0xeaeaea'204# background: '0x404040'205206# Normal colors207normal:208black: '0x282828'209red: '0xcc241d'210green: '0xb8bb26'211yellow: '0xfabd2f'212blue: '0x83a598'213magenta: '0xd3869b'214cyan: '0x689d6a'215white: '0xebdbb2'216217# Bright colors218bright:219black: '0x666666'220red: '0xff3334'221green: '0x9ec400'222yellow: '0xe7c547'223blue: '0x7aa6da'224magenta: '0xb77ee0'225cyan: '0x54ced6'226white: '0xffffff'227228# Dim colors229#230# If the dim colors are not set, they will be calculated automatically based231# on the `normal` colors.232#dim:233# black: '0x000000'234# red: '0x8c3336'235# green: '0x7a8530'236# yellow: '0x97822e'237# blue: '0x506d8f'238# magenta: '0x80638e'239# cyan: '0x497e7a'240# white: '0x9a9a9a'241242# Indexed Colors243#244# The indexed colors include all colors from 16 to 256.245# When these are not set, they're filled with sensible defaults.246#247# Example:248# `- { index: 16, color: '0xff00ff' }`249#250indexed_colors: []251252# Visual Bell253#254# Any time the BEL code is received, Alacritty "rings" the visual bell. Once255# rung, the terminal background will be set to white and transition back to the256# default background color. You can control the rate of this transition by257# setting the `duration` property (represented in milliseconds). You can also258# configure the transition function by setting the `animation` property.259#260# Values for `animation`:261# - Ease262# - EaseOut263# - EaseOutSine264# - EaseOutQuad265# - EaseOutCubic266# - EaseOutQuart267# - EaseOutQuint268# - EaseOutExpo269# - EaseOutCirc270# - Linear271#272# Specifying a `duration` of `0` will disable the visual bell.273#visual_bell:274# animation: EaseOutExpo275# duration: 0276# color: '0xffffff'277278# Background opacity279#280# Window opacity as a floating point number from `0.0` to `1.0`.281# The value `0.0` is completely transparent and `1.0` is opaque.282background_opacity: 1.0283284# Mouse bindings285#286# Available fields:287# - mouse288# - action289# - mods (optional)290#291# Values for `mouse`:292# - Middle293# - Left294# - Right295# - Numeric identifier such as `5`296#297# All available `mods` and `action` values are documented in the key binding298# section.299mouse_bindings:300- { mouse: Middle, action: PasteSelection }301302mouse:303# Click settings304#305# The `double_click` and `triple_click` settings control the time306# alacritty should wait for accepting multiple clicks as one double307# or triple click.308double_click: { threshold: 300 }309triple_click: { threshold: 300 }310311# If this is `true`, the cursor is temporarily hidden when typing.312hide_when_typing: false313314#url:315# URL launcher316#317# This program is executed when clicking on a text which is recognized as a URL.318# The URL is always added to the command as the last parameter.319#320# When set to `None`, URL launching will be disabled completely.321#322# Default:323# - (macOS) open324# - (Linux) xdg-open325# - (Windows) explorer326#launcher:327# program: xdg-open328# args: []329330# URL modifiers331#332# These are the modifiers that need to be held down for opening URLs when clicking333# on them. The available modifiers are documented in the key binding section.334#modifiers: None335336selection:337semantic_escape_chars: ",│`|:\"' ()[]{}<>"338339# When set to `true`, selected text will be copied to the primary clipboard.340save_to_clipboard: false341342cursor:343# Cursor style344#345# Values for `style`:346# - ▇ Block347# - _ Underline348# - | Beam349style: Block350351# If this is `true`, the cursor will be rendered as a hollow box when the352# window is not focused.353unfocused_hollow: true354355# Live config reload (changes require restart)356live_config_reload: true357358# Shell359#360# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.361# Entries in `shell.args` are passed unmodified as arguments to the shell.362#363# Default:364# - (macOS) /bin/bash --login365# - (Linux) user login shell366# - (Windows) powershell367#shell:368# program: /bin/bash369# args:370# - --login371372# Startup directory373#374# Directory the shell is started in. If this is unset, or `None`, the working375# directory of the parent process will be used.376working_directory: None377378# Windows 10 ConPTY backend (Windows only)379#380# This will enable better color support and may resolve other issues,381# however this API and its implementation is still young and so is382# disabled by default, as stability may not be as good as the winpty383# backend.384#385# Alacritty will fall back to the WinPTY automatically if the ConPTY386# backend cannot be initialized.387enable_experimental_conpty_backend: false388389# Send ESC (\x1b) before characters when alt is pressed.390alt_send_esc: true391392debug:393# Display the time it takes to redraw each frame.394render_timer: false395396# Keep the log file after quitting Alacritty.397persistent_logging: false398399# Log level400#401# Values for `log_level`:402# - None403# - Error404# - Warn405# - Info406# - Debug407# - Trace408log_level: Warn409410# Print all received window events.411print_events: false412413# Record all characters and escape sequences as test data.414ref_test: false415416# Key bindings417#418# Key bindings are specified as a list of objects. Each binding will specify a419# key and modifiers required to trigger it, terminal modes where the binding is420# applicable, and what should be done when the key binding fires. It can either421# send a byte sequence to the running application (`chars`), execute a422# predefined action (`action`) or fork and execute a specified command plus423# arguments (`command`).424#425# Bindings are always filled by default, but will be replaced when a new binding426# with the same triggers is defined. To unset a default binding, it can be427# mapped to the `None` action.428#429# Example:430# `- { key: V, mods: Control|Shift, action: Paste }`431#432# Available fields:433# - key434# - mods (optional)435# - chars | action | command (exactly one required)436# - mode (optional)437#438# Values for `key`:439# - `A` -> `Z`440# - `F1` -> `F12`441# - `Key1` -> `Key0`442#443# A full list with available key codes can be found here:444# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants445#446# Instead of using the name of the keys, the `key` field also supports using447# the scancode of the desired key. Scancodes have to be specified as a448# decimal number.449# This command will allow you to display the hex scancodes for certain keys:450# `showkey --scancodes`451#452# Values for `mods`:453# - Command454# - Control455# - Option456# - Super457# - Shift458# - Alt459#460# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.461# Whitespace and capitalization is relevant and must match the example.462#463# Values for `chars`:464# The `chars` field writes the specified string to the terminal. This makes465# it possible to pass escape sequences.466# To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run467# the command `showkey -a` outside of tmux.468# Note that applications use terminfo to map escape sequences back to469# keys. It is therefore required to update the terminfo when470# changing an escape sequence.471#472# Values for `action`:473# - Paste474# - PasteSelection475# - Copy476# - IncreaseFontSize477# - DecreaseFontSize478# - ResetFontSize479# - ScrollPageUp480# - ScrollPageDown481# - ScrollLineUp482# - ScrollLineDown483# - ScrollToTop484# - ScrollToBottom485# - ClearHistory486# - Hide487# - Quit488# - ClearLogNotice489# - SpawnNewInstance490# - ToggleFullscreen491# - None492#493# Values for `action` (macOS only):494# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space495#496# Values for `command`:497# The `command` field must be a map containing a `program` string and498# an `args` array of command line parameter strings.499#500# Example:501# `command: { program: "alacritty", args: ["-e", "vttest"] }`502#503# Values for `mode`:504# - ~AppCursor505# - AppCursor506# - ~AppKeypad507# - AppKeypad508key_bindings:509# (Windows/Linux only)510#- { key: V, mods: Control|Shift, action: Paste }511#- { key: C, mods: Control|Shift, action: Copy }512#- { key: Insert, mods: Shift, action: PasteSelection }513- { key: Key0, mods: Control, action: ResetFontSize }514- { key: Equals, mods: Control, action: IncreaseFontSize }515#- { key: Add, mods: Control, action: IncreaseFontSize }516#- { key: Subtract, mods: Control, action: DecreaseFontSize }517- { key: Minus, mods: Control, action: DecreaseFontSize }518#- { key: Return, mods: Alt, action: ToggleFullscreen }519520# (macOS only)521#- { key: Key0, mods: Command, action: ResetFontSize }522#- { key: Equals, mods: Command, action: IncreaseFontSize }523#- { key: Add, mods: Command, action: IncreaseFontSize }524#- { key: Minus, mods: Command, action: DecreaseFontSize }525#- { key: K, mods: Command, action: ClearHistory }526#- { key: K, mods: Command, chars: "\x0c" }527#- { key: V, mods: Command, action: Paste }528#- { key: C, mods: Command, action: Copy }529#- { key: H, mods: Command, action: Hide }530#- { key: Q, mods: Command, action: Quit }531#- { key: W, mods: Command, action: Quit }532#- { key: F, mods: Command|Control, action: ToggleFullscreen }533534#- { key: Paste, action: Paste }535#- { key: Copy, action: Copy }536#- { key: L, mods: Control, action: ClearLogNotice }537#- { key: L, mods: Control, chars: "\x0c" }538#- { key: Home, mods: Alt, chars: "\x1b[1;3H" }539#- { key: Home, chars: "\x1bOH", mode: AppCursor }540#- { key: Home, chars: "\x1b[H", mode: ~AppCursor }541#- { key: End, mods: Alt, chars: "\x1b[1;3F" }542#- { key: End, chars: "\x1bOF", mode: AppCursor }543#- { key: End, chars: "\x1b[F", mode: ~AppCursor }544#- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }545#- { key: PageUp, mods: Shift, chars: "\x1b[5;2~", mode: Alt }546#- { key: PageUp, mods: Control, chars: "\x1b[5;5~" }547#- { key: PageUp, mods: Alt, chars: "\x1b[5;3~" }548#- { key: PageUp, chars: "\x1b[5~" }549#- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }550#- { key: PageDown, mods: Shift, chars: "\x1b[6;2~", mode: Alt }551#- { key: PageDown, mods: Control, chars: "\x1b[6;5~" }552#- { key: PageDown, mods: Alt, chars: "\x1b[6;3~" }553#- { key: PageDown, chars: "\x1b[6~" }554#- { key: Tab, mods: Shift, chars: "\x1b[Z" }555#- { key: Back, chars: "\x7f" }556#- { key: Back, mods: Alt, chars: "\x1b\x7f" }557#- { key: Insert, chars: "\x1b[2~" }558#- { key: Delete, chars: "\x1b[3~" }559#- { key: Left, mods: Shift, chars: "\x1b[1;2D" }560#- { key: Left, mods: Control, chars: "\x1b[1;5D" }561#- { key: Left, mods: Alt, chars: "\x1b[1;3D" }562#- { key: Left, chars: "\x1b[D", mode: ~AppCursor }563#- { key: Left, chars: "\x1bOD", mode: AppCursor }564#- { key: Right, mods: Shift, chars: "\x1b[1;2C" }565#- { key: Right, mods: Control, chars: "\x1b[1;5C" }566#- { key: Right, mods: Alt, chars: "\x1b[1;3C" }567#- { key: Right, chars: "\x1b[C", mode: ~AppCursor }568#- { key: Right, chars: "\x1bOC", mode: AppCursor }569#- { key: Up, mods: Shift, chars: "\x1b[1;2A" }570#- { key: Up, mods: Control, chars: "\x1b[1;5A" }571#- { key: Up, mods: Alt, chars: "\x1b[1;3A" }572#- { key: Up, chars: "\x1b[A", mode: ~AppCursor }573#- { key: Up, chars: "\x1bOA", mode: AppCursor }574#- { key: Down, mods: Shift, chars: "\x1b[1;2B" }575#- { key: Down, mods: Control, chars: "\x1b[1;5B" }576#- { key: Down, mods: Alt, chars: "\x1b[1;3B" }577#- { key: Down, chars: "\x1b[B", mode: ~AppCursor }578#- { key: Down, chars: "\x1bOB", mode: AppCursor }579#- { key: F1, chars: "\x1bOP" }580#- { key: F2, chars: "\x1bOQ" }581#- { key: F3, chars: "\x1bOR" }582#- { key: F4, chars: "\x1bOS" }583#- { key: F5, chars: "\x1b[15~" }584#- { key: F6, chars: "\x1b[17~" }585#- { key: F7, chars: "\x1b[18~" }586#- { key: F8, chars: "\x1b[19~" }587#- { key: F9, chars: "\x1b[20~" }588#- { key: F10, chars: "\x1b[21~" }589#- { key: F11, chars: "\x1b[23~" }590#- { key: F12, chars: "\x1b[24~" }591#- { key: F1, mods: Shift, chars: "\x1b[1;2P" }592#- { key: F2, mods: Shift, chars: "\x1b[1;2Q" }593#- { key: F3, mods: Shift, chars: "\x1b[1;2R" }594#- { key: F4, mods: Shift, chars: "\x1b[1;2S" }595#- { key: F5, mods: Shift, chars: "\x1b[15;2~" }596#- { key: F6, mods: Shift, chars: "\x1b[17;2~" }597#- { key: F7, mods: Shift, chars: "\x1b[18;2~" }598#- { key: F8, mods: Shift, chars: "\x1b[19;2~" }599#- { key: F9, mods: Shift, chars: "\x1b[20;2~" }600#- { key: F10, mods: Shift, chars: "\x1b[21;2~" }601#- { key: F11, mods: Shift, chars: "\x1b[23;2~" }602#- { key: F12, mods: Shift, chars: "\x1b[24;2~" }603#- { key: F1, mods: Control, chars: "\x1b[1;5P" }604#- { key: F2, mods: Control, chars: "\x1b[1;5Q" }605#- { key: F3, mods: Control, chars: "\x1b[1;5R" }606#- { key: F4, mods: Control, chars: "\x1b[1;5S" }607#- { key: F5, mods: Control, chars: "\x1b[15;5~" }608#- { key: F6, mods: Control, chars: "\x1b[17;5~" }609#- { key: F7, mods: Control, chars: "\x1b[18;5~" }610#- { key: F8, mods: Control, chars: "\x1b[19;5~" }611#- { key: F9, mods: Control, chars: "\x1b[20;5~" }612#- { key: F10, mods: Control, chars: "\x1b[21;5~" }613#- { key: F11, mods: Control, chars: "\x1b[23;5~" }614#- { key: F12, mods: Control, chars: "\x1b[24;5~" }615#- { key: F1, mods: Alt, chars: "\x1b[1;6P" }616#- { key: F2, mods: Alt, chars: "\x1b[1;6Q" }617#- { key: F3, mods: Alt, chars: "\x1b[1;6R" }618#- { key: F4, mods: Alt, chars: "\x1b[1;6S" }619#- { key: F5, mods: Alt, chars: "\x1b[15;6~" }620#- { key: F6, mods: Alt, chars: "\x1b[17;6~" }621#- { key: F7, mods: Alt, chars: "\x1b[18;6~" }622#- { key: F8, mods: Alt, chars: "\x1b[19;6~" }623#- { key: F9, mods: Alt, chars: "\x1b[20;6~" }624#- { key: F10, mods: Alt, chars: "\x1b[21;6~" }625#- { key: F11, mods: Alt, chars: "\x1b[23;6~" }626#- { key: F12, mods: Alt, chars: "\x1b[24;6~" }627#- { key: F1, mods: Super, chars: "\x1b[1;3P" }628#- { key: F2, mods: Super, chars: "\x1b[1;3Q" }629#- { key: F3, mods: Super, chars: "\x1b[1;3R" }630#- { key: F4, mods: Super, chars: "\x1b[1;3S" }631#- { key: F5, mods: Super, chars: "\x1b[15;3~" }632#- { key: F6, mods: Super, chars: "\x1b[17;3~" }633#- { key: F7, mods: Super, chars: "\x1b[18;3~" }634#- { key: F8, mods: Super, chars: "\x1b[19;3~" }635#- { key: F9, mods: Super, chars: "\x1b[20;3~" }636#- { key: F10, mods: Super, chars: "\x1b[21;3~" }637#- { key: F11, mods: Super, chars: "\x1b[23;3~" }638#- { key: F12, mods: Super, chars: "\x1b[24;3~" }639#- { key: NumpadEnter, chars: "\n" }640#- { key: B, mods: Alt, chars: "\x1bb" }641#- { key: F, mods: Alt, chars: "\x1bf" }642643644