{"id":13530610,"url":"https://github.com/contour-terminal/contour","last_synced_at":"2025-05-14T01:09:06.411Z","repository":{"id":36974956,"uuid":"202277409","full_name":"contour-terminal/contour","owner":"contour-terminal","description":"Modern C++ Terminal Emulator","archived":false,"fork":false,"pushed_at":"2025-04-04T20:27:09.000Z","size":23226,"stargazers_count":2640,"open_issues_count":191,"forks_count":115,"subscribers_count":20,"default_branch":"master","last_synced_at":"2025-04-06T00:32:38.026Z","etag":null,"topics":["console","emoji","grapheme-cluster","hacktoberfest","library","linux","sixel-graphics","terminal","terminal-emulators","unicode","unicode-support","vte","windows-terminal","xterm"],"latest_commit_sha":null,"homepage":"http://contour-terminal.org/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/contour-terminal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["christianparpart"],"custom":["https://paypal.me/ChristianParpart"]}},"created_at":"2019-08-14T04:56:47.000Z","updated_at":"2025-04-05T18:40:26.000Z","dependencies_parsed_at":"2023-09-22T01:31:11.493Z","dependency_job_id":"6213a7f6-f235-4e91-b03c-e6ad4ded40f3","html_url":"https://github.com/contour-terminal/contour","commit_stats":{"total_commits":3922,"total_committers":48,"mean_commits":81.70833333333333,"dds":"0.13335033146353903","last_synced_commit":"1083ac7ef68ff3c8293b72a0993e66afc5632b1a"},"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contour-terminal%2Fcontour","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contour-terminal%2Fcontour/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contour-terminal%2Fcontour/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/contour-terminal%2Fcontour/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/contour-terminal","download_url":"https://codeload.github.com/contour-terminal/contour/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247486129,"owners_count":20946534,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["console","emoji","grapheme-cluster","hacktoberfest","library","linux","sixel-graphics","terminal","terminal-emulators","unicode","unicode-support","vte","windows-terminal","xterm"],"created_at":"2024-08-01T07:00:52.437Z","updated_at":"2025-05-14T01:09:06.402Z","avatar_url":"https://github.com/contour-terminal.png","language":"C++","funding_links":["https://github.com/sponsors/christianparpart","https://paypal.me/ChristianParpart"],"categories":["HarmonyOS","Uncategorized","C++","Terminal Emulators"],"sub_categories":["Windows Manager","Uncategorized"],"readme":"# Contour - a modern \u0026 actually fast Terminal Emulator\n[![CI Build](https://github.com/contour-terminal/contour/actions/workflows/build.yml/badge.svg)](https://github.com/contour-terminal/contour/actions/workflows/build.yml)\n[![codecov](https://codecov.io/gh/contour-terminal/contour/branch/master/graph/badge.svg)](https://codecov.io/gh/contour-terminal/contour)\n[![C++20](https://img.shields.io/badge/standard-C%2B%2B%2020-blue.svg?logo=C%2B%2B)](https://isocpp.org/)\n[![Discord](https://img.shields.io/discord/479301317337284608.svg?label=\u0026logo=discord\u0026logoColor=ffffff\u0026color=7389D8\u0026labelColor=6A7EC2)](https://discord.gg/ncv4pG9)\n[![Twitch Live Stream](https://img.shields.io/badge/Twitch-Live%20Stream-blue?style=flat-square)](https://twitch.tv/christianparpart)\n\u003cimg alt=\"open collective badge\" src=\"https://opencollective.com/contour-terminal-emulator/tiers/backer/badge.svg?label=backer\u0026color=brightgreen\" /\u003e\n\n![screenshot showcasing notcurses ncneofetch on KDE/Fedora](docs/screenshots/contour-notcurses-ncneofetch.png \"Screenshot\")\n\n`contour` is a modern and actually fast, modal, virtual terminal emulator,\nfor everyday use. It is aiming for power users with a modern feature mindset.\n\n## Features\n\n- ✅ Available on all major platforms, Linux, macOS, FreeBSD, OpenBSD, Windows.\n- ✅ GPU-accelerated rendering.\n- ✅ Font ligatures support (such as in Fira Code).\n- ✅ Unicode: Emoji support (-: 🌈 💝 😛 👪 - including ZWJ, VS15, VS16 emoji :-)\n- ✅ Unicode: Grapheme cluster support\n- ✅ Terminal tabs\n- ✅ Bold and italic fonts\n- ✅ High-DPI support.\n- ✅ Vertical Line Markers (quickly jump to markers in your history!)\n- ✅ Vi-like input modes for improved selection and copy'n'paste experience and Vi-like `scrolloff` feature.\n- ✅ Blurred behind transparent background support for Windows 10 and above as well as the KDE and GNOME desktop environment on Linux.\n- ✅ Blurrable Background image support.\n- ✅ Runtime configuration reload\n- ✅ 256-color and Truecolor support\n- ✅ Key binding customization\n- ✅ Color Schemes\n- ✅ Profiles (grouped customization of: color scheme, login shell, and related behaviours)\n- ✅ [Synchronized rendering](https://contour-terminal.org/vt-extensions/synchronized-output/) (via `SM ? 2026` / `RM ? 2026`)\n- ✅ Text reflow (configurable via `SM ? 2028` / `RM ? 2028`)\n- ✅ Clickable hyperlinks via [OSC 8](https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda)\n- ✅ Clipboard setting via OSC 52\n- ✅ Sixel inline images\n- ✅ Terminal page [buffer capture VT extension](https://contour-terminal.org/vt-extensions/buffer-capture/) to quickly extract contents.\n- ✅ Builtin [Fira Code inspired progress bar](https://github.com/contour-terminal/contour/issues/521) support.\n- ✅ Read-only mode, protecting against accidental user-input to the running application, such as \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eC\u003c/kbd\u003e.\n- ✅ VT320 Host-programmable and Indicator status line support.\n- ✅ and much more ...\n\n## Installation\n\n`contour` is packaged and available for installation on multiple distributions:\n - `Fedora` use official [package](https://packages.fedoraproject.org/pkgs/contour-terminal/contour-terminal/)\n - `Arch` use official [package](https://archlinux.org/packages/extra/x86_64/contour/)\n - `Void` use official [package](https://github.com/void-linux/void-packages/tree/master/srcpkgs/contour)\n - `openSUSE` use official [package](https://build.opensuse.org/package/show/X11:terminals/contour-terminal)\n\nAdditional packages can be found on the release [page](https://github.com/contour-terminal/contour/releases) including:\n - ubuntu package\n - AppImage\n - static build\n - MacOS bundle\n - Windows installer and zipped app\n\n\n### Installing via Flatpak\n\n#### Install from Flathub\n\nClick the following button to install Contour from the Flathub store.\n\n[![Get it on Flathub](https://raw.githubusercontent.com/flatpak-design-team/flathub-mockups/master/assets/download-button/download.svg?sanitize=true)](https://flathub.org/apps/details/org.contourterminal.Contour)\n\n\n#### Prerequisites\n\n- Make sure you have flatpak installed in your system ([here is a tutorial on how to install it](https://flatpak.org/getting.html)), and make sure that the version is \u003e= 0.10 (check it using this command: `flatpak --version`)\n- Add the [flathub](https://flathub.org) repository using the following command: `flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo`.\n- Proceed with one of the following options:\n  - [Install from Flathub](#install-from-flathub)\n  - [Install from GitHub release](https://github.com/contour-terminal/contour/releases)\n\n## Requirements\n\n- **operating system**: A *recent* operating system (macOS, Windows 10+, an up-to-date Linux, FreeBSD or OpenBSD)\n- **GPU**: driver must support at least OpenGL 3.3 hardware accelerated or as software rasterizer.\n- **CPU**: x86-64 AMD or Intel with AES-NI instruction set or ARMv8 with crypto extensions.\n\n## Configuration\n\nIn order to configure Contour, it is necessary to modify the configuration file\n`contour.yml`, which is initially generated in the `$HOME/.config/contour`\ndirectory. Some features also require shell integration. These can be generated\nvia the CLI (see below), these currently exist for zsh, fish and tcsh.\n\n## Installing from source\n\nContour is best installed from supported package managers, but you can build\nfrom source by following the instructions below.\n\n### UNIX-like systems (Linux, FreeBSD, OpenBSD, macOS)\n\n#### Prerequisites\n\n```sh\n./scripts/install-deps.sh\n```\n\nThis script *might* ask you for the administrator password if a package dependency\ncan be insalled via the system package manager.\n\n#### Compile\n\nYou can use cmake presets to compile contour. The full list of available presets can be seen using `cmake --list-presets`. To compile release build for linux or MacOs use `linux-release` or `macos-release` accordingly. FreeBSD and OpenBSD users can use `linux-release` or configure cmake manually.\n\n```sh\ncmake --preset linux-release\ncmake --build --preset linux-release\n\n# Optionally, if you want to install from source\ncmake --build --preset linux-release --target install\n```\n\n#### Windows 10 or newer\n\n#### Prerequisites\n\nFor Windows, you must have Windows 10, 2018 Fall Creators Update, and Visual Studio 2019, installed.\nIt will neither build nor run on any prior Windows OS, due to libterminal making use of [ConPTY API](https://devblogs.microsoft.com/commandline/windows-command-line-introducing-the-windows-pseudo-console-conpty/).\n\n1. Set up [vcpkg](https://vcpkg.io/en/getting-started.html), preferably somewhere high up in the folder hierarchy, and add the folder to your `PATH`.\n\n```\ncd C:\\\ngit clone https://github.com/Microsoft/vcpkg.git\n.\\vcpkg\\bootstrap-vcpkg.bat\n```\n\n2. Install Visual Studio Build Tools (make sure to select the CLI tools for\n   C++, which you might need to do in the separate components tab).\n3. Install Qt6 (i.e. to C:\\Qt)\n4. Open the _developer_ version of Powershell.\n5. In the `contour` source folder execute `.\\scripts\\install-deps.ps1`. This step may take a _very_ long time.\n\n\n#### Compile\n\nIn the _developer_ version of Powershell:\n\n```psh\n# change paths accordingly if you installed QT and vcpkg to somewhere else\ncmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=C:\\vcpkg\\scripts\\buildsystems\\vcpkg.cmake -DCMAKE_PREFIX_PATH=C:\\Qt\\6.5.0\\msvc2019_64\\lib\\cmake\ncmake --build build/\n\n# Optionally, if you want to install from source\ncmake --build build/ --target install\n```\n\n#### Distribution Packages\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/contour-terminal.svg)](https://repology.org/project/contour-terminal/versions)\n\n## CLI - Command Line Interface\n\n```txt\n  Usage:\n\n    contour [terminal] [config FILE] [profile NAME] [debug TAGS] [live-config] [dump-state-at-exit PATH]\n                       [early-exit-threshold UINT] [working-directory DIRECTORY] [class WM_CLASS]\n                       [platform PLATFORM[:OPTIONS]] [session SESSION_ID] [PROGRAM ARGS...]\n    contour font-locator [config FILE] [profile NAME] [debug TAGS]\n    contour info vt\n    contour help\n    contour version\n    contour license\n    contour parser-table\n    contour list-debug-tags\n    contour generate terminfo to FILE\n    contour generate config to FILE\n    contour generate integration shell SHELL to FILE\n    contour capture [logical] [words] [timeout SECONDS] [lines COUNT] to FILE\n    contour set profile [to NAME]\n\n```\n\n# References\n\n* [VT510](https://vt100.net/docs/vt510-rm/): VT510 Manual, see Chapter 5.\n* [ECMA-35](http://www.ecma-international.org/publications-and-standards/standards/ecma-35):\n    Character Code Structure and Extension Techniques\n* [ECMA-43](http://www.ecma-international.org/publications-and-standards/standards/ecma-43):\n    8-bit Coded Character Set Structure and Rules\n* [ECMA-48](http://www.ecma-international.org/publications-and-standards/standards/ecma-48):\n    Control Functions for Coded Character Sets\n* [ISO/IEC 8613-6](https://www.iso.org/standard/22943.html):\n    Character content architectures\n* [xterm](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html): xterm control sequences\n* [console\\_codes](http://man.he.net/man4/console_codes) Linux console codes\n* [Summary of ANSI standards for ASCII terminals](http://www.inwap.com/pdp10/ansicode.txt)\n* [Text Terminal HOWTO (Chapter 7.2, PTY)](http://tldp.org/HOWTO/Text-Terminal-HOWTO-7.html#ss7.2)\n* [ANSI escape code](https://en.wikipedia.org/wiki/ANSI_escape_code) in Wikipedia\n\n### License\n\n```\nContour - A modern C++ Terminal Emulator\n-------------------------------------------\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontour-terminal%2Fcontour","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontour-terminal%2Fcontour","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontour-terminal%2Fcontour/lists"}