ALACRITTY(5)
okay bestie, welcome to ALACRITTY(5) β straight out of the File Formats Manual, and it's giving the TOML config glow-up π
β¨
πΈ NAME πΈ
Alacritty β the TOML configuration file format. That's it, that's the name, and yes she's iconic for it π
π¦ SYNTAX π¦
Alacritty's config file uses the TOML format, periodt. The full spec lives at https://toml.io/en/v1.0.0 if you wanna go read the whole thing like the main character you are π
π LOCATION π
So here's the tea: Alacritty does not create the config file for you. She's not your mom, she's your bestie. She just looks for one in these spots on UNIX systems, in this exact order:
$XDG_CONFIG_HOME/alacritty/alacritty.toml$XDG_CONFIG_HOME/alacritty.toml$HOME/.config/alacritty/alacritty.toml$HOME/.alacritty.toml/etc/alacritty/alacritty.toml
On Windows, the config file will be looked for in:
%APPDATA%\alacritty\alacritty.toml
β¨ GENERAL β¨
This section documents the [general] table of the configuration file. Lowkey the control room of the whole vibe ποΈ
import = ["<string>",]β Import additional configuration files.
Imports are loaded in order, skipping all missing files, with the importing file being loaded last. If a field is already present in a previous import, it will be replaced. (So like, last one to the group chat wins π)
All imports must either be absolute paths starting with /, paths relative to the user's home directory starting with ~/, or paths relative from the current config file.
Example:
import = [
"~/.config/alacritty/base16-dark.toml",
"~/.config/alacritty/keybindings.toml",
"alacritty-theme/themes/gruvbox_dark.toml",
]
working_directory = "<string>" | "None"β Directory the shell is started in. When this is unset, or"None", the working directory of the parent process will be used.
Default: "None"
live_config_reload = true | falseβ Live config reload (changes require restart).
Default: true
ipc_socket = true | false # (unix only)β Offer IPC usingalacritty msg.
Default: true
π ENV π
Every single key-value pair in the [env] section gets added as environment variables for any process spawned by Alacritty, including its shell π Some entries may override variables set by alacritty itself β so like, watch out, she's got opinions.
Example:
[env]
WINIT_X11_SCALE_FACTOR = "1.0"
π WINDOW π
This section documents the [window] table of the configuration file. This is where you make her look β¨expensiveβ¨
dimensions = { columns = <integer>, lines = <integer> }β Window dimensions (changes require restart).
Number of lines/columns (not pixels!) in the terminal. Both lines and columns must be non-zero for this to take effect. The number of columns must be at least 2, while using a value of 0 for columns and lines will fall back to the window manager's recommended size.
Default: { columns = 0, lines = 0 }
position = "None" | { x = <integer>, y = <integer> } # (has no effect on Wayland)β Window startup position.
Specified in number of pixels.
If the position is "None", the window manager will handle placement.
Default: "None"
padding = { x = <integer>, y = <integer> }β Blank space added around the window in pixels. This padding is scaled by DPI and the specified value is always added at both opposing sides.
Default: { x = 0, y = 0 }
dynamic_padding = true | falseβ Spread additional padding evenly around the terminal content.
Default: false
decorations = "Full" | "None" | "Transparent" | "Buttonless"β Window decorations.Fullβ Borders and title bar.Noneβ Neither borders nor title bar.Transparent(macOS only) β Title bar, transparent background and title bar buttons.Buttonless(macOS only) β Title bar, transparent background and no title bar buttons.
Default: "Full"
opacity = <float>β Background opacity as a floating point number from0.0to1.0. The value0.0is completely transparent and1.0is opaque.
Default: 1.0
blur = true | false # (works on macOS/KDE Wayland)β Request compositor to blur content behind transparent windows.
Default: false
startup_mode = "Windowed" | "Maximized" | "Fullscreen" | "SimpleFullscreen"β Startup mode (changes require restart).Windowedβ Regular window.Maximizedβ The window will be maximized on startup.Fullscreenβ The window will be fullscreened on startup.SimpleFullscreen(macOS only) β Same asFullscreen, but you can stack windows on top.
Default: "Windowed"
title = "<string>"β Window title.
Default: "Alacritty"
dynamic_title = true | falseβ Allow terminal applications to change Alacritty's window title.
Default: true
class = { instance = "<string>", general = "<string>" } # (Linux/BSD only)β Window class.
On Wayland, general is used as app_id and instance is ignored.
Default: { instance = "Alacritty", general = "Alacritty" }
decorations_theme_variant = "Dark" | "Light" | "None"β Override the variant of the System theme/GTK theme/Wayland client side decorations. Set this to"None"to use the system's default theme variant.
Default: "None"
resize_increments = true | false # (works on macOS/X11/Wayland)β Prefer resizing window by discrete steps equal to cell dimensions.
Default: false
option_as_alt = "OnlyLeft" | "OnlyRight" | "Both" | "None" # (macOS only)β Make Option key behave as Alt.
Default: "None"
level = "Normal" | "AlwaysOnTop"β Sets window level.Normalβ Window adheres to system's default z-order.AlwaysOnTopβ Window is a toplevel window.
Default: "Normal"
Example:
[window]
padding = { x = 3, y = 3 }
dynamic_padding = true
opacity = 0.9
π SCROLLING π
This section documents the [scrolling] table of the configuration file. Scroll up, scroll down, it's a whole journey π
history = <integer>β Maximum number of lines in the scrollback buffer. Specifying0will disable scrolling. Limited to100000.
Default: 10000
multiplier = <integer>β Number of line scrolled for every input scroll increment.
Default: 3
π§ FONT π§
This section documents the [font] table of the configuration file. This is the outfit of your terminal, fr fr β¨
normal = { family = "<string>", style = "<string>" }
Default:
Linux/BSD: { family = "monospace", style = "Regular" }
Windows: { family = "Consolas", style = "Regular" }
macOS: { family = "Menlo", style = "Regular" }
bold = { family = "<string>", style = "<string>" }
If the family is not specified, it will fall back to the value specified for the normal font.
Default: { style = "Bold" }
italic = { family = "<string>", style = "<string>" }
If the family is not specified, it will fall back to the value specified for the normal font.
Default: { style = "Italic" }
bold_italic = { family = "<string>", style = "<string>" }
If the family is not specified, it will fall back to the value specified for the normal font.
Default: { style = "Bold Italic" }
size = <float>β Font size in points.
Default: 11.25
offset = { x = <integer>, y = <integer> }β Offset is the extra space around each character.ycan be thought of as modifying the line spacing, andxas modifying the letter spacing.
Default: { x = 0, y = 0 }
glyph_offset = { x = <integer>, y = <integer> }β Glyph offset determines the locations of the glyphs within their cells with the default being at the bottom. Increasingxmoves the glyph to the right, increasingymoves the glyph upward.builtin_box_drawing = true | falseβ Whentrue, Alacritty will use a custom built-in font for box drawing characters (Unicode pointsU+2500-U+259F), legacy computing symbols (U+1FB00-U+1FB3B), and powerline symbols (U+E0B0-U+E0B3).
Default: true
π COLORS π
Okay bestie, this section is literally the whole [colors] table of the config file. It's giving makeup palette energy. π¨
Colors are written as hexadecimal values with a # prefix: #RRGGBB. That's it, that's the whole format, no cap. β¨
π primary π
This one documents the [colors.primary] table, iykyk.
foreground = "<string>"β Default:"#d8d8d8"background = "<string>"β Default:"#181818"dim_foreground = "<string>"β If you don't set this, it gets automatically calculated based on the foreground color. Default:"#828482"bright_foreground = "<string>"β This color is only used whendraw_bold_text_with_bright_colorsistrue. If you don't set it, the normal foreground gets used instead. Default:"None"
π±οΈ cursor = { text = "<string>", cursor = "<string>" } π±οΈ
The colors used to draw the terminal cursor. Main character behavior, honestly.
Allowed values are hexadecimal colors like #ff00ff, or CellForeground/CellBackground, which references the affected cell.
Default: { text = "CellBackground", cursor = "CellForeground" }
π§ vi_mode_cursor = { text = "<string>", cursor = "<string>" } π§
Same deal but for when vi mode is active.
Allowed values are hexadecimal colors like #ff00ff, or CellForeground/CellBackground, which references the affected cell.
Default: { text = "CellBackground", cursor = "CellForeground" }
π search π
This section documents the [colors.search] table of the configuration.
Allowed values are hexadecimal colors like #ff00ff, or CellForeground/CellBackground, which references the affected cell.
matches = { foreground = "<string>", background = "<string>" }β Default:{ foreground = "#181818", background = "#ac4242" }focused_match = { foreground = "<string>", background = "<string>" }β Default:{ foreground = "#181818", background = "#f4bf75" }
π hints π
This section documents the [colors.hints] table of the configuration.
start = { foreground = "<string>", background = "<string>" }β The first character in the hint label. Allowed values are hexadecimal colors like#ff00ff, orCellForeground/CellBackground, which references the affected cell. Default:{ foreground = "#181818", background = "#f4bf75" }end = { foreground = "<string>", background = "<string>" }β All the characters after the first one in the hint label. Allowed values are hexadecimal colors like#ff00ff, orCellForeground/CellBackground, which references the affected cell. Default:{ foreground = "#181818", background = "#ac4242" }
π line_indicator = { foreground = "<string>", background = "<string>" } π
The color used for the indicator showing your position in history during search and vi mode.
Setting this to "None" will use the opposing primary color.
Default: { foreground = "None", background = "None" }
π¦ footer_bar = { foreground = "<string>", background = "<string>" } π¦
The color used for the footer bar at the bottom β used by search regex input, hyperlink URI preview, etc.
Default: { foreground = "#181818", background = "#d8d8d8" }
βοΈ selection = { text = "<string>", background = "<string>" } βοΈ
The colors used for drawing selections. So iconic.
Allowed values are hexadecimal colors like #ff00ff, or CellForeground/CellBackground, which references the affected cell.
Default: { text = "CellBackground", background = "CellForeground" }
π normal π
This section documents the [colors.normal] table of the configuration.
black = "<string>"β Default:"#181818"red = "<string>"β Default:"#ac4242"green = "<string>"β Default:"#90a959"yellow = "<string>"β Default:"#f4bf75"blue = "<string>"β Default:"#6a9fb5"magenta = "<string>"β Default:"#aa759f"cyan = "<string>"β Default:"#75b5aa"white = "<string>"β Default:"#d8d8d8"
β¨ bright β¨
This section documents the [colors.bright] table of the configuration.
black = "<string>"β Default:"#6b6b6b"red = "<string>"β Default:"#c55555"green = "<string>"β Default:"#aac474"yellow = "<string>"β Default:"#feca88"blue = "<string>"β Default:"#82b8c8"magenta = "<string>"β Default:"#c28cb8"cyan = "<string>"β Default:"#93d3c3"white = "<string>"β Default:"#f8f8f8"
πΈ dim πΈ
This section documents the [colors.dim] table of the configuration.
If the dim colors aren't set, they get calculated automatically based on the normal colors. So chill.
black = "<string>"β Default:"#0f0f0f"red = "<string>"β Default:"#712b2b"green = "<string>"β Default:"#5f6f3a"yellow = "<string>"β Default:"#a17e4d"blue = "<string>"β Default:"#456877"magenta = "<string>"β Default:"#704d68"cyan = "<string>"β Default:"#4d7770"white = "<string>"β Default:"#8e8e8e"
π indexed_colors = [{ index = <integer>, color = "<string>" },] π
The indexed colors include all colors from 16 to 256. When these aren't set, they get filled with sensible defaults. Literally so thoughtful.
Default: []
π«Ά transparent_background_colors = true | false π«Ά
Whether or not window.opacity applies to all cell backgrounds, or only to the default background. When set to true, all cells will be transparent regardless of their background color.
Default: false
π draw_bold_text_with_bright_colors = true | false π
When true, bold text is drawn using the bright color variants.
Default: false
π BELL π
This section documents the [bell] table of the configuration file.
animation = "Ease" | "EaseOut" | "EaseOutSine" | "EaseOutQuad" | "EaseOutCubic" | "EaseOutQuart" | "EaseOutQuint" | "EaseOutExpo" | "EaseOutCirc" | "Linear"β Visual bell animation effect for flashing the screen when the visual bell is rung. Default:"Linear"duration = <integer>β Duration of the visual bell flash in milliseconds. Adurationof0will disable the visual bell animation. Default:0color = "<string>"β Visual bell animation color. Default:"#ffffff"command = "<string>" | { program = "<string>", args = ["<string>",] }β This program is executed whenever the bell is rung. When set to"None", no command will be executed. Default:"None"
βοΈ SELECTION βοΈ
This section documents the [selection] table of the configuration file.
semantic_escape_chars = "<string>"β This string contains all the characters that are used as separators for "semantic words" in Alacritty. Default:",β|:"' ()[]{}<>\t"`save_to_clipboard = true | falseβ When set totrue, selected text will be copied to the primary clipboard. Default:false
π±οΈ CURSOR π±οΈ
This section documents the [cursor] table of the configuration file.
style = { <shape>, <blinking> }
shape = "Block" | "Underline" | "Beam"β Default:"Block"blinking = "Never" | "Off" | "On" | "Always"Neverβ Prevent the cursor from ever blinkingOffβ Disable blinking by defaultOnβ Enable blinking by defaultAlwaysβ Force the cursor to always blink
Default: "Off"
vi_mode_style = { <shape>, <blinking> } | "None"
If the vi mode cursor style is "None" or not specified, it will fall back to the active value of the normal cursor.
Default: "None"
Other cursor bits π
blink_interval = <integer>β Cursor blinking interval in milliseconds. Default:750blink_timeout = <integer>β Time after which the cursor stops blinking, in seconds. Specifying0will disable timeout for blinking. Default:5unfocused_hollow = true | falseβ When this istrue, the cursor will be rendered as a hollow box when the window is not focused. Default:truethickness = <float>β Thickness of the cursor relative to the cell width as a floating point number from0.0to1.0. Default:0.15
π TERMINAL π
This section documents the [terminal] table of the configuration file.
shell = "<string>" | { program = "<string>", args = ["<string>",] }
You can set shell.program to the path of your favorite shell, e.g. /bin/zsh. Entries in shell.args are passed as arguments to the shell. Bestie, customize away. π
Default:
- Linux/BSD/macOS:
$SHELLor the user's login shell, if$SHELLis unset - Windows:
"powershell"
Example:
shell = { program = "/bin/zsh", args = ["-l"] }
osc52 = "Disabled" | "OnlyCopy" | "OnlyPaste" | "CopyPaste"
Controls the ability to write to the system clipboard with the OSC 52 escape sequence. While this escape sequence is useful to copy contents from the remote server, allowing any application to read from the clipboard can be easily abused while not providing significant benefits over explicitly pasting text.
π Okay this one is a real security vibe check β letting any app read your clipboard is sketchy, and it's lowkey not even worth it.
Default: "OnlyCopy"
π±οΈ MOUSE π±οΈ
This section documents the [mouse] table of the configuration file.
hide_when_typing = true | falseβ When this istrue, the cursor is temporarily hidden when typing. Default:falsebindings = [{ <mouse>, <mods>, <mode>, <command> | <chars> | <action> },]β Seekeyboard.bindingsfor full documentation onmods,mode,command,chars, andaction.
When an application running within Alacritty captures the mouse, the Shift modifier can be used to suppress mouse reporting. If no action is found for the event, actions for the event without the Shift modifier are triggered instead.
mouse = "Middle" | "Left" | "Right" | "Back" | "Forward" | "WheelUp" | "WheelDown" | <integer>β Mouse button which needs to be pressed to trigger this binding.action = <keyboard.bindings.action> | "ExpandSelection"ExpandSelectionβ Expand the selection to the current mouse cursor location.
Example:
[mouse]
bindings = [
{ mouse = "Right", mods = "Control", action = "Paste" },
]
β¨ HINTS β¨
Okay bestie, this section is all about the [hints] table in your config file. Terminal hints = the lil' system that finds text or hyperlinks in the visible part of your terminal and pipes them off to other apps. It's giving "spot the link, click the link, slay." π
π€ alphabet = "<string>"
These are the keys used for the hint labels. So when hints pop up, they get labelled with these characters, and you type the label to grab the thing. Cute, right? π
Default: "jfkdls;ahgurieowpq"
π¦ enabled = [{ <regex>, <hyperlinks>, <post_processing>, <persist>, <action>, <command>, <binding>, <mouse> },]
This is the array with all your available hints. It's a whole list, so go wild.
Heads up though: each hint must have at least one ofregexorhyperlinks, AND either anactionor acommand. No action and no command? That hint is not the moment. π
Here's everything you can put inside one of these bad boys:
π§ regex = "<string>"
The regex that each line gets compared against. Match found β hint appears.
π hyperlinks = true | false
When this is true, all OSC 8 escape sequence hyperlinks get included in the hints. Iconic behaviour honestly.
πͺ post_processing = true | false
When this is true, heuristics get used to shorten the match if there are characters that probably aren't part of the hint (like a trailing . β rude of it). This is most useful for URIs, and it applies only to regex matches. So no, it's not doing anything for your hyperlink hints, bestie.
π persist = true | false
When this is true, hints stay persistent after selection. They don't dip out on you.
π« action = "Copy" | "Paste" | "Select" | "MoveViModeCursor"
Pick your fighter:
Copyβ Copy the hint's text to the clipboard.Pasteβ Paste the hint's text to the terminal or search.Selectβ Select the hint's text.MoveViModeCursorβ Move the vi mode cursor to the beginning of the hint.
π command = "<string>" | { program = "<string>", args = ["<string>",] }
The command that gets executed when the hint is clicked or selected with the binding.
Real talk: the hint's text is always attached as the last argument. Every time. No exceptions. Periodt.
β¨οΈ binding = { key = "<string>", mods = "<string>", mode = "<string>" }
Go peek at keyboard.bindings for the docs on which values are available here.
This is the thing that controls which key binding starts the keyboard hint selection process. It's the glow-up moment where hints appear.
π±οΈ mouse = { mods = "<string>", enabled = true | false }
Again, see keyboard.bindings for the docs on available mods.
The enabled field controls whether the hint gets underlined when you hover over the hint text with all the mods pressed. Little underline? Little treat. πΈ
π Default:
[[hints.enabled]]
command = "xdg-open" # On Linux/BSD
# command = "open" # On macOS
# command = { program = "cmd", args = [ "/c", "start", "" ] } # On Windows
hyperlinks = true
post_processing = true
persist = false
mouse.enabled = true
binding = { key = "O", mods = "Control|Shift" }
regex = "(ipfs:|ipns:|magnet:|mailto:|gemini://|gopher://|https://|http://|news:|file:|git://|ssh:|ftp://)[^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^β¨β©`\\\\]+"
Look at that regex β it's catching ipfs:, ipns:, magnet:, mailto:, gemini://, gopher://, https://, http://, news:, file:, git://, ssh: and ftp:// links, and it's excluding all the weird control characters, whitespace, and bracket-adjacent chaos. Chef's kiss. π₯
β¨οΈ KEYBOARD β¨οΈ
Okay bestie, this is the section that documents the [keyboard] table of the config file. This is where you tell Alacritty what happens when you smash keys. It's giving β¨powerβ¨.
bindings = [{ <key>, <mods>, <mode>, <command> | <chars> | <action> },]
- Wanna unset a default binding? Use the action
"ReceiveChar"to remove it, or"None"to inhibit any action. Yes, those are two different vibes and yes, you need to know which one you want π - Multiple keybindings can be triggered by a single key press, and they get executed in the order they are defined in. Order matters, fr fr.
key = "<string>"
The regular keys like "A", "0", and "Π―" can be mapped directly, no special syntax needed. The full list of named keys like "F1" and the syntax for dead keys lives here:
- https://docs.rs/winit/latest/winit/keyboard/enum.NamedKey.html
- https://docs.rs/winit/latest/winit/keyboard/enum.Key.html#variant.Dead
Numpad keys are prefixed by Numpad: "NumpadEnter" | "NumpadAdd" | "NumpadComma" | "NumpadDecimal" | "NumpadDivide" | "NumpadEquals" | "NumpadSubtract" | "NumpadMultiply" | "Numpad[0-9]".
The key field also supports using scancodes, which are specified as a decimal number. Slay π’
mods = "Command" | "Control" | "Option" | "Super" | "Shift" | "Alt"
Multiple modifiers can be combined using |, like this: "Control | Shift". Stack 'em up π«Ά
mode = "AppCursor" | "AppKeypad" | "Search" | "Alt" | "Vi"
This defines a terminal mode which must be active for this binding to have an effect.
Prepending ~ to a mode will require the mode to not be active for the binding to take effect.
Multiple modes can be combined using |, like this: "~Vi|Search". Iconic behaviour honestly.
command = "<string>" | { program = "<string>", args = ["<string>",] }
Fork and execute the specified command. It's giving "go do a thing" πββοΈ
chars = "<string>"
Writes the specified string to the terminal.
action
Okay here comes the big list, bestie. Buckle in πΈ
ReceiveCharβ Allow receiving char input.Noneβ No action.Pasteβ Paste contents of system clipboard.Copyβ Store current selection into clipboard.IncreaseFontSizeβ Increase font size.DecreaseFontSizeβ Decrease font size.ResetFontSizeβ Reset font size to the config value.ScrollPageUpβ Scroll exactly one page up.ScrollPageDownβ Scroll exactly one page down.ScrollHalfPageUpβ Scroll half a page up.ScrollHalfPageDownβ Scroll half a page down.ScrollLineUpβ Scroll one line up.ScrollLineDownβ Scroll one line down.ScrollToTopβ Scroll all the way to the top.ScrollToBottomβ Scroll all the way to the bottom.ClearHistoryβ Clear the display buffer(s) to remove history.Hideβ Hide the Alacritty window.Minimizeβ Minimize the Alacritty window.Quitβ Quit Alacritty.ClearLogNoticeβ Clear warning and error notices.SpawnNewInstanceβ Spawn a new instance of Alacritty.CreateNewWindowβ Create a new Alacritty window.ToggleFullscreenβ Toggle fullscreen.ToggleMaximizedβ Toggle maximized.ClearSelectionβ Clear active selection.ToggleViModeβ Toggle vi mode.SearchForwardβ Start a forward buffer search.SearchBackwardβ Start a backward buffer search.
Vi mode actions: π§
Upβ Move up.Downβ Move down.Leftβ Move left.Rightβ Move right.Firstβ First column, or beginning of the line when already at the first column.Lastβ Last column, or beginning of the line when already at the last column.FirstOccupiedβ First non-empty cell in this terminal row, or first non-empty cell of the line when already at the first cell of the row.Highβ Move to top of screen.Middleβ Move to center of screen.Lowβ Move to bottom of screen.SemanticLeftβ Move to start of semantically separated word.SemanticRightβ Move to start of next semantically separated word.SemanticLeftEndβ Move to end of previous semantically separated word.SemanticRightEndβ Move to end of semantically separated word.WordLeftβ Move to start of whitespace separated word.WordRightβ Move to start of next whitespace separated word.WordLeftEndβ Move to end of previous whitespace separated word.WordRightEndβ Move to end of whitespace separated word.Bracketβ Move to opposing bracket.ParagraphUpβ Move above the current paragraph.ParagraphDownβ Move below the current paragraph.ToggleNormalSelectionβ Toggle normal vi selection.ToggleLineSelectionβ Toggle line vi selection.ToggleBlockSelectionβ Toggle block vi selection.ToggleSemanticSelectionβ Toggle semantic vi selection.SearchNextβ Jump to the beginning of the next match.SearchPreviousβ Jump to the beginning of the previous match.SearchStartβ Jump to the next start of a match to the left of the origin.SearchEndβ Jump to the next end of a match to the right of the origin.Openβ Launch the URL below the vi mode cursor.CenterAroundViCursorβ Centers the screen around the vi mode cursor.InlineSearchForwardβ Search forward within the current line.InlineSearchBackwardβ Search backward within the current line.InlineSearchForwardShortβ Search forward within the current line, stopping just short of the character.InlineSearchBackwardShortβ Search backward within the current line, stopping just short of the character.InlineSearchNextβ Jump to the next inline search match.InlineSearchPreviousβ Jump to the previous inline search match.SemanticSearchForwardβ Search forward for selection or word under the cursor.SemanticSearchBackwardβ Search backward for selection or word under the cursor.
Search actions: π
SearchFocusNextβ Move the focus to the next search match.SearchFocusPreviousβ Move the focus to the previous search match.SearchConfirmβ Confirm the active search.SearchCancelβ Cancel the active search.SearchClearβ Reset the search regex.SearchDeleteWordβ Delete the last word in the search regex.SearchHistoryPreviousβ Go to the previous regex in the search history.SearchHistoryNextβ Go to the next regex in the search history.
macOS exclusive: π (bestie if you're on Linux these simply don't apply, don't come for me)
ToggleSimpleFullscreenβ Enter fullscreen without occupying another space.HideOtherApplicationsβ Hide all windows other than Alacritty.CreateNewTabβ Create new window in a tab.SelectNextTabβ Select next tab.SelectPreviousTabβ Select previous tab.SelectTab1β Select the first tab.SelectTab2β Select the second tab.SelectTab3β Select the third tab.SelectTab4β Select the fourth tab.SelectTab5β Select the fifth tab.SelectTab6β Select the sixth tab.SelectTab7β Select the seventh tab.SelectTab8β Select the eighth tab.SelectTab9β Select the ninth tab.SelectLastTabβ Select the last tab.
Linux/BSD exclusive: π§
CopySelectionβ Copy from the selection buffer.PasteSelectionβ Paste from the selection buffer.
Default: See alacritty-bindings(5)
Example:
[keyboard]
bindings = [
{ key = "N", mods = "Control|Shift", action = "CreateNewWindow" },
{ key = "L", mods = "Control|Shift", chars = "l" },
]
π DEBUG π
This section documents the [debug] table of the configuration file.
Debug options are meant to help troubleshoot issues with Alacritty. These can change or be removed entirely without warning, so their stability shouldn't be relied upon. Read that again, bestie β no cap, they can just vanish π
render_timer = true | false
Display the time it takes to draw each frame. Gotta know how fast your frames are cooking β±οΈ
Default: false
persistent_logging = true | false
Keep the log file after quitting Alacritty.
Default: false
log_level = "Off" | "Error" | "Warn" | "Info" | "Debug" | "Trace"
Default: "Warn"
To add extra libraries to logging, the ALACRITTY_EXTRA_LOG_TARGETS variable can be used.
Example:
ALACRITTY_EXTRA_LOG_TARGETS="winit;vte" alacritty -vvv
renderer = "glsl3" | "gles2" | "gles2pure" | "None"
Force use of a specific renderer. "None" will use the highest available one.
Default: "None"
print_events = true | false
Log all received window events.
Default: false
highlight_damage = true | false
Highlight window damage information.
Default: false
prefer_egl = true | false
Use EGL as display API if the current platform allows it.
Heads up π«Ά β note that transparency may not work with EGL on Linux/BSD.
Default: false
π SEE ALSO π
alacritty(1), alacritty-msg(1), alacritty-bindings(5), alacritty-escapes(7)
π BUGS π
Found a bug? Please report it at https://github.com/alacritty/alacritty/issues. The devs wanna hear from you, fr fr π«Ά
π MAINTAINERS π
okay so who's actually running this whole operation?? the girlies keeping alacritty iconic π these are the people you thank when your terminal is cute and fast:
- Christian Duerr β <contact@christianduerr.com> π«Ά
- Kirill Chibisov β <contact@kchibisov.com> π
that's it, that's the roster. two absolute legends, no cap. send them good vibes, or better yet, send them a bug report that actually includes the steps to reproduce π they deserve it fr fr π
and that's the whole page bestie!! you made it all the way to the end, main character energy fr β¨ this was ALACRITTY(5) β yes that's the manual section for config files, iykyk β and this version is dated 2026-04-13. go forth, edit your alacritty.toml, and slay ππ¦πΈ
π¦ where this page comes from
- fedora 43: alacritty 0.17.0-1.fc43 Β· (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND CC0-1.0 AND ISC AND MIT AND (MIT OR Apache-2.0 OR Zlib) AND Unicode-DFS-2016 AND (Unlicense OR MIT)
- fedora 44: alacritty 0.17.0-1.fc44 Β· (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-3-Clause AND CC0-1.0 AND ISC AND MIT AND (MIT OR Apache-2.0 OR Zlib) AND Unicode-DFS-2016 AND (Unlicense OR MIT)
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms