Skip to content

can-lehmann/owlkettle

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

262f443 · Jun 22, 2024
Oct 22, 2023
Jun 11, 2024
Jun 16, 2024
Jun 22, 2024
Jun 22, 2024
Apr 11, 2024
Oct 2, 2023
Mar 8, 2022
Mar 6, 2024
Apr 10, 2024
Jun 8, 2024
Mar 15, 2023
Mar 28, 2024
Jun 11, 2024

Repository files navigation

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
$ 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.