{"id":29197565,"url":"https://github.com/therebuild/rebuildtui","last_synced_at":"2025-11-06T08:03:29.174Z","repository":{"id":301408573,"uuid":"1009162755","full_name":"TheRebuild/rebuildTUI","owner":"TheRebuild","description":"Simple text-based user interface (TUI) library","archived":false,"fork":false,"pushed_at":"2025-06-26T17:35:06.000Z","size":35,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-26T18:36:56.673Z","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/TheRebuild.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,"zenodo":null}},"created_at":"2025-06-26T17:17:15.000Z","updated_at":"2025-06-26T17:44:10.000Z","dependencies_parsed_at":"2025-06-26T18:48:25.131Z","dependency_job_id":null,"html_url":"https://github.com/TheRebuild/rebuildTUI","commit_stats":null,"previous_names":["therebuild/rebuildtui"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TheRebuild/rebuildTUI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheRebuild%2FrebuildTUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheRebuild%2FrebuildTUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheRebuild%2FrebuildTUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheRebuild%2FrebuildTUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheRebuild","download_url":"https://codeload.github.com/TheRebuild/rebuildTUI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheRebuild%2FrebuildTUI/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263095096,"owners_count":23413082,"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":"2025-07-02T07:39:46.249Z","updated_at":"2025-11-06T08:03:29.168Z","avatar_url":"https://github.com/TheRebuild.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rebuildTui (TUI for Rebuild Tool) [WIP]\n\nSimple, cross-platform text-based user interface (TUI) library. Initially created for Rebuild Tool, but also suitable\nfor other applications.\n\n- [rebuildTui (TUI for Rebuild Tool) \\[WIP\\]](#rebuildtui-tui-for-rebuild-tool-wip)\n    - [Key Features](#key-features)\n    - [Dependencies](#dependencies)\n    - [Quick Start](#quick-start)\n        - [Basic Example](#basic-example)\n        - [Build Instructions \\\u0026 Integration](#build-instructions--integration)\n    - [Manual build](#manual-build)\n        - [Header-Only Integration (applies for manual build)](#header-only-integration-applies-for-manual-build)\n        - [CMake Integration](#cmake-integration)\n    - [Examples](#examples)\n    - [Contributing](#contributing)\n    - [License](#license)\n\n## Key Features\n\n- **Easy to use**: This library provides a Fluent-like builder for quick setup and customization\n- **Customizable Themes**: Multiple built-in themes + custom styling (real custom theming will be implemented soon)\n    - Including **Gradient support**, **Accent colors**\n- **Keyboard Navigation**: Intuitive controls with vim-style shortcuts (note: vim-style shortcuts are optional and you\n  should enable them)\n- **Custom handlers**: You can write a function to control user interactions\n- **Smart Pagination**: Automatic pagination with specified limits\n- **Compatibility**: Works on Windows and Linux (macOS support will be added later)\n- **Other**: Built-in counters and selection management\n\n## Dependencies\n\n- Cmake 3.20+\n- С++23 and later (Note: C++20 will add once I don't be a lazy af and will combine with fmt and format (std) libraries)\n\n## Quick Start\n\n### Basic Example\n\n```cpp\n#include \"rebuildTUI/navigation_tui.hpp\"\n#include \"rebuildTUI/section_builder.hpp\"\n\nusing namespace tui;\n\nint main() {\n    auto graphics = SectionBuilder(\"Graphics Settings\")\n        .add_item(\"Enable VSync\")\n        .add_item(\"Anti-Aliasing\")\n        .add_item(\"Motion Blur\")\n        .build();\n\n    auto audio = SectionBuilder(\"Audio Settings\")\n        .add_items({\"Master Volume\", \"Sound Effects\", \"Music Volume\"})\n        .select_items({\"Master Volume\"}) // Pre-select items\n        .build();\n\n    // Build the TUI interface\n    auto tui = NavigationBuilder()\n        .text_titles(\"🎮 Game Settings\", \"⚙️ Configure: \")\n        .theme_modern()\n        .layout_centered()\n        .add_section(graphics)\n        .add_section(audio)\n        .build();\n\n    // Run the interface\n    tui-\u003erun();\n\n    // Get user selections\n    auto selections = tui-\u003eget_all_selections();\n    for (const auto\u0026 [section_name, items] : selections) {\n        std::cout \u003c\u003c section_name \u003c\u003c \":\\n\";\n        for (const auto\u0026 item : items) {\n            std::cout \u003c\u003c \"  ✓ \" \u003c\u003c item \u003c\u003c \"\\n\";\n        }\n    }\n\n    return 0;\n}\n```\n\n### Build Instructions \u0026 Integration\n\n## Manual build\n\n```bash\ngit clone https://github.com/TheRebuild/rebuildTUI\n\ncd rebuildTUI \u0026\u0026 mkdir build \u0026\u0026 cd build \u0026\u0026 cmake ..\ncmake --build .\n\n./test_tui\n```\n\n#### Header-Only Integration (applies for manual build)\n\n```cpp\n#include \"rebuildTUI/navigation_tui.hpp\"\n#include \"rebuildTUI/section_builder.hpp\"\n#include \"rebuildTUI/styles.hpp\" // access to tui_extras namespace (accent color and gradient support)\n```\n\n#### CMake Integration\n\n##### Latest (development)\n\n```cmake\ninclude(FetchContent)\n\nFetchContent_Declare(\n        rebuildtui\n        GIT_REPOSITORY https://github.com/TheRebuild/rebuildtui.git\n        GIT_TAG main\n        GIT_SHALLOW TRUE\n)\n\nFetchContent_MakeAvailable(rebuildtui)\n\nadd_executable(example_app main.cpp)\ntarget_link_libraries(example_app PRIVATE rebuildTUI::rebuildTUI)\n```\n\n##### Stable\n\n```cmake\ninclude(FetchContent)\n\nFetchContent_Declare(\n        rebuildtui\n        GIT_REPOSITORY https://github.com/TheRebuild/rebuildtui.git\n        GIT_TAG v0.0.6\n)\n\nFetchContent_MakeAvailable(rebuildtui)\n\nadd_executable(example_app main.cpp)\ntarget_link_libraries(example_app PRIVATE rebuildTUI::rebuildTUI)\n```\n\n## Examples\n\nCheck out the example files:\n\n- `test_tui.cpp` - UI Example\n- `state_saving_demo.cpp` - Example of UI + saving state\n- `system_info` - System Info (hardcoded)\n- `theme_customizing.cpp` - Available themes in UI and more\n\n## Contributing\n\nSoon...\n\n## License\n\nThis project is licensed under the MIT License. See [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftherebuild%2Frebuildtui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftherebuild%2Frebuildtui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftherebuild%2Frebuildtui/lists"}