Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.4.2-dev

Packaging

  • Minimum Rust version has been bumped to 1.37.0

Changed

  • Pressing additional modifiers for mouse bindings will no longer trigger them
  • Renamed WINIT_HIDPI_FACTOR environment variable to WINIT_X11_SCALE_FACTOR
  • Print an error instead of crashing, when startup working directory is invalid
  • Line selection will now expand across wrapped lines
  • The default value for draw_bold_text_with_bright_colors is now false

Fixed

  • Incorrect default config path in --help on Windows and macOS
  • Semantic selection stopping at full-width glyphs
  • Full-width glyphs cut off in last column
  • Crash when starting on some X11 systems
  • Font size resetting when Alacritty is moved between screens
  • Limited payload length in clipboard escape (used for Tmux copy/paste)
  • Alacritty not ignoring keyboard events for changing WM focus on X11
  • Regression which added a UNC path prefix to the working directory on Windows
  • CLI parameters discarded when config is reload
  • Blurred icons in KDE task switcher (alacritty.ico is now high-res)
  • Consecutive builds failing on macOS due to preexisting /Application symlink
  • Block selection starting from first column after beginning leaves the scrollback
  • Incorrect selection status of the first cell when selection is off screen
  • Backwards bracket selection
  • Stack overflow when printing shader creation error
  • Underline position for bitmap fonts
  • Selection rotating outside of scrolling region
  • Throughput performance problems caused by excessive font metric queries
  • Unicode throughput performance on Linux/BSD
  • Resize of bitmap fonts
  • Crash when using bitmap font with embeddedbitmap set to false
  • Inconsistent fontconfig fallback

Removed

  • Config option auto_scroll, which is now always disabled

0.4.1

Packaging

  • Added compatibility logo variants for environments which can't render the default SVG

Added

  • Terminal escape bindings with combined modifiers for Delete and Insert
  • /Applications symlink into OS X DMG for easier installation
  • Colored emojis on Linux/BSD
  • Value randr for WINIT_HIDPI_FACTOR, to ignore Xft.dpi and scale based on screen dimensions
  • Minimize key binding action, bound to cmd + m on macOS

Changed

  • On Windows, the ConPTY backend will now be used by default if available
  • The enable_experimental_conpty_backend config option has been replaced with winpty_backend

