mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2024-10-30 16:07:38 +08:00
💻 C++ Functional Terminal User Interface. ❤️
7298636e7c
In case of embedded systems, the terminal size may not always be detectable (e.g. in case of serial output). Allow application to set up the default size in case autodetection fails. On platform such as Emscripten, there is only "fallback" size. Signed-off-by: Jarosław Pelczar <jarek@jpelczar.com> |
||
---|---|---|
.github | ||
.nxxm | ||
cmake | ||
doc | ||
examples | ||
include/ftxui | ||
src/ftxui | ||
tools | ||
.clang-format | ||
CHANGELOG.md | ||
CMakeLists.txt | ||
ftxui-config.cmake.in | ||
iwyu.imp | ||
LICENSE | ||
README.md |
Documentation ·
Report Bug ·
Examples .
Request Feature ·
Send a Pull Request
FTXUI
Functional Terminal (X) User interface
A simple C++ library for terminal based user interface.
Feature
- Functional style. Inspired by [1] and React
- Simple and elegant syntax (in my opinion).
- Support for UTF8 and fullwidth chars (→ 测试).
- No dependencies.
- Cross platform. Linux/mac (main target), Windows (experimental thanks to contributors), WebAssembly.
- Keyboard & mouse navigation.
Operating systems
Example
vbox({
hbox({
text("left") | border,
text("middle") | border | flex,
text("right") | border,
}),
gauge(0.5) | border,
});
┌────┐┌───────────────────────────────────────────────────────────────┐┌─────┐
│left││middle ││right│
└────┘└───────────────────────────────────────────────────────────────┘└─────┘
┌────────────────────────────────────────────────────────────────────────────┐
│██████████████████████████████████████ │
└────────────────────────────────────────────────────────────────────────────┘
Documentation
Project using FTXUI
Feel free to add your projects here:
- git-tui
- rgb-tui
- chrome-log-beautifier
- x86-64 CPU Architecture Simulation
- ltuiny
- i3-termdialogs
- Just-Fast
- simpPRU
- Pigeon ROS TUI
- hastur
- CryptoCalculator
- todoman
- TimeAccumulator
Hosted on
External package
It is highly recommanded to use cmake FetchContent to depends on FTXUI. This way you can specify which commit you would like to depends on.
If you don't, the following packages have been created:
- vcpkg (soon)
- Arch Linux PKGBUILD.