owlkettle
A declarative user interface framework based on GTK
Summary
| Latest Version | Unknown |
|---|---|
| License | MIT |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-07-21 05:25 |
Tags
Installation
nimble install owlkettle
choosenim install owlkettle
git clone https://github.com/can-lehmann/owlkettle
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| owlkettle | ✓ | ✓ | ✓ | - | - | - | - | - | - | - |
Source
| Repository | https://github.com/can-lehmann/owlkettle |
|---|---|
| Homepage | https://github.com/can-lehmann/owlkettle |
| Registry Source | nimble_official |
README
Owlkettle
Freshly brewed user interfaces.
Owlkettle is a declarative user interface framework based on GTK. It is written in Nim.
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"
defaultSize = (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()))
The code above will result in the following application:

Owlkettle also supports building libadwaita apps.
To enable libadwaita, import owlkettle/adw and change the last line to adw.brew(gui(App())).

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
- apt install libgtk-4-dev libadwaita-1-dev on Ubuntu
- pacman -S mingw-w64-x86_64-gtk4 mingw-w64-x86_64-libadwaita on Windows' MSYS2
- Checkout the installation docs for more information about the MSYS2 setup
$ nimble install owlkettle
Check out the installation guide for further instructions.
Documentation
You can find a reference of all widgets in docs/widgets.md.
A tutorial for building a simple Todo application can be found here.
Additional examples can be found here.
A reference of all supported libadwaita widgets can be found in docs/widgets_adwaita.md.
License
Owlkettle is licensed under the MIT license.
See LICENSE.txt for more information.