{"id":24330766,"url":"https://github.com/skippyr/libtmk","last_synced_at":"2025-03-27T23:17:30.813Z","repository":{"id":205384198,"uuid":"714110306","full_name":"skippyr/libtmk","owner":"skippyr","description":"Libtmk (aka \"Terminal Manipulation Kit\") is a simple C99 terminal manipulation library that contains a modest set of features to manipulate terminal properties, styles, arguments and key readings primarily using UTF-8 encoding. It is available for Windows, macOS and Linux.","archived":false,"fork":false,"pushed_at":"2025-02-15T05:05:26.000Z","size":5140,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-15T05:19:27.006Z","etag":null,"topics":["c","c-library","cli","command-line","cpp","cpp-library","library","linux","macos","shell","terminal","tui","windows"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skippyr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-11-04T00:13:55.000Z","updated_at":"2025-02-14T23:39:35.000Z","dependencies_parsed_at":"2023-11-08T03:27:03.500Z","dependency_job_id":"62d4dde8-a2b3-4d58-afed-c6599ee2b883","html_url":"https://github.com/skippyr/libtmk","commit_stats":null,"previous_names":["skippyr/tdk","skippyr/libtdk","skippyr/libtmk"],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skippyr%2Flibtmk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skippyr%2Flibtmk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skippyr%2Flibtmk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skippyr%2Flibtmk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skippyr","download_url":"https://codeload.github.com/skippyr/libtmk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245938229,"owners_count":20697008,"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":["c","c-library","cli","command-line","cpp","cpp-library","library","linux","macos","shell","terminal","tui","windows"],"created_at":"2025-01-18T01:14:30.224Z","updated_at":"2025-03-27T23:17:30.792Z","avatar_url":"https://github.com/skippyr.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"\" src=\"assets/ornament.png\" width=1020 /\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003e≥v≥v\u0026ensp;libtmk\u0026ensp;≥v≥v\u003c/h1\u003e\n\u003cp align=\"center\"\u003e— Terminal Manipulation Kit – README – Release 17.0.x —\u003cbr /\u003eC Programming Language\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"\" src=\"https://img.shields.io/github/license/skippyr/libtmk?style=plastic\u0026label=%E2%89%A5%20license\u0026labelColor=%2324130e\u0026color=%23b8150d\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"\" src=\"https://img.shields.io/github/v/tag/skippyr/libtmk?style=plastic\u0026label=%E2%89%A5%20tag\u0026labelColor=%2324130e\u0026color=%23b8150d\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"\" src=\"https://img.shields.io/github/commit-activity/t/skippyr/libtmk?style=plastic\u0026label=%E2%89%A5%20commits\u0026labelColor=%2324130e\u0026color=%23b8150d\" /\u003e\n  \u0026nbsp;\n  \u003cimg alt=\"\" src=\"https://img.shields.io/github/stars/skippyr/libtmk?style=plastic\u0026label=%E2%89%A5%20stars\u0026labelColor=%2324130e\u0026color=%23b8150d\" /\u003e\n\u003c/p\u003e\n\n## ❡ About\nLibtmk (_aka_ \"Terminal Manipulation Kit\") is a simple C99 terminal manipulation library that contains a modest set of features to manipulate terminal properties, styles, arguments and key readings primarily using UTF-8 encoding. It is available for Windows, macOS and Linux.\n\nWith its minimalistic and opinionated design, it encourages the development of software with great system compatibility, while leaving room to full-feature libraries to be built upon for more specific use cases.\n## ❡ Install\n### Dependencies\nDue to its cross-platform nature, it is highly recommended to use this library with a setup that combines CMake and Git. For that, the following dependencies are required, varying depending of the operating system you are using:\n- **Windows:**\n  -  **Visual Studio 2022** or later **with the \"Desktop Development with C++ Workload\":** it contains most of the tools required to develop and build C projects, including a compiler and CMake.\n  - **Git:** it will be used to clone and maintain a version of the library's source code within your project.\n\u003e [!TIP]\n\u003e You can install these packages using Winget, the official Windows package manager, or Chocolatey, an alternative package manager.\n- **macOS:**\n  - **Apple Command Line Tools:** it contains most of the tools required to build C projects, including a compiler and Git.\n  - **CMake:** it will be used to integrate and build the library within your project.\n\u003e [!TIP]\n\u003e You can install the Apple Command Line Tools using the command `xcode select --install`. For the rest, use [HomeBrew](https://brew.sh).\n\n- **Linux:**\n  - **GCC** or **Clang:** it will be used to compile the library.\n  - **CMake** and **Make:** it will be used to integrate and build the library within your project.\n  - **Git:** it will be used to clone and maintain a version of the library's source code within your project.\n\n\u003e [!TIP]\n\u003e You can install these packages using your distro's package manager. If it does not have one, use [HomeBrew](https://brew.sh).\n### Procedures\nOn Windows, using the `Developer PowerShell for VS 2022` profile or, on any other operating systems, using any terminal, follow these instructions:\n- In the root directory of your project, use Git to clone the library's repository as a submodule. This will download its latest version and allow you to update it easily by pulling new changes in the future:\n```sh\ngit submodule add https://github.com/skippyr/libtmk libs/libtmk\n```\n- In your `CMakeLists.txt` configuration file, add the library's directory you have cloned as a subdirectory. That will make the library target `tmk` available for you to link it to your executable targets. Use the following example as a reference, adapting it to your project. It links the library to the executable `src/main.c`, named as target `main` in the project `tmk-example`:\n```cmake\ncmake_minimum_required(VERSION 3.25)\nset(CMAKE_C_STANDARD_REQUIRED ON)\nset(CMAKE_C_STANDARD 99)\nadd_subdirectory(\"${CMAKE_SOURCE_DIR}/libs/libtmk\"\n                 \"${CMAKE_BINARY_DIR}/libtmk\")\nproject(tmk-example)\nadd_executable(main \"${CMAKE_SOURCE_DIR}/src/main.c\")\ntarget_link_libraries(main tmk)\n```\n- Delete and recreate the CMake auto-generated build files and, at the next time you build your project, the library will be automatically linked to your executable.\n## ❡ Documentation\nAfter installed, you can learn how to use it by reading its [documentation](DOCS.pdf).\n## ❡ Help\nIf you need any help related to this project, create a new issue in its [issues page](https://github.com/skippyr/libtmk/issues) or send an [e-mail](mailto:skippyr.developer@icloud.com) describing what is going on.\n## ❡ Contributing\nThis project is open to review and possibly accept contributions in the form of bug reports and suggestions. If you are interested, send your contribution to its pull [requests page](https://github.com/skippyr/libtmk/pulls) or via [e-mail](mailto:skippyr.developer@icloud.com).\n## ❡ License\nThis is free software licensed under the BSD-3-Clause License that comes WITH NO WARRANTY. Refer to the `LICENSE` file that comes in its source code for license and copyright details.\n\n\u0026ensp;\n\u003cp align=\"center\"\u003e\u003ci\u003eIn the memory of all fellow dragons,\u003cbr /\u003eas the dreams that keeps our flames alive.\u003c/i\u003e\u003c/p\u003e\n\u0026ensp;\n\u003cp align=\"center\"\u003e\u003csup\u003e\u003cstrong\u003e≥v≥v\u0026ensp;Here Be Dragons!\u0026ensp;≥v≥\u003c/strong\u003e\u003cbr /\u003eMade With Love\u003c/sup\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskippyr%2Flibtmk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskippyr%2Flibtmk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskippyr%2Flibtmk/lists"}