No description
Find a file
2020-10-24 22:56:09 +02:00
.github/workflows install pango in CI 2020-10-20 19:26:58 +02:00
docs write to log file 2020-10-18 23:25:00 +02:00
src Stop script-vars and close windows on eww kill 2020-10-24 22:56:09 +02: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 Stop script-vars and close windows on eww kill 2020-10-24 22:56:09 +02:00
Cargo.toml Stop script-vars and close windows on eww kill 2020-10-24 22:56:09 +02:00
LICENSE Add MIT license 2020-10-18 23:25:48 +02:00
README.md added troubleshooting to the readme (and fixed a small naming convention issue) (#39) 2020-10-22 18:31:39 +02: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

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.