Skip to content

Releases

0.6.3 (unreleased)

  • Adds hint mode for keyboard-driven selection of URLs, file paths, git hashes, and IP addresses with configurable actions (Copy, Open, Paste, Select), activatable via key binding or Vi normal mode (gh/gH)
  • Adds auto-scroll when dragging selection past window edges, and Shift+Click to extend existing selections (#1911)
  • Adds pixel-based smooth scrolling via smooth_scrolling profile setting, supporting trackpad pixel deltas, mouse wheel, and keyboard scroll actions
  • Adds natural momentum scrolling for touchpad gestures with configurable falloff via momentum_scrolling profile setting
  • Adds kitty's unscroll extension (CSI n + T) to restore scrolled-off content from scrollback history
  • Adds snap-to-grid window resizing via WM size-increment hints (X11/macOS) and client-side snapping (Wayland, where xdg-shell has no size-increment hint)
  • Adds environment variable expansion (${VAR_NAME} syntax) in configuration file paths for cross-platform config reuse (#1278)
  • Adds configurable font fallback limit (max_fallback_count) with on-demand loading and persistent locate cache for faster font resolution
  • Adds animated cursor movement between grid cells with ease-out interpolation via cursor_motion_animation_duration profile setting
  • Adds configurable crossfade transition between primary and alternate screens via screen_transition and screen_transition_duration profile settings
  • Replaces abrupt cell blink toggle with configurable smooth pulse animation via blink_style profile setting (classic/smooth/linger)
  • Adds configurable text outline rendering to improve glyph readability on transparent or low-opacity backgrounds (#1895)
  • Adds pixel-perfect builtin rendering for mathematical bracket and symbol characters (U+239B–U+23B3), including parenthesis pieces, curly bracket pieces, integral extensions, horizontal line extension, bracket sections, and summation symbols
  • Adds pixel-perfect builtin rendering for shade characters (U+2591–U+2593): light shade, medium shade, and dark shade
  • Adds Kitty OSC 99 desktop notification protocol with D-Bus backend on Linux, supporting structured metadata, chunked payloads, base64 encoding, urgency levels, display occasion filtering, bidirectional close/activation events, and query/alive responses
  • Adds DEC VT420 multi-page support with 16 pages, navigable via NP (CSI Pn U), PP (CSI Pn V), PPA (CSI Pn SP P), PPR (CSI Pn SP Q), and PPB (CSI Pn SP R) sequences
  • Adds DECPCCM (DEC mode 64) page cursor coupling mode to control whether the displayed page follows the cursor page
  • Adds DECRQDE (CSI " v) display extent report for querying page dimensions and current page number
  • Adds cross-page DECCRA (Copy Rectangular Area) support for copying cell content and attributes between pages
  • Adds complete DECCIR (Cursor Information Report) response including character set designations, GL/GR mappings, and wrap-pending state (#97)
  • Adds DECNKM (DEC mode 66, VT320) to toggle numeric keypad between application and numeric mode via CSI ? 66 h / CSI ? 66 l
  • Adds DECARM (DEC mode 8, VT100) to enable/disable keyboard auto-repeat via CSI ? 8 h / CSI ? 8 l
  • Adds DECBKM (DEC mode 67, VT340) to toggle Backspace key between BS (0x08) and DEL (0x7F) via CSI ? 67 h / CSI ? 67 l
  • Fixes crash when rendering oversized non-RGBA glyphs (e.g. Nerd Font icons in JetBrainsMono) by extending glyph scaling to all bitmap formats (#1893)
  • Fixes keyboard input being swallowed in programs like less and bat due to empty-string terminfo capabilities (#1861)
  • Fixes ESC key not being sent to the application when CancelSelection input mapping has no mode restriction (#1839)
  • Fixes F3 key not reaching PTY applications when a keybinding matches but its action does not execute, by falling through to the terminal instead of silently consuming the key event
  • Fixes F3/Shift+F3 search navigation keybindings firing in any mode instead of only when Search mode is active
  • Fixes numpad keys not producing digits when NumLock is ON, especially on Wayland where native modifier detection is unreliable (#1901)
  • Fixes modifier-only key presses (Shift, Ctrl, Alt, etc.) incorrectly scrolling the viewport to the bottom when Kitty keyboard protocol ReportAllKeysAsEscapeCodes is enabled
  • Fixes Home/End key encoding in Kitty keyboard protocol (extended keyboard input generator)
  • Fixes Kitty keyboard protocol: F1-F4 CSI u key codes, legacy F1-F4 modifier encoding, CSI u gating for ReportEventTypes and ReportAllKeys flags, lock modifier handling, and Press event type suppression
  • Fixes Kitty keyboard protocol: proper CapsLock/NumLock modifier reporting, correct modifier encoding per spec, and Unicode case folding for non-ASCII characters
  • Fixes tab characters (HT) intermittently lost in terminal output due to bulk text parser skipping trailing C0 controls and tab cursor movement not filling intermediate cells with spaces (#1876)
  • Fixes text rendering artifacts and corruption when rapidly outputting content
  • Fixes garbled or missing characters when displaying Unicode text
  • Fixes glyph scaling and vertical centering of colored emoji
  • Fixes Sixel images not rendering on non-first tabs
  • Fixes selective erase (DECSED/DECSEL) incorrectly erasing the cursor line instead of the target line when erasing lines without protected characters (#28)
  • Fixes Insert Replace Mode (IRM, CSI 4 h) not shifting text right on character insertion (#1877)
  • Fixes DECXCPR (Extended Cursor Position Report) to report the correct page number instead of hardcoded page 1
  • Fixes terminal shrinking/growing on tab switch when status line is displayed
  • Fixes WINDOWMANIP cell-based resize (CSI 8;rows;cols t) gaining columns at non-integer content scale
  • Fixes initial terminal window size being wrong at fractional DPR (e.g. 127×29 instead of configured 130×30 at 150% scaling on Wayland, #1858)
  • Fixes initial font sizing at fractional DPR on Wayland by preferring screen DPR over window DPR
  • Fixes ~2s startup delay caused by synchronous Qt multimedia driver probing by deferring audio initialization to a background thread
  • Fixes build failure on Alpine Linux (musl libc) due to missing close_range() function (#1879)
  • Fixes third-party dependency files (headers, libraries) leaking into install tree (#1788)
  • Fixes size of the window when using tiling WM (#1908)

0.6.2 (2026-01-07)

  • Security: Fixed Out-of-Bounds Write in SequenceParameterBuilder (CWE-787)
  • Security: Fixed SSH Trust-On-First-Use (TOFU) vulnerability (CWE-295) with interactive host key verification
  • Security: Fixed potential Integer Overflow in parameter parsing (CWE-190)
  • Security: Fixed sensitive data exposure in debug logs (CWE-532)
  • Fixes insert mode / default status line colorscheme loading (#1737)
  • Fixes CancelSelection default binding with escape (#1710)
  • Fixes CreateTab to sometimes spawn more than one tab (#1695)
  • Fixes crash using Chinese IME (#1707)
  • Fixes NumLock key handling (#1713)
  • Fixes handling of multiple windows and tabs (#1725)
  • Fixes crash on scaling down some symbols during font size change
  • Fixes mouse scrolling speed being too slow
  • Fixes crash in vi normal mode when using y0 (#1801)
  • Fixes empty history jump (#1781)
  • Fixes double line box drawing characters
  • Fixes DECRQM (DEC Request Mode) response (#1797)
  • Fixes Precondition failure when rendering vertically overflowing glyphs (#1805)
  • Fixes fish-shell keyboard input protocol behavior; acting as if it would be broken on e.g. control keys (weird handling of CSIu input protocol)
  • Fixes ssh.known_hosts configuration loading incorrectly mapping to ssh.public_key_file
  • Fixes option_as_alt configuration option not working (#1812)
  • Fixes assertion when displaying Sixel images
  • Fixes Sixel image scaling to respect the grid cell size (including font resize related glitches)
  • Fixes Blur support on Windows 11
  • Fixes Sixel image regression
  • Enables customizing predefined color palette (#1763)
  • Enables Sixel support on Windows
  • Ensure inserting new tabs happens right next to the currently active tab (#1695)
  • Allow glyphs to underflow if they are not bigger than the cell size (#1603)
  • Adds contour.exe to system search path on Windows during installation
  • Adds MoveTabToLeft and MoveTabToRight actions to move tabs around (#1695)
  • Adds MoveTabTo action to move tabs to a specific position (#1695)
  • Adds handling of control codes for Ctrl+5|6|7|8 (#1701)
  • Adds CenterCursor (zz) vi motion
  • Adds ability to name tabs (#1690)
  • Adds dynamic loading of conpty.dll to allow mouse mode on Windows 10
  • Adds git graph drawing glyphs
  • Adds new arc style for box drawing characters
  • Adds multiple rendering options for braille characters
  • Adds configuration action ToggleInputMethodHandling to allow toggling IME (Input Method Editor) handling (#1813)
  • Adds configuration option input_method_editor to profile settings to opt-out of IME (Input Method Editor) support (#1817)
  • Adds background blur support for KDE Plasma on Wayland (for Qt 6.5.0 and newer)
  • Adds VT sequences for double width / double height lines, DECDHL, DECDWL, DECSWL (#137)
  • Adds VT sequence extension OSC 133 shell integration (#793)
  • Adds support for rendering COLRv1 fonts (e.g. new Google Noto Color Emoji)
  • Drop Qt5 support

0.6.1 (2024-12-31)

  • Do not abort when failing to create XDG_STATE_HOME/contour/crash directory
  • Fixes DECRQSS for SGR (#1696)
  • Fixes tab switch crash after resize
  • Fixes tab shrinking after tab creation/switches when a non-zero horizontal window margin is configured
  • Fixes startup crash when window is not yet fully initialized
  • Fixes backtab (Shift+Tab) handling (#1685)
  • Fixes various spelling typos across the codebase (#1688)
  • Improve tab close handling to better select previously focused tab
  • Change colors terminfo entry from 256 up to 32767 colors
  • Add action SwitchToPreviousTab to switch to the previously focused tab

0.6.0 (2024-12-26)

  • Fixes search editor preservation bug on exit from search mode
  • Expose current profile's name through env var CONTOUR_PROFILE (#1637)
  • Add terminal tabs (#90)
  • Add SaveScreenshot and CopyScreenshot action (#210)
  • Protect user from accidentally pasting too large input (#1198)
  • Add binding to exit normal mode with Esc (#1604)
  • Add config option to switch into insert mode after yank (#1604)
  • Add vi-like normal mode Jumps. '', C-O and C-I motions (#1101)
  • Improves window size/resize handling on HiDPI monitor settings (#1628)
  • Improves macOS key handling for Option+Left|Right keys to jump between words in the shell
  • Fixes cropping of underscore character for some fonts (#1603)
  • Fixes DECFRA limits (#1664)
  • Fixes underline styles not being reset on switching to a new style (#1365)

0.5.1 (2024-09-30)

  • Fixes vi-mode motions like viW, yiW, oiW as well as B and W
  • Fixes rendered backend loading from config
  • Fixes mouse wheel scrolling on High-DPI screens feeling too slow
  • Enable support for Unicode version 16.0.0 (#1606)
  • Port to C++20's std::format() (#1598)
  • Drop support for Ubuntu 23.10 and older. In order to have less burdain of maintencne, we only support the latest LTS of Ubuntu, which currently is 24.04 (#1607)

0.5.0 (2024-09-18)

  • macOS package is now Apple Silicon native
  • Add CoreText font fallback implementation for macOS (#1533)
  • Add Ubuntu-24.04 in github actions (#1460)
  • Add 'early_exit_threshold' config option (#1460)
  • Add AppImage package with Qt6 support (#586)
  • Add ability to customize the indicator statusline through configuration (#687)
  • Add generation of config file from internal state (#1282)
  • Add SGRSAVE and SGRRESTORE VT sequences to save and restore SGR state (They intentionally conflict with XTPUSHSGR and XTPOPSGR)
  • Add extended word selection feature (#1023)
  • Add some more missing vi input motions, such as y$, o$, and many others as initiated by y and o (#1441)
  • Add CPM fallback for the dependencies
  • Add static build
  • Add shell integration for bash shell.
  • Add better bell sound (#1378)
  • Add config entry to configure behavior on exit from search mode
  • Add config entry to configure font fallback (#225)
  • Add handling of different input commands (#629)
  • Add key bindings disabled indicator for status line (#783)
  • Add support for highlighting matches of the currently selected text area (beyond double click)
  • When switching to normal mode screen will stay in same position (#808)
  • Add customizable per-input-mode default text/background coloring for indicator statusline (#1528)
  • Add option PasteSelection to paste text as a shell input (#1549)
  • Add case-insensitive smart search (#1410)
  • Add OpenBSD support
  • Add new CLI command: contour info config to list missing entries from config file (#1125).
  • Add xdg-terminal-exec support (#1570).
  • Add predefined color palettes (monokai, gruvbox-light/dark, solarized-light/dark, papercolor-light/dark, one-light, one-dark) (#1285).
  • Update of contour.desktop file (#1423)
  • Changed configuration entry values for font_locator down to native and mock only (#1538).
  • Do not export the TERM environment variable on Windows OS (when using ConPTY).
  • Fixes line corruption after resize (#883)
  • Fixes resize of trivial line (#916)
  • Fixes copying of wrapped line
  • Fixes deletion of spaces on resize
  • Fixes forwarding of input while in normal mode (#1468)
  • Fixes OSC-8 link id collision (#1499)
  • Fixed overlap of glyphs for long codepoints (#1349)
  • Fixed too verbose info during ssh session login (#1447)
  • Fixes corruption of sixel image on high resolution (#1049)
  • Fixes bad wording of OS/X to macOS (#1462)
  • Fixes key bindings and search prompt collision (#1472)
  • Fixes CSI 8 ; (COLS) ; (ROWS) t to resize the terminal with respect to High-DPI
  • Fixes screen sampling with multiple monitors (#940)
  • Fixes bell sound in spawned window in same process (#1515)
  • Fixes status line crush (#1511)
  • Fixes application window icon on (KDE) Wayland
  • Fixes missing keymapping for numpad (#1325)
  • Improves handling of constant bell sound spawning
  • Fixes yW (yank WORD) not working properly in normal mode (#1448)
  • Fixes key mapping Shift+Tab (#1578)

0.4.3 (2024-02-04)

  • Fixes dead lock bug on mouse selection.

0.4.2 (2024-02-03)

  • Fixes Windows alt/control key modifiers (#1408).
  • Fixes Windows built accidentally not including builtin-SSH support (#1427).
  • Fixes some text run segmentation problems, e.g., not making use of some programming ligatures (#395).
  • Fixes mouse scroll wheel events going into the wrong direction if Alt modifier was pressed at the same time (#394).
  • Fixes scripts/install-deps.sh for openSuSE (Tumbleweed) to install the correct dependencies.
  • Fixes missing dependencies for release .deb packages (#1397).
  • Fixes legacy keyboard input protocol not reporting non-Alt modifier (#1411).
  • Fixes thread safety issue on mouse move event handling (#1444).
  • Digitally sign MacOS release binaries using a valid Apple ID.
  • Add support for authenticating to SSH servers with a private key without a password and without requesting for one - also allow password retry (#1425).
  • Default history limit is now 1000 lines rather than 0 lines.

0.4.1 (2023-12-31)

  • Fixes fast scrolling when using trackpad (#1360)
  • Fixes variable fonts loading
  • Fixes Command modifier for input mappings, such as Command+C or Command+V on on MacOS (#1379).
  • Fixes CSIu encoding of shift modifier produced characters (#1373).
  • Fixes screen destruction on sibling cells when overwriting wide characters, such as Emoji, Kanji, etc.
  • Changes VT sequence DECSCUSR (CSI ? 0 SP q and CSI ? SP q) to reset to user-configured cursor style (#1377).
  • Remove contour-latest terminfo file. Please use contour terminfo instead.
  • Adds Command as modifier to input mappings on MacOS to work along with Meta for convenience reasons (#1379).
  • Adds config option profiles.*.margins to allow customizing the horizontal / vertical margins (#1384).
  • Adds config option for colorscheme default.bright_foreground and default.dimmed_foreground to configure bright and dimmed default foreground text respectively (#1383).

0.4.0 (2023-12-19)

  • Fixes GUI terminating on idle input in some conditions.
  • Fixes search term rendering highlighting for search terms containing whitespaces (#966).
  • Fixes rendering in cases of glyphs with inverted orientation (#1115).
  • Fixes Emoji rendering being too small on macOS (#1215)
  • Fixes config option show_title_bar (#1153)
  • Fixes VT sequence DECSTBM and DECSLRM defaulting parameters (#1164).
  • Fixes VT sequence DECFRA (#1189).
  • Fixes VT sequence DECSCPP and DECCOLM (#1205).
  • Fixes VT sequence DECALN to properly reset margins when statusline is shown
  • Fixes VT sequence ED (CSI J) when statusline is shown.
  • Fixes VT sequence SM ?1003 (Any Event mouse tracking) not reporting mouse move events.
  • Fixes VT sequence XTWINOPS (CSI 22 t and CSI 23 t) to not assert and terminate the terminal but default to missing paramter 0 instead (#1369).
  • Fixes VT sequences CUU/CUD/CUF/CUB to better respect margins (#1201)
  • Fixes printing over 2nd cell of a wide character should delete wide character (#1268)
  • Fixes URI re-encoding of local files in OSC 8 (#1199)
  • Fixes LCD subpixel rendering for overly wide US-ASCII glyphs (#1022)
  • Fixes alive process when GUI is closed
  • Fixes vi mode f action freeze on last line
  • Fixes AltGr handling on Windows (#150)
  • Fixes rarely happening bad access to GPU texture atlas (#1309)
  • Fixes terminal session not being terminated when the process terminated, but the PTY handle was still open (e.g. by other processes).
  • Fixes setting window class (app_id) on Wayland (#1336)
  • Fixes screen margins not being shared across primary and alt screen, as it should be.
  • Do not clear search term when entering search editor again.
  • Clear search term when switch to insert vi mode (#1135)
  • Delete dpi_scale entry in configuration (#1137)
  • Removes the ability to inline colorschemes within a configuration profile. Colorschemes must now always be referenced by their name.
  • Moves the vi-like cursor with the viewport when scrolling up/down.
  • Adds normal mode motion Ctrl+e and Ctrl+y to vertically move the viewport.
  • Adds the ability to chose a color scheme based on the operating systems's dark/light mode setting. This will change live whenever the OS's dark/light mode setting changes as well (#604).
  • Adds VT sequence DECSSCLS (change scroll speed) and properly handle DECSCLM (enable slow scrolling mode) (#1204)
  • Adds VT sequence parameter ?996 to DSR to request a report of current color scheme dark/light mode hint.
  • Adds VT sequence SM ?2031 and RM ?2031 to enable/disable unsolicited DSR for color scheme updates by the user or OS.
  • Adds support the extended CSIu keyboard protocol to better report key modifiers.
  • Adds extended keyboard protocol support (CSI u) to better report key modifiers.
  • Adds support vor horizontal mouse scrolling event reporting sequences.
  • Adds percentage value to Indicator Statusline to indicate scroll offset in scrollback buffer.
  • Adds inheritance of profiles in configuration file based on default profile (#1063).
  • Adds config option profiles.*.bell to adjust BEL behavior (#1348) and fixes (#1162) and (#1163).
  • Adds config option profiles.*.frozen_dec_modes to permanently enable/disable certain DEC modes.
  • Adds config option profiles.*.option_as_meta to allow remapping Option key to Alt on MacOS.
  • Adds config option profiles.*.ssh to allow connecting to an SSH server directly from Contour.
  • Adds capital A and I keys to switch from normal mode back to insert mode, too.
  • Adds size indicator window on resize (#1203).
  • Adds config entry profile.*.size_indicator_on_resize to control size indicator on resize and makes resize indicator small.
  • Adds OpenSelection action, and honor case in the configuration bindings
  • Adds open resource (URL, local file) feature also to vi mode.
  • Adds configurable window alerts on terminal bells.

0.3.12 (2023-05-29)

  • Fixes terminfo tsl to how todays apps are using it (e.g. zsh) to simply set the window title.
  • Fixes selecting a single character not working easily (#1066).
  • Fixes cycling between different selection modes (by speed-clicking) not properly working.
  • Fixes tcsh shell integration not working (#1074).
  • Fixes [count]w ignoring the [count] parameter in modal mode.
  • Fixes statusline being misplaced after resize when being in alt screen (#1091).
  • Fixes hyperlinks with IDs (#1088)
  • Fixes hyperlink highlight when screen has been scrolled (#1084)
  • Fixes cursor shape changes when entering vi-like normal mode or visual mode.
  • Improves mouse selection to be more natural extending into new grid cells.
  • Modal mode: Improves how [m jumps from the current prompt to the next prompt above it.
  • Adds profiles.*.permissions.display_host_writable_statusline to allow the user to intervene in DECSSDT 2 VT sequence to show the host writable statusline.
  • Adds config entry input_method_editor colorscheme key to allow customization of the IME (input method editor) region (#1058).
  • Adds gui.shader log option for the output of shader configuration procedure (#715).
  • Adds config entry profiles.*.status_line.position to change statusline position to be either bottom (default) or top.
  • Adds config entry profiles.*.status_line.sync_to_window_title to synchronize the window title with the host writable statusline (if it was denied to be shown).
  • Linux: Adds support for writing to utmp/wtmp.
  • Extends ViNormalMode to toggle between insert and normal mode rather than just entering normal mode.
  • Modal mode: Adds Return key to also move the cursor down (like vim).
  • Model mode: Adds text object im and am to select the range between two line marks.
  • Model mode: Adds handling of Home and End keys (#1098).

0.3.11 (2023-03-01)

  • Fixes normal mode motion J and K that got accidentally unimplemented and make it also available to visual mode.
  • Fixes use of config bypass_mouse_protocol_modifier that was ignored.
  • Fixes abnormal termination on incomplete foreground/background color-pair specification.
  • Fixes SendChars input acion to actually send the chars as-is to the standard input of the connected application.
  • Fixes mouse selection to only be initiated if actually meant to, i.e. in alt screen mode only if bypass-modifier was pressed (#1017).
  • Fixes mouse selection within scrolloff setting to not cause the viewport to jump anymore (#1019).
  • Fixes rendering sixel image when status line is active (#1050).
  • Adds normal mode motion [[, ]], [], ][ mimmicking exactly what vim does.
  • Adds normal mode motion [m and ]m to jump line marks up/down.
  • Adds normal mode motion mm to toggle the line mark at the current active cursor position.
  • Adds normal mode motion t{char}, T{char}, f{char}, F{char}, ;, , to move cursor in line till before/after or to given {char}.
  • Adds config entry vi_mode_highlight to color palette to highlight current cursor's line when not in insert mode (aka. in Vi-mode).
  • Adds shell integration for fish shell.
  • Adds shell integration for tcsh shell.
  • Improve performance of parsing UTF-8 text on ARM64 platfroms through the use SIMD instructions.
  • Contour can now run on platforms not supporting hardware crypto extension for ARM64 nor AES-NI for x86-64. Hardware acceleration support can be configured to be included at compile time.
  • Fixes scroll up when infinte history limit is set

0.3.10 (2023-01-22)

  • Fixes initial_working_directory setting being ignored (#946).
  • Fixes background image being accidentally inverted (Bug introduced in 0.3.3.204).
  • Fixes crash in some corner cases of too small fonts (#949).
  • Fixes linefeed not inheriting graphics attributes when scrolling up to create a new line (#945).
  • Fixes normal mode's motion [count]| that was off by one.
  • Fixes switching to normal mode sometimes placing the vi cursor wrong.
  • Fixes vi-like normal mode's word motions w, e, and b to better emulate vim's behavior.
  • Fixes copying text to clipboard stripping TAB-character generated spaces (#982).
  • Fixes BEL's audio feedback not working on some platform by streamlineing the behavior with a custom bell sound.
  • Adds new config option word_highlight_current and word_highlight_other to better distinguish between double-click initiated word highlights and actual searches / selections.
  • Adds trace mode to single-step through each VT sequence. New actions: TraceEnter, TraceLeave, TraceStep, TraceBreakAtEmptyQueue and new mode flag Trace.
  • Adds implementation for SO and SI control codes.
  • Adds ability to explicitly disable a font feature by prefixing the feature with a -, such as -calt, explicitly enabling via + prefix was added as well.
  • Adds terminal capability hs and es to improve status-line feature detection via terminfo.
  • Adds normal mode motion: B, B, E.
  • Adds support for mouse in normal mode for selection and normal-mode's cursor placement.
  • Changes terminfo entries tsl, fsl and dsl to make use of the host-writable statusline.
  • Improvements to text objects in vi-like normal mode (i), a), i>, a>, i], a], i}, a}).
  • Improvements to vi-like normal mode: yank-motions (yw, y$, etc).
  • Improvements to vi-like normal mode: support nested matching pairs, such as {, ( etc in text objects.
  • Improvements to vi-like normal mode: Add % motion to jump to matching symbol pairs.
  • Improvements to vi-like normal mode: Add M motion to jump to middle screen line (same column).
  • Improvements to vi-like normal mode: Add P to paste the clipboard with newlines stripped.
  • Improvements to vi-like normal mode: Add SP and BS to move left/right.

0.3.9 (2022-12-24)

  • Fixes statusline clock to show the correct local time.
  • Fixes running within OpenGL/ES context.
  • Fixes failing startup due to background_image.path pointing to a non-existing file (#928).
  • Fixes terminfo entries Se, and adds missing entries Rmol, Sync (#936).
  • Fixes rendering glitches (reverting PR #918 until a better solution has been found).
  • Fixes loading TTC (TrueType Collection) font files not honor which face to load within the collection (#939).
  • Adds config entry mouse.hide_while_typing to specify mouse behavior while typing whether hide it or not.
  • Adds config entry indicator_statusline_inactive colorscheme key to colorize the status line differently when the terminal is currently not in focus.

0.3.8 (2022-12-18)

  • Fixes restoring the cursor visibility after leaving alternate screen when application wasn't restoring mode switches in reverse order.
  • Fixes country flags rendering due to misleading grapheme cluster segmentation in corner cases.
  • Fixes mouse reporting in primary screen when viewport has been scrolled into the scrollback area.
  • Fixes VT sequence DECSTR (soft reset) to not move the cursor to home position.
  • Fixes cursor movements for the vi-like cursor (normal mode).
  • Fixes Alt+Backspace on macOS.
  • Fixes default config entry profiles.*.draw_bold_text_with_bright_colors (it was renamed from profiles.*.bold_is_bright). Please rename this in your existing configuration if not done yet.
  • Fixes sometimes rendering two cursors when statusline is shown.
  • Fixes normal mode's page top (S-H)/ page bottom (S-L) cursor movements to respect scroll offset.
  • Fixes VT sequences RIS and action ClearHistoryAndReset when statusline is shown.
  • Fixes cursor going beyond the terminal screnn in vim mode, move right motion (#917).
  • Fixes selection while statusline is shown. (#910)
  • Improves hard-reset (RIS) to restore initial statusline state.
  • Improves $ motion in vi-like normal mode to point to the last non-empty grid cell in the current line instead of the right page margin.
  • Vi Mode search can handle line wrapping and searchText larger than line length (#869) (#870).
  • Adds ability to highlight same words on double click via profile.*.highlight_word_and_matches_on_double_click.
  • Adds color scheme key indicator_statusline.foreground and indicator_statusline.background to customize indicator statusline colors.
  • Adds clock to indicator status line.
  • Adds current viewport position in scrollback buffer to indicator status line.
  • Adds optional parameter strip to PasteClipboard configuration action to allow stripping newlines and normalizing whitespaces.
  • EXPERIMENTAL: Adds VT extension to enable passive mouse tracking via CSI ? 2029 h / CSI ? 2029 l. Passive mouse tracking enables the application to get notified on mouse events while still allowing mouse selection.
  • EXPERIMENTAL: Adds VT extension to enable text selection tracking via CSI ? 2030 h / CSI ? 2030 l.

0.3.7 (2022-11-01)

  • Fixes display of non-insert mode (vi-like) cursor on monochrome lines.
  • Fixes cursor movements on wide characters for the vi-like cursor.
  • Fixes TERM value resolving in Flatpak environment when not escaping the sandbox.

0.3.6 (2022-10-30)

  • Fixes ground-state infinite loop in corner case + refactor and tiny optimization.
  • Fixes assertion in optimized bulk text processing.
  • Fixes rare displacement of characters following a wide character (e.g. Emoji) in some cases.
  • Fixes IME (input method editor) background rendering for wide characters (e.g. Kanji).
  • Fixes escape_sandbox config option that wasn't set to true by default as documented.
  • Improve throughput performance for scroll-up when custom vertical margins are in effect.
  • Improve rendering performance slightly for so called trivial lines.
  • Adds menu entry to Dolphin file manager to open Contour at current working directory.

0.3.5 (2022-10-21)

  • Fixes a problem with oversized glyphs being wrongly cut off (#821).
  • Fixes Sixel handling of non-standard aspect ratio (#827).
  • Fixes Sixel mode, when updating the color palette with a new color, that color must also be used for subsequent paints.
  • Fixes vertical cursor movement for Sixel graphics with only newlines (#822).
  • Fixes Sixel rendering for images with aspect ratios other than 1:1.
  • Fixes Sixel rendering for images that show below but should be rendered above text (#831).
  • Fixes cursor highlight in VI mode
  • Removes images.sixel_cursor_conformance config option.
  • Adds VT sequence DECSCA, DECSEL, DECSED and DECSERA to support protected grid areas during erase operations (#29, #30, #31).
  • Improve Input Method (IME) handling, visualizing preedit-text.
  • Improve throughput performance of arbitrary complex Unicode.
  • Update Unicode data to version 15.0.0 (release). See Announcing The Unicode® Standard, Version 15.0.0.

0.3.4 (2022-09-13)

  • Fixes selection magically deselecting when indicator status line was shown and the top page line was selected.
  • Fixes interpretation of VT sequence DECSDM to disable Sixel auto-scrolling, if enabled.
  • Fixes visibility of the cursor in some situation when blending too much into the background color.
  • Fixes dim/faint coloring to not affect background and default text coloring when feint SGR attribute is set (#786).
  • Fixes SGR 9 (crossed out) and 53 (overline) to both look like underline.
  • Fixes size of drawn sixel image if no size is given beforehand (#809).
  • Fixes glyph rendering for some unexpectly oversized glyphs (#423).
  • Adds line#24 to terminfo file for backwards compatibility.
  • Adds configuration key live_config to determine whether or not to reload running terminal instances on every config file change.
  • Adds DEC-mode 2027 for enabling/discovering Unicode support as per draft specification (Terminal Unicode Core).
  • Adds CreateDebugDump action to dump terminal state for debugging purposes.
  • [Flatpak] Adds configuration key profiles.*.escape_sandbox to decide whether or not to escape the sandbox.
  • [Packaging] Adding AppImage files to Github release page and CI artifacts and bump Ubuntu packages using Ubuntu 22.04 LTS
  • [Linux] Changes context menu icon for "Run in Contour" action to be the Contour logo.
  • Improve startup-time by not pre-rasterizing all printable US-ASCII codepoints at once.

0.3.3.204 (2022-08-30)

  • Fixes a screen buffer manipulation bug that may happen on non-stylyzed but interactive command prompts (#787).
  • Fixes viewport misalignment when in scrollback area white new lines are being added to the main page area.
  • Fixes logging file toggle.
  • Adds VT sequence CSI 5m (blink) and CSI 6m (rapid blink).
  • Adds vim-like scrolloff feature to normal mode cursor movements to ensure a line padding when scrolling up/down.
  • Adds vim-like incremental search functionality with realtime highlighting and cycling through the matches.
  • Adds ability to initiate search via configuration action SearchReverse in input mappings.
  • Adds ability to cancel highlighted search terms via configuration action NoSearchHighlight in input mappings.
  • Adds input mapping mode Search to conditionally enable input mapping when a search term is present.
  • Adds support for HSL colorspace in Sixel images.
  • Adds configuration key colorscheme.*.search_highlight for coloring search matches.
  • Adds configuration key colorscheme.*.search_highlight_focused for coloring the active search match, containing the cursor.
  • Adds alpha value to colorscheme.*.vi_mode_highlight color configuration.
  • Adds VT sequence for ANSI mode NLM (NewLine Mode).
  • Always show indicator status line when ANSI mode KAM is enabled (which can be toggled via action ToggleInputProtection).
  • Always show indicator status line when in non-insert mode.
  • [Linux] Changes the .desktop file name and icon file name to conform to the flatpak recommendations.
  • [Linux] Provide an AppStream XML file.
  • [Linux] Drop KDE/KWin dependency on the binary by implementing enabling blur-behind background manually.
  • [Linux] Adds support for blur-behind window on GNOME shell.
  • [Flatpak] Also pass stdout-fastpipe (3) to shell.
  • [Flatpak] Do not set controlling terminal in order to allow TTY abilities like Ctrl+C. This seems to be a known bug in flatpak.
  • [Flatpak] Exposes TERMINFO environment variable pointing to a valid path containing the contour terminfo file.
  • Changes behavior of PTY (and shell process) creation until only when a PTY is required by the terminal emulator during instanciation, possibly avoiding problems with xdotool running too early.
  • Internal: Y-axis inverted to match GUI coordinate systems where (0, 0) is top left rather than bottom left.

0.3.2.202 (2022-07-07)

  • Fixes writing to a non-empty line sometimes destroying the contents of that line (#702).
  • Fixes underline decoration for wide character cells.
  • Fixes SGR 8 (Conceal/Hidden) attribute doesn't work as expected (#699).
  • Fixes Synchronized Updates (SM/RM ? 2026) sometimes lagging behind in rendering.
  • Fixes SGR and text breakage when altering charsets via ESC ( 0 VT sequence (#661).
  • Fixes SEGV when closing the terminal via GUI close button.
  • Fixes scrolling in alt-screen.
  • Fixes VT sequence for setting indexed color from palette.
  • Fixes some config false positives error messages.
  • Fixes command line arguments parser handling of -- for switching to verbatim mode (#670).
  • Fixes rendering of U+E0B2  in pixel-perfect box drawing mode (#707).
  • Fixes rendering of cursor sometimes being almost invisible when foreground and background colors are similar/equal (#691).
  • Fixes line based selection sometimes not selecting the full line when wrapped over multiple lines.
  • Fixes warning message on terminal's console output when enabling blurred background images.
  • Fixes Win32 command output: Attaches to parent console if present, so typing contour help in a terminal actually shows something.
  • Changes XTSMGRAPHICS to match implementation of xterm exactly when querying sixel image limits, to be capped at terminal viewport dimensions (#656).
  • Changes CLI syntax for contour parser-table to contour generate parser-table.
  • Implements UTF-8 encoded mouse transport (CSI ? 1005 h)
  • Modal mode: Improved vi-like input modes.
  • Modal mode: Fixed the text cursor not being visible during selection.
  • Modal mode: Don't leak but actually support cursor keys up/down/left/right/page-up/page-down.
  • Modal mode: Added vip, vap (and yip / yap) motions.
  • Modal mode: Adds ^ motion.
  • Modal mode: When being in normal mode, pressing a also puts you back to insert mode.
  • Modal mode: Properly show cursor if it was hidden in insert mode and restore visibility & shape when going back to insert mode.
  • Modal mode: Shift+K and Shift+J don't just move the cursor up/down but also move the terminal's viewport respectively (inspired by tmux).
  • Modal mode: Shift+H and Shift+L to move cursor to the current viewport's page top/bottom (inspired by tmux).
  • Modal mode: and more...
  • Adds new config option profile.*.vi_mode_highlight_timeout and colorscheme.*.vi_mode_highlight and adds cell highlighting on yank (#669).
  • Adds support for running on ARMv8 platform with crypto extensions (#611).
  • Adds back support OpenGL ES (3.1).
  • Adds E3 capability, so clear now defaults to clearing screen and scrollback (#693).
  • Adds specialized PTY implementation for Linux operating system utilizing OS-specific kernel APIs.
  • Adds basic support for Indicator status line and their VT sequences DECSASD and DECSSDT, and DECRQSS has been adapted (#687).
  • Adds configuration option profiles.*.status_line.display to be either none or indicator to reflect the initial state of the status line (more customizability of the Indicator status-line will come in future releases).
  • Adds new action ToggleInputProtection to protect terminal application against accidental input (#697).
  • Adds configuration options logging.enabled as well as logging.file.
  • Adds VT sequences XTPUSHCOLORS, XTPOPCOLORS, XTREPORTCOLORS (#714).
  • Adds CLI syntax contour info vt to print list of supported VT sequences (#730).
  • Adds VT sequence DECPS (#237).
  • Adds new config option colorscheme.selection.foreground_alpha and colorscheme.selection.background_alpha to enable somewhat more eye-candy visual looks on text selection.
  • Extends config option colorscheme.selection.foreground and colorscheme.selection.background to also accept CellForeground and CellBackground as value.

0.3.1.200 (2022-05-01)

  • Adds Vi-like input modes for improved selection and copy'n'paste experience.
  • Adds contour executable to search path for spawned shell process on macOS and Windows.
  • Adds customizability to dim colors (#664).
  • Adds the profile configuration option: draw_bold_text_with_bright_colors.
  • Fixes CSI K accidentally removing line flags, e.g. line marks (#658).
  • Fixes wrong-spacing rendering bug on some lines.
  • Fixes assertion on font resize when a (Sixel) image is currently being rendered (#642).
  • Fixes assertion on too quick shell terminations (#647).
  • Fixes fallback shell execution on UNIX-like systems when the reuqested shell cannot be spawned (#647).
  • Fixes selection being wrongly rendered when viewport is scrolled (#641).
  • Fixes full-line selection not properly injecting linefeeds between the lines.
  • Changes behavior of full-line selection to include a trailing linefeed for the last line (#641).
  • Changes behavior of bold text to by rendered using normal colors by default (was forced to bright before, and is now configurable via draw_bold_text_with_bright_colors).

0.3.0.198 (2022-04-18)

TLDR; Many thanks to all for the great support and feedback. This release marks a huge milestone for me especially with regards to VT backend performance(!), improved rendering architecture, and a more complete list of pixel perfect box drawings.

  • Fixes installation from .deb (missing terminfo dependency)
  • Fixes PTY write race condition.
  • Fixes VT sequence DECFI.
  • Fixes VT sequence ICH (#559).
  • Fixes VT sequence OSC 4's response.
  • Fixes VT sequence OESC 4 to also support setting color via #RRGGBB.
  • Fixes VT sequence extension: capture buffer (#493).
  • Fixes DECRC with respect to DECSTBM enabled and DECOM being inverted interpreted.
  • Fixes XTGETTCAP (#582).
  • Fixes SU in combination with DECLRM (#593).
  • Fixes an assertion in text renderer.
  • Fixes wrongly advertising DEC locator mode (it is not supported).
  • Improved VT backend performance (#342).
  • Improved text selection behavior.
  • Improved detection of runtime DPI changes for KDE (Plasma) desktop environment.
  • Improves Window manipulation VT sequence for saving/restoring window title (CSI 22 ; Ps t, CSI 23 ; Ps t)
  • Adds pixel-perfect box-drawing for U+EE00 .. U+EE05 for progress bar glyphs as first introduced by Fira Code (#521).
  • Adds pixel-perfect box-drawing for U+E0B0, U+E0B2, U+E0BA (Triangle Powerline glyphs).
  • Adds preliminary implementation of DA3 VT sequence.
  • Adds new configuration option mouse_block_selection_modifier.
  • Adds new configuration option profiles.*.copy_last_mark_range_offset (default 0) to adjust where to start looking upwards for the CopyPreviousMarkRange action. This is useful for multi-line prompts.
  • Adds new configuration option platform_plugin.
  • Adds new configuration option renderer.backend for explicitly setting renderer to one of: OpenGL, software, default.
  • Adds new configuration option renderer.tile_hashtable_slots to configure texture atlas hashtable capacity.
  • Adds new configuration option renderer.tile_cache_count to configure texture atlas cache capacity.
  • Adds new configuration option renderer.tile_direct_mapping to enable/disalbe texture atlas direct mapping.
  • Adds new colorscheme setting background_image.path and background_image.opacity to optionally render a terminal background image.
  • Adds stdout-fastpipe support on new shell file descriptor 3 and exposing availability via environment variable STDOUT_FASTPIPE (with value 3). When writing to this file descriptor rather than to stdout (file descriptor 1), the full performance of Contour can be explored.
  • Adds new configuration option pty_buffer_size for tweaking the new size in bytes for the PTY buffer objects.
  • Adds mock font locator (mostly interesting for advanced use for CI testing).
  • Adds VT sequence SM ? 8452 h / RM ? 8452 l for enabling/disabling sixel cursor placement conformance (xterm extension).
  • Adds SGR-Pixels support, VT sequence SM ? 1016 h / RM ? 1016 l (#574).
  • Adds VT sequence DECCARA, Change Attributes in Rectangular Area, with the extension that it applies to all SGR attributes. (#15).

0.2.3.183 (2022-01-09)

Important: It is recommended to also use the latest contour termcap file if you are already using one from a previous release.

  • Fixes Sixel image rendering when scrolling is needed and ANSI cursor is not on left margin.
  • Fixes Qt-related CLI options that that were largely ignored.
  • Fixes crash caused by VT sequence PM and SOS (#513).
  • Fixes parsing VT sequence RGB color parsing for cell decoratioins (e.g. underline).
  • Fixes double-underline to not look like a very thick line on small font sizes.
  • Applies antialiasing to curly underline.
  • Changes contour exit code to reflect the shell's exit code of the last closed window.
  • Improves text cursor rendering and extends cursor configuration accordingly (#526).
  • Improves visual appearance of dotted underline SGR.
  • Adds CLI option terminal early-exit-threshold SECS (defaulting to 6) to only report and wait if the process did exit below this threshold seconds.
  • Adds CLI option terminal dump-state-at-exit to auto-dump internal state at exit.
  • Adds support for CoreText for matching font descriptions and font fallback (#479).
  • Adds support for font feature settings. This is currently only implemented for openshaper, not yet for dwrite (#520).
  • Adds pixel-perfect box-drawing for U+E0B4, U+E0B6, U+E0BC, U+E0BE (some Powerline extended codepoints).

0.2.2.175 (2021-11-19)

  • Fixes input mapping containing Control modifier.
  • Fixes input mapping mode Select being ignored.
  • Fixes Modifier+Enter input mapping not being caught.
  • Fixes slant detection for DirectWrite.
  • Changes DECCOLM to only switch back to 80 when it was 132 before.
  • Adds new config option spawn_new_process to define new terminal window behavior.
  • Adds action CancelSelection to allow actively canceling selection via input mappings.
  • Adds key bindings to default configuration to allow simply pressing Ctrl+C/Ctrl+V (without Shift modifier) when an active selection is present.
  • Adds process current working directory on macOS.
  • Adds contour license CLI command to show project license but also an overview of all dependencies.
  • Adds a proper CLI to bench-headless. Building the headless benchmark tool is not shipped by default.

0.2.1.174 (2021-11-14)

  • Reverts change from 0.2.0: "Changes behavior when receiving U+FE0E (VS15) to not enforce the width of 1 but leave it as is (usually 2). This seems to match what the web browser is doing, too."
  • Adds support for loading terminal color schemes from an external file, such as ~/.config/contour/colorschemes/onedark.yml for the scheme onedark (file file format is simply a sub-tree of how colors can be specified inline).
  • Adds some more tmux-extension entries to the terminfo database that are supported by contour (Ss, Se, Cs, Smol, Smulx, Setulc).
  • Adds Sync capability entry to terminfo file.
  • Adds many more pixel-perfect graphical characters: 23A1..23A6, 2580..2590, 2594..259F, 1FB00..1FB3B, 1FB3C..1FBAF, 1FBF0..1FBF9.
  • Adds support for building with embedded FreeType and HarfBuzz (experimental, disabled by default).
  • Adds a shell early-exit-guard to not instantly close the terminal window but print a message instead and wait for any key press in order to close.
  • Adds missing config option read_buffer_size to default contour.yml.
  • Adds new config option reflow_on_resize to mandate whether or not text reflow is enabled on primary screen. If this option is false, it cannot be enabled programmatically either.
  • Adds new config option on_mouse_select to decide what action to pick when text has been selected (copy to clipboard or copy to selection-clipboard, or do nothing)
  • Unicode data updated to version 14.0 (release). See Announcing The Unicode® Standard, Version 14.0.
  • Do not force OpenGL ES on Linux anymore.
  • Changes default (Sixel) image size limits to the primary screen's pixel dimensions (#408).
  • Changes font locator engine default on Windows to DirectWrite (#452).
  • Changes tcap-query feature from experimental to always enabled (not configurable anymore).
  • Automatically detect if contour or contour-latest terminfo entries are present use that as default.
  • Fixes VT sequences that cause a cursor restore to sometimes crash.
  • Fixes terminfo installation path on macOS and tries to auto-set TERMINFO_DIRS to it on startup (#443).
  • Fixes terminfo entry pairs.
  • Fixes SGR 24 to remove any kind of underline (#451).
  • Fixes font fallback for open_shaper where in rare cases the text was not rendered at all.
  • Fixes CPU load going up on mouse move inside terminal window (#407).
  • Fixes terminfo entries accidentally double-escaping \E to \\E (#399).
  • Fixes RGB color parsing via ':2::Pr:Pg:Pb' syntax and also adapt setrgbf & setrgbb accordingly.
  • Fixes SEGV with overflowing (Sixel) images (#409).
  • Fixes XTSMGRAPHICS for invalid SetValue actions and setting Sixel image size limits (#422).
  • Fixes internal pixel width/height tracking in VT screen, which did affect sizes of rendered Sixel images (#408).
  • Fixes configuring a custom shell on macOS (#425).
  • Fixes off-by-one bug in builtin box drawing (#424).
  • Fixes assertion in text renderer with regards to colored glyphs.
  • Fixes Sixel background select to support transparency (#450).
  • Fixes session resuming on KDE desktop envionment which is respawing all Contour instances upon re-login but failed due to invalid command line parameters (#461).
  • Fixes Meta+Key keyboard inputs being ignored.
  • Changes DECSDM such that it works like a real VT340; also xterm, as of version 369, changed that recently (#287).
  • Adds context menu support for KDE.

0.2.0.173 (2021-08-17)

  • Improved performance (optimized render loop, optimized grapheme cluster segmentation algorithm)
  • Improves selection to better automatically deselect on selected area corruption.
  • Fixes ioctl(..., TIOCGWINSZ, ...) pixel values that were only set during resize but not initially.
  • Fixes mouse in VIM+Vimspector to also change the document position when moving the mouse.
  • Fixes SGR decorations to use designated underline thickness and underline position.
  • Fixes font glyph render in some corner cases where the rendered glyph did result in rectangle garbage on the screen.
  • Fixes copying the selection containing trailing whitespaces.
  • Fixes hard-reset with regards to default tab width.
  • Fixes VT sequence DECRQPSR for DECTABSR.
  • Fixes keyboard keys for F1..F4 when pressed with and without modifiers.
  • Fixes OSC 8 hyperlink rendering when scrolled.
  • Fixes SGR 1 (bold) wrongly applied on indexed background colors.
  • Fixes text shaping sometimes showing missing glyphs instead of the actual glyphs (by changing the last-resort font fallback mechanism to chape each cluster individually with its own font fallback).
  • Preserve active profile when reloading config, and forces redraw after config reload.
  • Changes config entry profile.*.font_size to profile.*.font.size.
  • Changes config entries scrollbar.* to profile.*.scrollbar.*.
  • Changes behavior of live configuration reload, which is not default anymore and must be explicitly enabled via CLI parameter --live-config.
  • Changes behavior when receiving U+FE0E (VS15) to not enforce the width of 1 but leave it as is (usually 2). This seems to match what the web browser is doing, too.
  • Changes the CLI command line interface syntax.
  • Removes tab_width configuration. Tab width cannot be configured anymore but remaints by default at 8.
  • Adds basic automatically created archive for Arch Linux to the CI build artifacts page and release page.
  • Adds support for bypassing the mouse protocol via Shift-click (configurable via bypass_mouse_protocol_modifier)
  • Adds improved debug logging. via CLI flag -d (--enable-debug) to accept a comma seperated list of tags to enable logging for. Appending a * at the end of a debug tag will enable all debug tags that match prefix its prefix. The list of available debuglog tags can be found via CLI flag -D (--list-debug-tags).
  • Adds support for different font render modes: lcd, light, gray, monochrome in profiles.NAME.font.render_mode (default: lcd).
  • Adds support for different text render engines: OpenShaper, DirectWrite and CoreText for upcoming native platform support on Windows (and later macOS).
  • Adds support for different font location engines: fontconfig (others will follow).
  • Adds experimental text reflow.
  • Adds OpenFileManager action to configuration.
  • Adds terminal identification environment variables TERMINAL_NAME, TERMINAL_VERSION_TRIPLE and TERMINAL_VERSION_STRING.
  • Adds config option mode to input modifiers for additionally filtering based on modes (alt screen, app cursor/keypad, text selection modes, ...).
  • Adds config option profile.*.terminal_id: STR to set the terminal identification to one of VT100, VT220, VT340, etc.
  • Adds config option profile.*.maximized: BOOL to indicate maximized state during profile activation.
  • Adds config option profile.*.fullscreen: BOOL to indicate fullscreen state during profile activation.
  • Adds config option profile.*.font.strict_spacing: BOOL to indicate that only monospace fonts may be used.
  • Adds config option profile.*.font.TYPE.weight: WEIGHT and profile.*.fonts.TYPE.slant: SLANT options (optional) along with profile.*.fonts.TYPE.family: STRING.
  • Adds config option profile.*.font.TYPE.weight: WEIGHT and profile.*.fonts.TYPE.slant: SLANT options (optional) along with profile.*.fonts.TYPE.family: STRING.
  • Adds config option profile.*.font.dpi_scale: FLOAT to apply some additional DPI scaling on fonts.
  • Adds config option profile.*.font.builtin_box_drawing: BOOL to use pixel-perfect builtin box drawing instead of font provided box drawing characters.
  • Adds config option profile.*.refresh_rate: FLOAT to configure how often the terminal screen will be rendered at most when currently under heavy screen changes. A value of "auto" will use the currently connected monitor's refresh rate.
  • Adds configuration's action ToggleAllKeyMaps to enable/disable intercepting and interpreting keybinds. The one that did toggle it will not be disabled.
  • Adds configuration's action ClearHistoryAndReset to clear the history, and resetting the terminal.
  • Adds VT sequence for enabling/disabling debug logging. CSI ? 46 h and CSI ? 46 l and CLI option -d.
  • Adds VT sequence for querying/setting current font OSC 50 ; ? ST and OSC 50 ; Font ST (and OSC 60 Ps Ps Ps Ps Ps ST for a more fine grained font query/setting control).
  • Adds VT sequence CSI 18 t and CSI 19 t for getting screen character size. Responds with CSI 8 ; $columns ; $rows t and CSI 9 ; $columns ; $rows t respectively.
  • Adds VT sequence to capture the current screen buffer CSI > LineMode ; StartLine ; LineCount t giving the respone back on stdin via OSC 314 ; $screen_buffer ST, and feature detection via DA1 number 314.
  • Adds VT sequence DECSNLS for setting number of lines to display.
  • Adds VT sequence CSI Ps b (REP) for repeating the last graphical character Ps times.
  • Adds VT sequence OSC 4 ; INDEX ; COLOR ST for setting or querying color palette (if COLOR is ? instead of a color spec).
  • Adds VT sequence OSC 104 ; INDEX ST for resetting color palette entry or complete palette (if no (index is given).
  • Adds VT sequence DECCRA to copy a rectangular area.
  • Adds VT sequence DECERA to erase a rectangular area.
  • Adds VT sequence DECFRA to fill a rectangular area.
  • Adds VT sequence CSI > q (XTVERSION) to query terminal identification (name and version). Response comes as DCS >| Contour ContourVersion ST.
  • Adds VT sequence DECRQM to request ANSI/DEC modes states (set / unset / not recognized).
  • Adds new CLI command: contour capture ... to capture the screen buffer.
  • Adds new CLI command: contour set profile to NAME to change the profile on the fly.
  • Adds new CLI command: contour generate terminfo output OUTPUT_FILE to create a Contour terminfo file.
  • Adds new CLI command: contour generate config output OUTPUT_FILE to create a new default config.
  • Adds new CLI command: contour generate integration shell SHELL output OUTPUT_FILE to create the shell integreation file for the given shell (only zsh supported for now). Also adds a pre-generated shell integration file for Linux (and macOS) to /usr/share/contour/shell-integration.zsh.
  • Unicode data updated to version 14.0 beta.
  • Adds support for building with Qt 6 (disabled by default).
  • Adds support for building with mimalloc (experimental, disabled by default).

0.1.1 (2020-12-31)

  • Fixes race condition when displaying image animations (e.g. gifs via sixel).
  • Fixes NewTerminal action to also inherit the active configuration file.
  • Fixes restoring cursor position in RM ?1049.
  • Fixes DECSTR resetting saved-cursor state and active cursor-position.
  • Fixes selecting text not being pushed into the selection-clipboard.
  • Adds VT sequence OSC 7 (set current working directory).
  • Adds VT sequence DCS $ p $Name ST to change config profile name to $Name.

0.1.0 (2020-12-24)

  • Available on all 3 major platforms, Linux, macOS, Windows.
  • Emoji support (-: 🌈 💝 😛 👪 :-)
  • Font ligatures support (such as in Fira Code).
  • Bold and italic fonts
  • GPU-accelerated rendering.
  • Vertical Line Markers (quickly jump to markers in your history!)
  • Blurred behind transparent background when using Windows 10 or KDE window manager on Linux.
  • Runtime configuration reload
  • 256-color and Truecolor support
  • Key binding customization
  • Color Schemes
  • Profiles (grouped customization of: color scheme, login shell, and related behaviors)
  • Clickable hyperlinks via OSC 8
  • Sixel inline images