eww/README.md
2020-10-18 23:25:00 +02:00

3.3 KiB
Raw Blame History

Table of Contents

About

Elkowars Wacky Widgets is a standalone Widget System made in rust to add AwesomeWM like widgets to any WM

Configuration

Ewws configuration should be placed in ~/.config/eww/eww.conf and any scss styles you want to add should be put into ~/.config/eww/eww.scss.

Example Config

widgets: {
    some_widget: {
        structure: {
            layout: {
                class: "container",
                children: [
                    { layout: {
                        orientation: "v"
                        children: [
                            { button: "brah" }
                        ]
                    } }
                    { layout: {
                        children: [
                            "$$date"
                            { button: "Some button" }
                            { slider: { value: "$$some_value", min: 0, max: 100, onchange: "notify-send 'changed' {}" } }
                            { slider: { value: "$$some_value", orientation: "h" } }
                            "hu"
                        ]
                    } }
                ]
            }
        }
    },
    test: {
        structure: {
            some_widget: {
                some_value: "$$ooph"
            }
        }
    },
    bar: {
        structure: {
            layout: {
                children: [
                    { layout: { halign: left, children: "text" } }
                    { layout: { halign: center, hexpand: false, children: "$$date" }}
                    { layout: {
                        halign: end,
                        hexpand: false,
                        children: [
                            "$$date"
                            { slider: { value: "$$some_value", min: 0, max: 100, onchange: "notify-send 'changed' {}" } }
                            "$$date"
                        ]
                    } }
                    { label: { text: { run: "date", interval: 1s } } }
                ]
            }
        }
    },
}
default_vars: {
    foo: 12
    date: "neverrrr"
},
windows: {
    main_window: {
        pos.x: 0
        pos.y: 1080
        size.x: 2560
        size.y: 29
        widget: {
            bar: {
                some_value: "$$foo"
            }
        }
    }
}

Building

Prerequisites

  • rustc
  • cargo

Get them at https://www.rust-lang.org/tools/install

Installation

Build the Binary using -:

$ git clone https://github.com/Elkowar/eww.git
$ cd eww
$ cargo build --release

then copy the built binary from ./target/release to anywhere in $PATH (example - ~/.local/bin)

Usage

Create a Config and then just do eww!