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>

Reply via email to