Fixed

  • URLs not truncated with non-matching single quote
  • Absolute file URLs (file:///home) not recognized because of leading /
  • Clipboard escape OSC 52 not working with empty clipboard parameter
  • Direct escape input on Windows using alt
  • Incorrect window size on X11 when waking up from suspend
  • Width of Unicode 11/12 emojis
  • Minimize on windows causing layout issues
  • Performance bottleneck when clearing colored rows
  • Vague startup crash messages on Windows with WinPTY backend
  • Deadlock on Windows when closing Alacritty using the title bar “X” button (ConPTY backend)
  • Crash on clear when scrolled up in history
  • Entire screen getting underlined/stroke out when running clear
  • Slow startup on some Wayland compositors
  • Padding not consistently visible on macOS
  • Decorations ignoring Windows dark theme
  • Crash on macOS when starting maximized without decorations
  • Resize cursor not showing up on Wayland
  • Maximized windows spawning behind system panel on Gnome Wayland

Removed

  • Support for 8-bit C1 escape sequences

0.4.0

Packaging

  • Minimum Rust version has been bumped to 1.36.0
  • Config is not generated anymore, please consider distributing the alacritty.yml as documentation
  • Removed Alacritty terminfo from .deb in favor of ncurses provided one

Added

  • Block selection mode when Control is held while starting a selection
  • Allow setting general window class on X11 using CLI or config (window.class.general)
  • Config option window.gtk_theme_variant to set GTK theme variant
  • Completions for --class and -t (short title)
  • Change the mouse cursor when hovering over the message bar and its close button
  • Support combined bold and italic text (with font.bold_italic to customize it)
  • Extra bindings for F13-F20
  • Terminal escape bindings with combined modifiers
  • Bindings for ScrollToTop and ScrollToBottom actions
  • ReceiveChar key binding action to insert the key's text character
  • New CLI flag --hold for keeping Alacritty opened after its child process exits
  • Escape sequence to save and restore window title from stack
  • Alternate scroll escape sequence (CSI ? 1007 h / CSI ? 1007 l)
  • Print name of launch command if Alacritty failed to execute it
  • Live reload font settings from config
  • UTF-8 mouse mode escape sequence (CSI ? 1005 h / CSI ? 1005 l)
  • Escape for reading clipboard (OSC 52 ; <s / p / c> ; ? BEL)
  • Set selection clipboard (OSC 52 ; <s / p> ; <BASE64> BEL)

Changed

  • On Windows, query DirectWrite for recommended anti-aliasing settings
  • Scroll lines out of the visible region instead of deleting them when clearing the screen

Fixed

  • GUI programs launched by Alacritty starting in the background on X11
  • Text Cursor position when scrolling
  • Performance issues while resizing Alacritty
  • First unfullscreen action ignored on window launched in fullscreen mode
  • The window is now filled with the background color before displaying
  • Cells sometimes not getting cleared correctly
  • X11 clipboard hanging when mime type is set
  • On macOS, Alacritty will now fallback to Menlo if a font specified in the config cannot be loaded
  • Debug ref tests are now written to disk regardless of shutdown method
  • Cursor color setting with escape sequence
  • Override default bindings with subset terminal mode match
  • On Linux, respect fontconfig's embeddedbitmap configuration option
  • Selecting trailing tab with semantic expansion
  • URL parser incorrectly handling Markdown URLs and angled brackets
  • Intermediate bytes of CSI sequences not checked
  • Wayland clipboard integration
  • Use text mouse cursor when mouse mode is temporarily disabled with shift
  • Wayland primary selection clipboard not storing text when selection is stopped outside of the window
  • Block URL highlight while a selection is active
  • Bindings for Alt + F1-F12
  • Discard scrolling region escape with bottom above top
  • Opacity always applying to cells with their background color matching the teriminal background
  • Allow semicolons when setting titles using an OSC
  • Background always opaque on X11
  • Skipping redraws on PTY update
  • Not redrawing while resizing on Windows/macOS
  • Decorations none launching an invisible window on Windows
  • Alacritty turning transparent when opening another window on macOS with chunkwm
  • Startup mode Maximized having no effect on Windows
  • Inserting Emojis using Super+. or compose sequences on Windows
  • Change mouse cursor depending on mode with Wayland
  • Hide mouse cursor when typing if the mouse.hide_when_typing option is set on Wayland
  • Glitches when DPI changes on Windows
  • Crash when resuming after suspension
  • Crash when trying to start on X11 with a Wayland compositor running
  • Crash with a virtual display connected on X11
  • Use \ instead of \\ as path separators on Windows for logging config file location
  • Underline/strikeout drawn above visual bell
  • Terminal going transparent during visual bell
  • Selection not being cleared when sending chars through a binding
  • Mouse protocols/encodings not being mutually exclusive within themselves
  • Escape CSI Ps M deleting lines above cursor when at the bottom of the viewport
  • Cell reset not clearing underline, strikeout and foreground color
  • Escape CSI Ps c honored with a wrong Ps
  • Ignore ESC escapes with invalid intermediates
  • Blank lines after each line when pasting from GTK apps on Wayland

Removed

  • Bindings for Super/Command + F1-F12
  • Automatic config generation
  • Deprecated scrolling.faux_multiplier, the alternate scroll escape can now be used to disable it and scrolling.multiplier controls the number of scrolled lines

0.3.3

Packaging

  • Add appstream metadata, located at /extra/linux/io.alacritty.Alacritty.xml
  • The xclip dependency has been removed
  • On macOS, Alacritty now requests NSSystemAdministrationUsageDescription to avoid permission failures
  • Minimum Rust version has been bumped to 1.32.0

Added

  • Added ToggleFullscreen action
  • On macOS, there's a ToggleSimpleFullscreen action which allows switching to fullscreen without occupying another space
  • A new window option window.startup_mode which controls how the window is created
  • _NET_WM_ICON property is set on X11 now, allowing for WMs to show icons in titlebars
  • Current Git commit hash to alacritty --version
  • Config options window.title and window.class
  • Config option working_directory
  • Config group debug with the options debug.log_level, debug.print_events and debug.ref_test
  • Select until next matching bracket when double-clicking a bracket
  • Added foreground/background escape code request sequences
  • Escape sequences now support 1, 3, and 4 digit hex colors

Changed

  • On Windows, Alacritty will now use the native DirectWrite font API
  • The start_maximized window option is now startup_mode: Maximized
  • Cells with identical foreground and background will now show their text upon selection/inversion
  • Default Window padding to 0x0
  • Moved config option render_timer and persistent_logging to the debug group
  • When the cursor is in the selection, it will be inverted again, making it visible

Fixed

  • Double-width characters in URLs only being highlit on the left half
  • PTY size not getting updated when message bar is shown
  • Text Cursor disappearing
  • Incorrect positioning of zero-width characters over double-width characters
  • Mouse mode generating events when the cell has not changed
  • Selections not automatically expanding across double-width characters
  • On macOS, automatic graphics switching has been enabled again
  • Text getting recognized as URLs without slashes separating the scheme
  • URL parser dropping trailing slashes from valid URLs
  • UTF-8 BOM skipped when reading config file
  • Terminfo backspace escape sequence (kbs)

Removed

  • Deprecated mouse.faux_scrollback_lines config field
  • Deprecated custom_cursor_colors config field
  • Deprecated hide_cursor_when_typing config field
  • Deprecated cursor_style config field
  • Deprecated unfocused_hollow_cursor config field
  • Deprecated dimensions config field

Version 0.3.2

Fixed

  • Panic on startup when using Conpty on Windows

Version 0.3.1

Added

  • Added ScrollLineUp and ScrollLineDown actions for scrolling line by line
  • Native clipboard support on X11 and Wayland

Changed

  • Alacritty now has a fixed minimum supported Rust version of 1.31.0

Fixed

  • Reset scrolling region when the RIS escape sequence is received
  • Subprocess spawning on macos
  • Unnecessary resize at startup
  • Text getting blurry after live-reloading shaders with padding active
  • Resize events are not send to the shell anymore if dimensions haven't changed
  • Minor performance issues with underline and strikeout checks
  • Rare bug which would extend underline and strikeout beyond the end of line
  • Cursors not spanning two lines when over double-width characters
  • Incorrect cursor dimensions if the font offset isn't 0

Version 0.3.0

Packaging

  • On Linux, the .desktop file now uses Alacritty as icon name, which can be found at extra/logo/alacritty-term.svg

Added

  • MSI installer for Windows is now available
  • New default key bindings Alt+Home, Alt+End, Alt+PageUp and Alt+PageDown
  • Dynamic title support on Windows
  • Ability to specify starting position with the --position flag
  • New configuration field window.position allows specifying the starting position
  • Added the ability to change the selection color
  • Text will reflow instead of truncating when resizing Alacritty
  • Underline text and change cursor when hovering over URLs with required modifiers pressed

Changed

  • Clicking on non-alphabetical characters in front of URLs will no longer open them
  • Command keybindings on Windows will no longer open new cmd.exe console windows
  • On macOS, automatic graphics switching has been temporarily disabled due to a macos bug

Fixed

  • Fix panic which could occur when quitting Alacritty on Windows if using the Conpty backend
  • Automatic copying of selection to clipboard when mouse is released outside of Alacritty
  • Scrollback history live reload only working when shrinking lines
  • Crash when decreasing scrollback history in config while scrolled in history
  • Resetting the terminal while in the alt screen will no longer disable scrollback
  • Cursor jumping around when leaving alt screen while not in the alt screen
  • Text lingering around when resetting while scrolled up in the history
  • Terminfo support for extended capabilities
  • Allow mouse presses and beginning of mouse selection in padding
  • Windows: Conpty backend could close immediately on startup in certain situations
  • FreeBSD: SpawnNewInstance will now open new instances in the shell's current working directory as long as linprocfs(5) is mounted on /compat/linux/proc
  • Fix lingering Alacritty window after child process has exited
  • Growing the terminal while scrolled up will no longer move the content down
  • Support for alternate keyboard layouts on macOS
  • Slow startup time on some X11 systems
  • The AltGr key no longer sends escapes (like Alt)
  • Fixes increase/decrease font-size keybindings on international keyboards
  • On Wayland, the --title flag will set the Window title now
  • Parsing issues with URLs starting in the first or ending in the last column
  • URLs stopping at double-width characters
  • Fix start_maximized option on X11
  • Error when parsing URLs ending with Unicode outside of the ascii range
  • On Windows, focusing a Window will no longer start a selection

Version 0.2.9

Changed

  • Accept fonts which are smaller in width or height than a single pixel

Fixed

  • Incorrect font spacing after moving Alacritty between displays

Version 0.2.8

Added

  • Window class on Wayland is set to Alacritty by default
  • Log file location is stored in the ALACRITTY_LOG environment variable
  • Close button has been added to the error/warning messages

Changed

  • Improve scrolling accuracy with devices sending fractional updates (like touchpads)
  • scrolling.multiplier now affects normal scrolling with touchpads
  • Error/Warning bar doesn't overwrite the terminal anymore
  • Full error/warning messages are displayed
  • Config error messages are automatically removed when the config is fixed
  • Scroll history on Shift+PgUp/PgDown when scrollback history is available

Fixed

  • Resolved off-by-one issue with erasing characters in the last column
  • Excessive polling every 100ms with live_config_reload enabled
  • Unicode characters at the beginning of URLs are now properly ignored
  • Remove error message when reloading an empty config
  • Allow disabling URL launching by setting the value of mouse.url.launcher to None
  • Corrected the window.decorations config documentation for macOS
  • Fix IME position on HiDPI displays
  • URLs not opening while terminal is scrolled
  • Reliably remove log file when Alacritty is closed and persistent logging is disabled
  • Remove selections when clearing the screen partially (scrolling horizontally in less)
  • Crash/Freeze when shrinking the font size too far
  • Documentation of the --dimensions flag have been updated to display the correct default

Removed

  • clear doesn't remove error/warning messages anymore

Version 0.2.7

Fixed

  • Crash when trying to start Alacritty on Windows

Version 0.2.6

Added

  • New alt_send_esc option for controlling if alt key should send escape sequences

Changed

  • All options in the configuration file are now optional

Removed

  • Windows and macOS configuration files (alacritty.yml is now platform independent)

Fixed

  • Replaced Command with Super in the Linux and Windows config documentation
  • Prevent semantic and line selection from starting with the right or middle mouse button
  • Prevent Alacritty from crashing when started on a system without any free space
  • Resolve issue with high CPU usage after moving Alacritty between displays
  • Characters will no longer be deleted when using ncurses with the hard tab optimization
  • Crash on non-linux operating systems when using the SpawnNewInstance action

Version 0.2.5

Added

  • New configuration field visual_bell.color allows changing the visual bell color
  • Crashes on Windows are now also reported with a popup in addition to stderr
  • Windows: New configuration field enable_experimental_conpty_backend which enables support for the Pseudoconsole API (ConPTY) added in Windows 10 October 2018 (1809) update
  • New mouse and key action SpawnNewInstance for launching another instance of Alacritty

Changed

  • Log messages are now consistent in style, and some have been removed
  • Windows configuration location has been moved from %USERPROFILE%\alacritty.yml to %APPDATA%\alacritty\alacritty.yml
  • Windows default shell is now PowerShell instead of cmd
  • URL schemes have been limited to http, https, mailto, news, file, git, ssh and ftp

Fixed

  • Fix color issue in ncurses programs by updating terminfo pairs from 0x10000 to 0x7FFF
  • Fix panic after quitting Alacritty on macOS
  • Tabs are no longer replaced by spaces when copying them to the clipboard
  • Alt modifier is no longer sent separately from the modified key
  • Various Windows issues, like color support and performance, through the new ConPTY
  • Fixed rendering non default mouse cursors in terminal mouse mode (linux)
  • Fix the Copy mouse_bindings action (#1963)
  • URLs are only launched when left-clicking
  • Removal of extra characters (like ,) at the end of URLs has been improved
  • Single quotes (') are removed from URLs when there is no matching opening quote
  • Precompiled binaries now work with macOS versions before 10.13 (10.11 and above)

Version 0.2.4

Added

  • Option for evenly spreading extra padding around the terminal (window.dynamic_padding)
  • Option for maximizing alacritty on start (window.start_maximized)
  • Display notice about errors and warnings inside Alacritty
  • Log all messages to both stderr and a log file in the system's temporary directory
  • New configuration option persistent_logging and CLI flag --persistent-logging, for keeping the log file after closing Alacritty
  • ClearLogNotice action for removing the warning and error message
  • Terminal bells on macOS will now request the user's attention in the window
  • Alacritty now requests privacy permissions on macOS

Changed

  • Extra padding is not evenly spread around the terminal by default anymore
  • When the config file is empty, Alacritty now logs an info instead of an error message

Fixed

  • Fixed a bad type conversion which could cause underflow on a window resize
  • Alacritty now spawns a login shell on macOS, as with Terminal.app and iTerm2
  • Fixed zombie processes sticking around after launching URLs
  • Zero-width characters are now properly rendered without progressing the cursor

Version 0.2.3

Fixed

  • Mouse cursor alignment issues and truncated last line caused by incorrect padding calculations

Version 0.2.2

Added

  • Add support for Windows
  • Add terminfo capabilities advertising support for changing the window title
  • Allow using scancodes in the key_bindings section
  • When mouse.url.launcher is set, clicking on URLs will now open them with the specified program
  • New mouse.url.modifiers option to specify keyboard modifiers for opening URLs on click
  • Binaries for macOS, Windows and Debian-based systems are now published with GitHub releases
  • The keys F16-F24 have been added as options for key bindings
  • DEB file adds Alacritty as option to update-alternatives --config x-terminal-emulator

Changed

  • The colors.cursor.text and colors.cursor.cursor fields are optional now
  • Moved cursor_style to cursor.style
  • Moved unfocused_hollow_cursor to cursor.unfocused_hollow
  • Moved hide_cursor_when_typing to mouse.hide_when_typing
  • Mouse bindings now ignore additional modifiers
  • Extra padding is now spread evenly around the terminal grid
  • DEB file installs to usr/bin instead of usr/local/bin

Removed

  • The custom_cursor_colors config field was deleted, remove the colors.cursor.* options to achieve the same behavior as setting it to false
  • The scale_with_dpi configuration value has been removed, on Linux the env variable WINIT_HIDPI_FACTOR=1 can be set instead to disable DPI scaling

Fixed

  • Fixed erroneous results when using the indexed_colors config option
  • Fixed rendering cursors other than rectangular with the RustType backend
  • Selection memory leak and glitches in the alternate screen buffer
  • Invalid default configuration on macOS and Linux
  • Middle mouse pasting if mouse mode is enabled
  • Selections now properly update as you scroll the scrollback buffer while selecting
  • NUL character at the end of window titles
  • DPI Scaling when moving windows across monitors
  • On macOS, issues with Command-[KEY] and Control-Tab keybindings have been fixed
  • Incorrect number of columns/lines when using the window.dimensions option
  • On Wayland, windows will no longer be spawned outside of the visible region
  • Resizing of windows without decorations
  • On Wayland, key repetition works again
  • On macOS, Alacritty will now use the integrated GPU again when available
  • On Linux, the WINIT_HIDPI_FACTOR environment variable can be set from the config now

Version 0.2.1

Added

  • Implement the hidden escape sequence (echo -e "\e[8mTEST")
  • Add support for macOS systemwide dark mode
  • Set the environment variable COLORTERM="truecolor" to advertise 24-bit color support
  • On macOS, there are two new values for the config option window.decorations:
    • transparent - This makes the title bar transparent and allows the viewport to extend to the top of the window.
    • buttonless - Similar to transparent but also removed the buttons.
  • Add support for changing the colors from 16 to 256 in the indexed_colors config section
  • Add save_to_clipboard configuration option for copying selected text to the system clipboard
  • New terminfo entry, alacritty-direct, that advertises 24-bit color support
  • Add support for CSI sequences Cursor Next Line (\e[nE) and Cursor Previous Line (\e[nF)

Changed

  • Inverse/Selection color is now modelled after XTerm/VTE instead of URxvt to improve consistency
  • First click on unfocused Alacritty windows is no longer ignored on platforms other than macOS
  • Reduce memory usage significantly by only initializing part of the scrollback buffer at startup
  • The alacritty terminfo entry no longer requires the xterm definition to be present on the system
  • The default TERM value is no longer static; the alacritty entry is used if available, otherwise the xterm-256color entry is used instead

Removed

  • The terminfo entry alacritty-256color. It is replaced by the alacritty entry (which also advertises 256 colors)

Fixed

  • Rendering now occurs without the terminal locked which improves performance
  • Clear screen properly before rendering of content to prevent various graphical glitches
  • Fix build failure on 32-bit systems
  • Windows started as unfocused now show the hollow cursor if the setting is enabled
  • Empty lines in selections are now properly copied to the clipboard
  • Selection start point lagging behind initial cursor position
  • Rendering of selections which start above the visible area and end below it

Deprecated

  • The config option window.decorations should now use full or none instead of true or false, respectively.

Security

  • Bracketed paste mode now filters escape sequences beginning with \x1b

Version 0.2.0

Added

  • Add a scrollback history buffer (10_000 lines by default)
  • CHANGELOG has been added for documenting relevant user-facing changes
  • Add ClearHistory key binding action and the Erase Saved Lines control sequence
  • When growing the window height, Alacritty will now try to load additional lines out of the scrollback history
  • Support the dim foreground color (echo -e '\033[2mDimmed Text')
  • Add support for the LCD-V pixel mode (vertical screens)
  • Pressing enter on the numpad should now insert a newline
  • The mouse bindings now support keyboard modifiers (shift/ctrl/alt/super)
  • Add support for the bright foreground color
  • Support for setting foreground, background colors in one escape sequence

Changed

  • Multiple key/mouse bindings for a single key will now all be executed instead of picking one and ignoring the rest
  • Improve text scrolling performance (affects applications like yes, not scrolling the history)

Fixed

  • Clear the visible region when the RIS escape sequence (echo -ne '\033c') is received
  • Prevent logger from crashing Alacritty when stdout/stderr is not available
  • Fix a crash when sending the IL escape sequence with a large number of lines