https://github.com/contour-terminal/contour Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} contour-terminal / contour Public * * Notifications * Fork 102 * Star 1.6k Modern C++ Terminal Emulator contour-terminal.org/ License Apache-2.0 license 1.6k stars 102 forks Activity Star Notifications * Code * Issues 183 * Pull requests 7 * Discussions * Actions * Security * Insights More * Code * Issues * Pull requests * Discussions * Actions * Security * Insights contour-terminal/contour This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 38 branches 29 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/c] Use Git or checkout with SVN using the web URL. [gh repo clone contou] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @christianparpart christianparpart Merge pull request #1239 from contour-terminal/fix/ debian_deps ... 692e7ab Oct 8, 2023 Merge pull request #1239 from contour-terminal/fix/debian_deps Move qml package to common list 692e7ab Git stats * 3,980 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github Check both ubuntu packages for startup October 1, 2023 18:58 cmake Drop last bits of boost library uses August 19, 2023 23:24 debian Unify and update copyright mark August 19, 2023 23:03 docs Add config option to enable/disable size indicator on resize and make... September 24, 2023 12:18 examples Clean up C++ namespaces per library October 1, 2023 12:14 scripts Move qml package to common list October 8, 2023 21:32 src change names to adhere clang-tidy format October 7, 2023 20:32 test [CI] Adds check against .editorconfig. December 18, 2022 08:29 .clang-format Rename library to . December 10, 2022 22:57 .codecov.yml Rename library to . December 10, 2022 22:57 .ecrc [CI] Adds check against .editorconfig. December 18, 2022 08:29 .editorconfig [CI] Adds check against .editorconfig. December 18, 2022 08:29 .gitignore Rewrite UI to QML/QtQuick with Qt6 (rather than QtWidgets for Qt5). July 25, 2023 21:19 CMakeLists.txt Add build type into cmake summary September 10, 2023 17:29 CODE_OF_CONDUCT.md CODE_OF_CONDUCT.md: Fill the contact info. November 17, 2022 19:56 LICENSE.txt Rename LICENSE to LICENSE.txt September 22, 2020 21:16 README.md Update link to point to release AUR package August 21, 2023 15:25 SECURITY.md Create SECURITY.md December 21, 2021 18:59 TODO.md [terminal] Grid system refactor (with focus on performance). December 12, 2021 19:53 autogen.sh autogen.sh: Default QTVER to 6 August 20, 2023 20:21 metainfo.xml Fix infinite loop when next line does not exist October 7, 2023 10:47 mkdocs.yml update documentation and changelog September 19, 2023 17:56 vcpkg.json [Github CI] Update run-vcpkg action June 1, 2023 10:22 View code [ ] Contour - a modern & actually fast Terminal Emulator Features Installation Installing via Flatpak Install from Flathub Prerequisites Requirements Configuration Installing from source UNIX-like systems (Linux, FreeBSD, OS/X) Prerequisites Compile Windows 10 or newer Prerequisites Compile Distribution Packages CLI - Command Line Interface References License README.md Contour - a modern & actually fast Terminal Emulator CI Build codecov C++20 Discord Twitch Live Stream open collective badge screenshot showcasing notcurses ncneofetch on KDE/Fedora contour is a modern and actually fast, modal, virtual terminal emulator, for everyday use. It is aiming for power users with a modern feature mindset. Features * Available on all 4 major platforms, Linux, OS/X, FreeBSD, Windows. * GPU-accelerated rendering. * Font ligatures support (such as in Fira Code). * Unicode: Emoji support (-: - including ZWJ, VS15, VS16 emoji :-) * Unicode: Grapheme cluster support * Bold and italic fonts * High-DPI support. * Vertical Line Markers (quickly jump to markers in your history!) * Vi-like input modes for improved selection and copy'n'paste experience and Vi-like scrolloff feature. * Blurred behind transparent background when using Windows 10 or KDE window manager on Linux. * Blurrable Background image support. * Runtime configuration reload * 256-color and Truecolor support * Key binding customization * Color Schemes * Profiles (grouped customization of: color scheme, login shell, and related behaviours) * Synchronized rendering (via SM ? 2026 / RM ? 2026) * Text reflow (configurable via SM ? 2028 / RM ? 2028) * Clickable hyperlinks via OSC 8 * Clipboard setting via OSC 52 * Sixel inline images * Terminal page buffer capture VT extension to quickly extract contents. * Builtin Fira Code inspired progress bar support. * Read-only mode, protecting against accidental user-input to the running application, such as Ctrl+C. * VT320 Host-programmable and Indicator status line support. * and much more ... Installation contour is packaged and available for installation on multiple distributions. * Fedora use official package sudo dnf install contour-terminal * Arch use AUR package Installing via Flatpak Install from Flathub Click the following button install Contour from the Flathub store. Get it on Flathub Prerequisites * Make sure you have flatpak installed in your system (here is a tutorial on how to install it), and make sure that the version is >= 0.10 (check it using this command: flatpak --version) * Add the flathub repository using the following command: flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/ flathub.flatpakrepo. * Proceed with one of the following options: + Install from Flathub + Install from GitHub release Requirements * operating system: A recent operating system (OS/X 12, Windows 10+, an up-to-date Linux, or FreeBSD) * GPU: driver must support at least OpenGL 3.3 hardware accelerated or as software rasterizer. * CPU: x86-64 AMD or Intel with AES-NI instruction set or ARMv8 with crypto extensions. Configuration In order to set up Contour, it is necessary to modify the configuration file contour.yml, which is initially generated in the $HOME/.config/contour directory. Some features also require shell integration. These can be generated via the CLI (see below), these currently exist for zsh, fish and tcsh. Installing from source Contour is best installed from supported package managers, but you can build from source by following the instruction below. You can Qt 5 or Qt 6, by default contour will be compiler with Qt 6, to change Qt version use QTVER=5 ./scripts/install-deps.sh to fetch dependencies and cmake flag -D CONTOUR_QT_VERSION=5. UNIX-like systems (Linux, FreeBSD, OS/X) Prerequisites ./scripts/install-deps.sh This script might ask you for the administrator password if a package dependency can be insalled via the system package manager. Compile cmake -S . -B build -G Ninja cmake --build build/ # Optionally, if you want to install from source cmake --build build/ --target install Windows 10 or newer Prerequisites For Windows, you must have Windows 10, 2018 Fall Creators Update, and Visual Studio 2019, installed. It will neither build nor run on any prior Windows OS, due to libterminal making use of ConPTY API. 1. Set up vcpkg, preferably somewhere high up in the folder hierarchy, and add the folder to your PATH. cd C:\ git clone git clone https://github.com/Microsoft/vcpkg.git .\vcpkg\bootstrap-vcpkg.bat 2. Install Visual Studio Build Tools (make sure to select the CLI tools for C++, which you might need to do in the separate components tab). 3. Install Qt6 (i.e. to C:\Qt) 4. Open the developer version of Powershell. 5. In the contour source folder execute .\scripts\install-deps.ps1. This step may take a very long time. Compile In the developer version of Powershell: # change paths accordingly if you installed QT and vcpkg to somewhere else cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DCMAKE_PREFIX_PATH=C:\Qt\6.5.0\msvc2019_64\lib\cmake cmake --build build/ # Optionally, if you want to install from source cmake --build build/ --target install Distribution Packages Packaging status CLI - Command Line Interface Usage: contour [terminal] [config FILE] [profile NAME] [debug TAGS] [live-config] [dump-state-at-exit PATH] [early-exit-threshold UINT] [working-directory DIRECTORY] [class WM_CLASS] [platform PLATFORM[:OPTIONS]] [session SESSION_ID] [PROGRAM ARGS...] contour font-locator [config FILE] [profile NAME] [debug TAGS] contour info vt contour help contour version contour license contour parser-table contour list-debug-tags contour generate terminfo to FILE contour generate config to FILE contour generate integration shell SHELL to FILE contour capture [logical] [words] [timeout SECONDS] [lines COUNT] to FILE contour set profile [to NAME] References * VT510: VT510 Manual, see Chapter 5. * ECMA-35: Character Code Structure and Extension Techniques * ECMA-43: 8-bit Coded Character Set Structure and Rules * ECMA-48: Control Functions for Coded Character Sets * ISO/IEC 8613-6: Character content architectures * xterm: xterm control sequences * console_codes Linux console codes * Summary of ANSI standards for ASCII terminals * Text Terminal HOWTO (Chapter 7.2, PTY) * ANSI escape code in Wikipedia License Contour - A modern C++ Terminal Emulator ------------------------------------------- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. About Modern C++ Terminal Emulator contour-terminal.org/ Topics emoji linux console unicode library terminal xterm terminal-emulators vte hacktoberfest unicode-support grapheme-cluster sixel-graphics Resources Readme License Apache-2.0 license Code of conduct Code of conduct Security policy Security policy Activity Stars 1.6k stars Watchers 19 watching Forks 102 forks Report repository Releases 28 Contour 0.3.12.262 Latest May 29, 2023 + 27 releases Sponsor this project * * https://paypal.me/ChristianParpart Learn more about GitHub Sponsors Contributors 31 * @christianparpart * @Yaraslaut * @data-man * @Utkarsh-khambra * @skyline75489 * @whisperity * @uspasojevic96 * @ResuBaka * @herrhotzenplotz * @NTBBloodbath * @steve7411 + 20 contributors Languages * C++ 92.5% * CMake 4.1% * Shell 1.8% * QML 0.5% * GLSL 0.5% * PowerShell 0.2% * Other 0.4% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.