{"id":20521494,"url":"https://github.com/magiblot/tvterm","last_synced_at":"2025-04-09T13:08:38.221Z","repository":{"id":43405398,"uuid":"417981134","full_name":"magiblot/tvterm","owner":"magiblot","description":"A terminal emulator that runs in your terminal. Powered by Turbo Vision.","archived":false,"fork":false,"pushed_at":"2024-10-24T10:55:09.000Z","size":254,"stargazers_count":81,"open_issues_count":3,"forks_count":8,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-24T14:49:10.297Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/magiblot.png","metadata":{"files":{"readme":"README.md","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-17T00:27:29.000Z","updated_at":"2024-10-24T10:55:13.000Z","dependencies_parsed_at":"2024-10-25T18:25:46.683Z","dependency_job_id":null,"html_url":"https://github.com/magiblot/tvterm","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magiblot%2Ftvterm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magiblot%2Ftvterm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magiblot%2Ftvterm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magiblot%2Ftvterm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/magiblot","download_url":"https://codeload.github.com/magiblot/tvterm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248045233,"owners_count":21038553,"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":[],"created_at":"2024-11-15T22:29:19.868Z","updated_at":"2025-04-09T13:08:38.203Z","avatar_url":"https://github.com/magiblot.png","language":"C++","funding_links":[],"categories":["Table of Contents","\u003ca name=\"terminal\"\u003e\u003c/a\u003eTerminals"],"sub_categories":[],"readme":"# tvterm\n\nA terminal emulator that runs in your terminal. Powered by Turbo Vision.\n\n![htop, turbo and notcurses-demo running in tvterm](https://user-images.githubusercontent.com/20713561/137407902-27538f99-dc0e-47a8-9bf2-0705733d8a8c.png)\n\n`tvterm` is an experimental terminal emulator widget and application based on the [Turbo Vision](https://github.com/magiblot/tvision) framework. It was created for the purpose of demonstrating new features in Turbo Vision such as 24-bit color support.\n\n`tvterm` relies on Paul Evan's [libvterm](http://www.leonerd.org.uk/code/libvterm/) terminal emulator, also used by [Neovim](https://github.com/neovim/libvterm) and [Emacs](https://github.com/akermu/emacs-libvterm).\n\nAdditionally, `tvterm` supports both Unix and Windows (Windows 10 1809 or later).\n\nThe original location of this project is https://github.com/magiblot/tvterm.\n\n# Building\n\nFirst of all, you should clone this repository along its submodules with the `--recursive` option of `git clone` (or run `git submodule init \u0026\u0026 git submodule update` if you have already cloned it).\n\nThen, make sure the following dependencies are installed:\n\n* CMake.\n* A compiler supporting C++14.\n* `libvterm`:\n    * If you initialized the submodules, you can build `libvterm` as part of `tvterm`. Perl is needed for building `libvterm`.\n    * Otherwise, a system-provided `libvterm` (e.g. `libvterm-dev` in Ubuntu) can be used if enabling the CMake option `-DTVTERM_USE_SYSTEM_LIBVTERM=ON`.\n* [Turbo Vision](https://github.com/magiblot/tvision#build-environment)'s dependencies:\n    * `libncursesw` (Unix only) (e.g. `libncursesw5-dev` in Ubuntu).\n    * `libgpm` (optional, Linux only) (e.g. `libgpm-dev` in Ubuntu).\n* Turbo Vision itself:\n    * If you initialized the submodules, you can build Turbo Vision as part of `tvterm`.\n    * Otherwise, clone [Turbo Vision](https://github.com/magiblot/tvision) separately and follow its [build](https://github.com/magiblot/tvision#build-environment) and [install](https://github.com/magiblot/tvision#build-cmake) instructions. Make sure you don't use a version of Turbo Vision older than the one required by `tvterm` (specified in the [`tvision` submodule](https://github.com/magiblot/tvterm/tree/master/deps)). When building `tvterm`, enable the CMake option `-DTVTERM_USE_SYSTEM_TVISION=ON`.\n\n`tvterm` can be built with the following commands:\n\n```sh\ncmake . -B ./build -DCMAKE_BUILD_TYPE=Release \u0026\u0026 # Could also be 'Debug', 'MinSizeRel' or 'RelWithDebInfo'.\ncmake --build ./build\n```\n\nCMake versions older than 3.13 may not support the `-B` option. You can try the following instead:\n\n```sh\nmkdir -p build; cd build\ncmake .. -DCMAKE_BUILD_TYPE=Release \u0026\u0026\ncmake --build .\n```\n\n# Features\n\nThis project is still WIP. Some features it may achieve at some point are:\n\n- [x] UTF-8 support.\n- [x] fullwidth and zero-width character support.\n- [x] 24-bit color support.\n- [x] Windows support.\n- [ ] Scrollback.\n- [ ] Text selection.\n- [ ] Find text.\n- [ ] Send signal to child process.\n- [ ] Text reflow on resize.\n- [ ] Having other terminal emulator implementations to choose from.\n- [ ] Better dependency management.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagiblot%2Ftvterm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmagiblot%2Ftvterm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagiblot%2Ftvterm/lists"}