owlkettle

A declarative user interface framework based on GTK

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version Unknown
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:25

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:

Counter Application

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

Counter Application using Adwaita Stylesheet

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.