Fix initial render to show scrollbar immediately if required. Show and hide scrollbar correctly when content size or terminal size changes. Add keybindings for scrolling similar to pager keybindings.
45 lines
1.3 KiB
Markdown
45 lines
1.3 KiB
Markdown
# zterm TUI Library
|
|
|
|
`zterm` is a terminal user interface library (*tui*) to implement terminal (fullscreen or inline) applications.
|
|
|
|
> [!caution]
|
|
> Only builds using the zig master version are tested to work.
|
|
|
|
## Demo
|
|
|
|
Clone this repository and run `zig build --help` to see the available examples. Run a given example as follows:
|
|
|
|
```sh
|
|
zig build --release=safe -Dexample=demo run
|
|
```
|
|
|
|
> [!tip]
|
|
> Every example application can be quit using `ctrl+c`.
|
|
|
|
See the [wiki](https://gitea.yves-biener.de/yves-biener/zterm/wiki) for a showcase of the examples and the further details.
|
|
|
|
## Usage
|
|
|
|
To add or update `zterm` as a dependency in your project run the following command:
|
|
|
|
```sh
|
|
zig fetch --save git+https://gitea.yves-biener.de/yves-biener/zterm
|
|
```
|
|
|
|
Add the dependency to your module as follows in your *build.zig*:
|
|
|
|
```zig
|
|
const zterm: *Dependency = b.dependency("zterm", .{
|
|
.target = target,
|
|
.optimize = optimize,
|
|
});
|
|
```
|
|
|
|
### Documentation
|
|
|
|
A wiki should be created containing a bright overview of the structure and usage
|
|
of the library. For details it should refer to the examples. The documentation
|
|
should be minimal in terms of updateability in case the library changes. Maybe
|
|
some documentation could be derived from the code documentation (there is a tool
|
|
for this if I recall correctly).
|