Hello!
I just released [Owlkettle 2.0.0](https://github.com/can-lehmann/owlkettle).
Owlkettle is a declarative GUI framework based on GTK 4. It brings the
declarative GUI paradigm you know from many web frameworks to the Linux desktop.
## Example
Here is an example for a simple counter app. When you click on the "+" Button,
the counter increments.
import owlkettle
viewable App:
counter: int
method view(app: AppState): Widget =
result = gui:
Window:
title = "Counter"
default_size = (200, 60)
Box(orient = OrientX, margin = 12, spacing = 6):
Label(text = $app.counter)
Button {.expand: false.}:
text = "+"
style = {ButtonSuggested}
proc clicked() =
app.counter += 1
brew(gui(App()))
Run
This results in the following application:
Owlkettle 2.0.0 now also supports libadwaita apps. By importing `owlkettle/adw`
and changing the last line of the example to `adw.brew(gui(App()))`, the
application uses the libadwaita theme.
## Installation
Owlkettle requires GTK 4 to be installed on your system. You can install it by
running `dnf install gtk4-devel libadwaita-devel` on Fedora or `apt install
libgtk-4-dev libadwaita-1-dev` on Ubuntu.
$ nimble install owlkettle
Run
## Documentation
Documentation for Owlkettle can be found on GitHub:
<https://github.com/can-lehmann/owlkettle#documentation>