No description
Find a file
2020-10-25 16:59:49 +01:00
.github Restrict when gitlab pages job is being ran 2020-10-25 16:59:49 +01:00
docs Autogen docs (#44) 2020-10-25 16:50:52 +01:00
src Fix doc comments in widget_definitions.rs 2020-10-25 16:54:52 +01:00
.editorconfig CI/CD & Formatting (#6) 2020-10-18 23:25:00 +02:00
.gitignore init 2020-09-19 11:12:24 +02:00
Cargo.lock Actually fix process cleanup 2020-10-24 22:56:09 +02:00
Cargo.toml Actually fix process cleanup 2020-10-24 22:56:09 +02:00
gen-docs.js Autogen docs (#44) 2020-10-25 16:50:52 +01:00
LICENSE Add MIT license 2020-10-18 23:25:48 +02:00
README.md Autogen docs (#44) 2020-10-25 16:50:52 +01:00
rust-toolchain add toolchain file 2020-10-18 23:25:00 +02:00
rustfmt.toml Cleanup script-var-handler behaviour 2020-10-19 20:39:34 +02:00

Table of Contents

About

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

Documentation can be found here

Configuration

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

Example Config

<eww>
  <definitions>
    <def name="test">
      <box orientation="v">
        {{foo}}
        <button onclick='notify-send "that hurt,..."'>
            click me if you dare :&lt;
          </button>
        <box>
          {{ree}}
          <scale min="0" max="100" value="50" onchange="notify-send {}"/>
        </box>
      </box>
    </def>
  </definitions>

  <variables>
    <var name="foo">test</var>
  </variables>


  <windows>
    <window name="main_window">
      <size x="100" y="200" />
      <pos x="100" y="200" />
      <widget>
        <test ree="test" />
      </widget>
    </window>
  </windows>
</eww>

Building

Prerequisites

  • rustc
  • cargo (nightly toolchain)

Rather than with your system package manager, I recommend installing it using rustup, as this makes it easy to use the nightly toolchain, which is necessary to build eww.

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!

Troubleshooting

If you experience any issues, the following things should be tried:

  • Try killing the eww daemon with eww kill and run again
  • If you're running with -d, run without -d to see output, or have a look at ~/.cache/eww.log
  • use eww state, to see the state of all variables
  • use eww debug, to see the xml of your widget and other information
  • update to the latest eww version
  • sometimes hot reloading doesn't work. restart the widget in that case

If you're experiencing issues printing variables, try to print them in quotes, so e.g.

onchange="notify-send '{}'"

Contributing

If you want to contribute, like adding new widgets, features or subcommands, you should definitly do so.

Steps

  1. Fork this repo
  2. install dependencies (Prerequisites)
  3. smash your head against the keyboard from frustration (coding is hard)
  4. open a pull request once you're finished.