{"id":13423910,"url":"https://github.com/thestinger/termite","last_synced_at":"2025-09-28T19:31:41.580Z","repository":{"id":3356779,"uuid":"4402279","full_name":"thestinger/termite","owner":"thestinger","description":"Termite is obsoleted by Alacritty. Termite was a keyboard-centric VTE-based terminal, aimed at use within a window manager with tiling and/or tabbing support.","archived":true,"fork":false,"pushed_at":"2021-05-07T11:46:48.000Z","size":685,"stargazers_count":2717,"open_issues_count":1,"forks_count":241,"subscribers_count":57,"default_branch":"master","last_synced_at":"2025-09-01T01:19:28.590Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/alacritty/alacritty","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thestinger.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-05-22T04:35:35.000Z","updated_at":"2025-08-31T01:50:53.000Z","dependencies_parsed_at":"2022-07-12T12:50:34.511Z","dependency_job_id":null,"html_url":"https://github.com/thestinger/termite","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/thestinger/termite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thestinger%2Ftermite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thestinger%2Ftermite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thestinger%2Ftermite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thestinger%2Ftermite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thestinger","download_url":"https://codeload.github.com/thestinger/termite/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thestinger%2Ftermite/sbom","scorecard":{"id":880326,"data":{"date":"2025-08-18","repo":{"name":"github.com/thestinger/termite","commit":"18de7682e983e6562a87c63a2814c5e39461b081"},"scorecard":{"version":"v5.2.1-41-g40576783","commit":"40576783fda6698350fcbbeaea760ff827433034"},"score":3.1,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#packaging"}},{"name":"Code-Review","score":4,"reason":"Found 8/20 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#token-permissions"}},{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#maintained"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#vulnerabilities"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 20 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/40576783fda6698350fcbbeaea760ff827433034/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-24T07:54:04.326Z","repository_id":3356779,"created_at":"2025-08-24T07:54:04.326Z","updated_at":"2025-08-24T07:54:04.326Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277422059,"owners_count":25815336,"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","status":"online","status_checked_at":"2025-09-28T02:00:08.834Z","response_time":79,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-07-31T00:00:44.837Z","updated_at":"2025-09-28T19:31:41.351Z","avatar_url":"https://github.com/thestinger.png","language":"C++","funding_links":[],"categories":["C++","HarmonyOS","Terminal Emulators","Dependencies","Applications","Terminal"],"sub_categories":["Windows Manager","Needed","Terminal Emulators","Terminal"],"readme":"TERMITE IS OBSOLETED BY ALACRITTY\n=================================\n\nYou should use `Alacritty \u003chttps://github.com/alacritty/alacritty\u003e`_ instead\nof Termite. It has a keyboard-based selection mode inspired by Termite and\nAlacritty 0.8 adds a generic regex hints mode comparable to Termite's URL\nhints mode. The user interface is very much in the same spirit as Termite\nincluding a very minimal user interface delegating handling tabs and splits to\na window manager like i3. Alacritty is dramatically faster than VTE along with\nbeing significantly more robust and secure. It's written in a modern, safe\nprogramming language (Rust) and uses OpenGL for efficient rendering.\n\nIf you've packaged Termite in a repository, we would highly appreciate if you\ncould communicate our recommendation to end users as part of phasing out and\nretiring the package. Alacritty is the only proper replacement for Termite and\nit took until the 0.8 release currently available as a release candidate for us\nto be able to wholeheartedly recommend it.\n\nWe strongly recommend against trying to continue the development of Termite\nwith a fork. You should contribute to Alacritty instead. VTE is a terrible base\nfor building a modern, fast and safe terminal emulator. It's slow, brittle and\ndifficult to improve. VTE is treated as simply being the GNOME Terminal widget\nrather than a library truly intended to be useful to others. They've gone out\nof the way to keep useful APIs private due to hostility towards implementing\nany kind of user interface beyond what they provide. In 2012, we submitted a\n`tiny patch exposing the APIs needed for the keyboard text selection, hints\nmode and other features \u003chttps://bugzilla.gnome.org/show_bug.cgi?id=679658\u003e`_.\nDespite support from multiple other projects, the patch was rejected. It's now\nalmost a decade later and no progress has been made. There is no implementation\nof these kinds of features in VTE and it's unlikely they'll be provided either\ninternally or as flexible APIs. This is the tip of the iceberg when it comes to\ntheir hostility towards other projects using VTE as a library. GTK and most of\nthe GNOME project are much of the same. Avoid them and don't make the mistake\nof thinking their libraries are meant for others to use.\n\nINTRODUCTION\n============\n\nA keyboard-centric VTE-based terminal, aimed at use within a window manager\nwith tiling and/or tabbing support.\n\nTermite looks for the configuration file in the following order:\n``$XDG_CONFIG_HOME/termite/config``, ``~/.config/termite/config``,\n``$XDG_CONFIG_DIRS/termite/config``, ``/etc/xdg/termite/config``.\n\nTermite's exit status is 1 on a failure, including a termination of the child\nprocess from an uncaught signal. Otherwise the exit status is that of the child\nprocess.\n\nDEPENDENCIES\n============\n\nThe `vte-ng \u003chttps://github.com/thestinger/vte-ng\u003e`_ project is required until\nVTE exposes the necessary functions for keyboard text selection and URL hints\n(if ever). A simple patch `has been submitted upstream\n\u003chttps://bugzilla.gnome.org/show_bug.cgi?id=679658#c10\u003e`_ but they're unwilling\nto expose functionality that's not required by GNOME Terminal even if there's\nno extra maintenance (it already exists internally) and no additional backwards\ncompatibility hazards.\n\nIf no browser is configured and $BROWSER is unset, xdg-open from xdg-utils is\nused as a fallback.\n\nBUILDING\n========\n::\n\n    git clone --recursive https://github.com/thestinger/termite.git\n    cd termite \u0026\u0026 make\n\nKEYBINDINGS\n===========\n\nINSERT MODE\n-----------\n\n+----------------------+---------------------------------------------+\n| ``ctrl-shift-x``     | activate url hints mode                     |\n+----------------------+---------------------------------------------+\n| ``ctrl-shift-r``     | reload configuration file                   |\n+----------------------+---------------------------------------------+\n| ``ctrl-shift-c``     | copy to CLIPBOARD                           |\n+----------------------+---------------------------------------------+\n| ``ctrl-shift-v``     | paste from CLIPBOARD                        |\n+----------------------+---------------------------------------------+\n| ``ctrl-shift-u``     | unicode input (standard GTK binding)        |\n+----------------------+---------------------------------------------+\n| ``ctrl-tab``         | start scrollback completion                 |\n+----------------------+---------------------------------------------+\n| ``ctrl-shift-space`` | start selection mode                        |\n+----------------------+---------------------------------------------+\n| ``ctrl-shift-t``     | open terminal in the current directory [1]_ |\n+----------------------+---------------------------------------------+\n| ``ctrl-shift-up``    | scroll up a line                            |\n+----------------------+---------------------------------------------+\n| ``ctrl-shift-down``  | scroll down a line                          |\n+----------------------+---------------------------------------------+\n| ``shift-pageup``     | scroll up a page                            |\n+----------------------+---------------------------------------------+\n| ``shift-pagedown``   | scroll down a page                          |\n+----------------------+---------------------------------------------+\n| ``ctrl-shift-l``     | reset and clear                             |\n+----------------------+---------------------------------------------+\n| ``ctrl-+``           | increase font size                          |\n+----------------------+---------------------------------------------+\n| ``ctrl--``           | decrease font size                          |\n+----------------------+---------------------------------------------+\n| ``ctrl-=``           | reset font size to default                  |\n+----------------------+---------------------------------------------+\n\n.. [1] The directory can be set by a process running in the terminal. For\n       example, with zsh:\n\n       .. code:: sh\n\n            if [[ $TERM == xterm-termite ]]; then\n              . /etc/profile.d/vte.sh\n              __vte_osc7\n            fi\n       ::\n\n       For example, with bash:\n\n       .. code:: sh\n\n            if [[ $TERM == xterm-termite ]]; then\n              . /etc/profile.d/vte.sh\n              __vte_prompt_command\n            fi\n\nSELECTION MODE\n--------------\n\n+-----------------------------------+-----------------------------------------------------------+\n| ``q`` or ``escape`` or ``ctrl-[`` | enter insert mode                                         |\n+-----------------------------------+-----------------------------------------------------------+\n| ``x``                             | activate url hints mode                                   |\n+-----------------------------------+-----------------------------------------------------------+\n| ``v``                             | visual mode                                               |\n+-----------------------------------+-----------------------------------------------------------+\n| ``V``                             | visual line mode                                          |\n+-----------------------------------+-----------------------------------------------------------+\n| ``ctrl-v``                        | visual block mode                                         |\n+-----------------------------------+-----------------------------------------------------------+\n| ``hjkl`` or arrow keys            | move cursor left/down/up/right                            |\n+-----------------------------------+-----------------------------------------------------------+\n| ``w`` or ``shift-right``          | forward word                                              |\n+-----------------------------------+-----------------------------------------------------------+\n| ``e``                             | forward to end of word                                    |\n+-----------------------------------+-----------------------------------------------------------+\n| ``b`` or ``shift-left``           | backward word                                             |\n+-----------------------------------+-----------------------------------------------------------+\n| ``W`` or ``ctrl-right``           | forward WORD (non-whitespace)                             |\n+-----------------------------------+-----------------------------------------------------------+\n| ``E``                             | forward to end of WORD (non-whitespace)                   |\n+-----------------------------------+-----------------------------------------------------------+\n| ``B`` or ``ctrl-left``            | backward WORD (non-whitespace)                            |\n+-----------------------------------+-----------------------------------------------------------+\n| ``H``                             | jump to the top of the screen                             |\n+-----------------------------------+-----------------------------------------------------------+\n| ``M``                             | jump to the middle of the screen                          |\n+-----------------------------------+-----------------------------------------------------------+\n| ``L``                             | jump to the bottom of the screen                          |\n+-----------------------------------+-----------------------------------------------------------+\n| ``0`` or ``home``                 | move cursor to the first column in the row                |\n+-----------------------------------+-----------------------------------------------------------+\n| ``^``                             | beginning-of-line (first non-blank character)             |\n+-----------------------------------+-----------------------------------------------------------+\n| ``$`` or ``end``                  | end-of-line                                               |\n+-----------------------------------+-----------------------------------------------------------+\n| ``g``                             | jump to start of first row                                |\n+-----------------------------------+-----------------------------------------------------------+\n| ``G``                             | jump to start of last row                                 |\n+-----------------------------------+-----------------------------------------------------------+\n| ``ctrl-u``                        | move cursor a half screen up                              |\n+-----------------------------------+-----------------------------------------------------------+\n| ``ctrl-d``                        | move cursor a half screen down                            |\n+-----------------------------------+-----------------------------------------------------------+\n| ``ctrl-b``                        | move cursor a full screen up (back)                       |\n+-----------------------------------+-----------------------------------------------------------+\n| ``ctrl-f``                        | move cursor a full screen down (forward)                  |\n+-----------------------------------+-----------------------------------------------------------+\n| ``y``                             | copy to CLIPBOARD                                         |\n+-----------------------------------+-----------------------------------------------------------+\n| ``/``                             | forward search                                            |\n+-----------------------------------+-----------------------------------------------------------+\n| ``?``                             | reverse search                                            |\n+-----------------------------------+-----------------------------------------------------------+\n| ``u``                             | forward url search                                        |\n+-----------------------------------+-----------------------------------------------------------+\n| ``U``                             | reverse url search                                        |\n+-----------------------------------+-----------------------------------------------------------+\n| ``o``                             | open the current selection as a url                       |\n+-----------------------------------+-----------------------------------------------------------+\n| ``Return``                        | open the current selection as a url and enter insert mode |\n+-----------------------------------+-----------------------------------------------------------+\n| ``n``                             | next search match                                         |\n+-----------------------------------+-----------------------------------------------------------+\n| ``N``                             | previous search match                                     |\n+-----------------------------------+-----------------------------------------------------------+\n\nDuring scrollback search, the current selection is changed to the search match\nand copied to the PRIMARY clipboard buffer.\n\nWith the text input widget focused, up/down (or tab/shift-tab) cycle through\ncompletions, escape closes the widget and enter accepts the input.\n\nIn hints mode, the input will be accepted as soon as termite considers it a\nunique match.\n\nPADDING\n=======\n\nInternal padding can be added by using CSS to style Termite. Adding\nthe following snippet to ``$XDG_CONFIG_HOME/gtk-3.0/gtk.css`` (or\n``~/.config/gtk-3.0/gtk.css``) will add uniform 2px padding around the edges:\n\n.. code:: css\n\n    .termite {\n        padding: 2px;\n    }\n\nThis can also be used to add varying amounts of padding to each side via\nstandard usage of the CSS padding property.\n\nTERMINFO\n========\n\nWhen working on a remote system with termite's terminfo missing, an error might\noccur:\n\n::\n\n    Error opening terminal: xterm-termite\n\nTo solve this issue, install the termite terminfo on your remote system.\n\nOn Arch Linux:\n\n::\n\n        pacman -S termite-terminfo\n\nOn other systems:\n\n\n::\n\n    wget https://raw.githubusercontent.com/thestinger/termite/master/termite.terminfo\n    tic -x termite.terminfo\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthestinger%2Ftermite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthestinger%2Ftermite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthestinger%2Ftermite/lists"}