Add migration to readme
This commit is contained in:
parent
4942925859
commit
b8877c5dc0
3 changed files with 41 additions and 108 deletions
16
README.md
16
README.md
|
@ -4,19 +4,27 @@
|
|||
|
||||
<img src="./.github/EwwLogo.svg" height="100" align="left"/>
|
||||
|
||||
Elkowar’s Wacky Widgets is a standalone widget system made in Rust that allows you to implement
|
||||
Elkowars Wacky Widgets is a standalone widget system made in Rust that allows you to implement
|
||||
your own, custom widgets in any window manager.
|
||||
|
||||
Documentation **and instructions on how to install** can be found [here](https://elkowar.github.io/eww).
|
||||
|
||||
## New configuration language needs a name - USER OPINIONS NEEDED
|
||||
## New configuration language!
|
||||
|
||||
The rework of the configuration language has been decided on. Now, we just need a name!
|
||||
Please give your opinions in the [discussion post](https://github.com/elkowar/eww/discussions/206).
|
||||
YUCK IS ALIVE! After months of waiting, the new configuration language has now been released!
|
||||
This also means that XML is no longer supported from this point onwards.
|
||||
If you want to keep using the latest releases of eww, you'll need to migrate your config over to yuck.
|
||||
|
||||
The steps to migrate can be found in [the migration guide](YUCK_MIGRATION.md)
|
||||
|
||||
Additionally, a couple _amazing_ people have started to work on an
|
||||
[automatic converter](https://github.com/undefinedDarkness/ewwxml) that can turn your old eww.xml into the new yuck format!
|
||||
|
||||
|
||||
## Examples
|
||||
|
||||
(note that some of these still make use of the old configuration syntax)
|
||||
|
||||
* A basic bar, see [examples](./examples/eww-bar)
|
||||

|
||||
|
||||
|
|
29
YUCK_MIGRATION.md
Normal file
29
YUCK_MIGRATION.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
# Migrating to yuck
|
||||
|
||||
Yuck is the new configuration syntax used by eww.
|
||||
While the syntax has changed dramatically, the general structure of the configuration
|
||||
has stayed mostly the same.
|
||||
|
||||
Most notably, the top-level blocks are now gone.
|
||||
This means that `defvar`, `defwidget`, etc blocks no longer need to be in separate
|
||||
sections of the file, but instead can be put wherever you need them.
|
||||
|
||||
Explaining the exact syntax of yuck would be significantly less effective than just
|
||||
looking at an example, as the general syntax is very simple.
|
||||
|
||||
Thus, to get a feel for yuck, read through the [example configuration](./examples/eww-bar/eww.yuck).
|
||||
|
||||
|
||||
Additionally, a couple smaller things have been changed.
|
||||
The fields and structure of the `defwindow` block as been adjusted to better reflect
|
||||
the options provided by the displayserver that is being used.
|
||||
The major changes are:
|
||||
- The `screen` field is now called `monitor`
|
||||
- `reserve` and `geometry` are now structured slightly differently
|
||||
To see how exactly the configuration now looks, check the [respective documentation](./docs/src/configuration.md#creating-your-first-window)
|
||||
|
||||
|
||||
## Automatically converting your configuration
|
||||
|
||||
A couple _amazing_ people have started to work on an [automatic converter](https://github.com/undefinedDarkness/ewwxml) that can turn your
|
||||
old eww.xml into the new yuck format!
|
|
@ -1,104 +0,0 @@
|
|||
<!-- The main eww configuration file. This is where your widgets and how they appear on the screen and what they
|
||||
contain are defined. -->
|
||||
|
||||
<eww>
|
||||
<definitions>
|
||||
<!-- This is the place where you structure your widgets, align them and stuff. -->
|
||||
|
||||
<def name="bar"> <!-- Starts the definition of a widget named main -->
|
||||
<box orientation="h" hexpand="true">
|
||||
<workspaces/>
|
||||
<music/>
|
||||
<sidestuff/>
|
||||
</box>
|
||||
</def>
|
||||
<def name="sidestuff">
|
||||
<box class="sidestuff" orientation="h" space-evenly="false" halign="end">
|
||||
<slider-vol/>
|
||||
<slider-ram/>
|
||||
<time/>
|
||||
</box>
|
||||
</def>
|
||||
|
||||
<def name="workspaces">
|
||||
<box orientation="h" class="workspaces" space-evenly="true" halign="start"> <!-- Your workspaces.-->
|
||||
<button onclick="wmctrl -s 0">1</button>
|
||||
<button onclick="wmctrl -s 1">2</button>
|
||||
<button onclick="wmctrl -s 2">3</button>
|
||||
<button onclick="wmctrl -s 3">4</button>
|
||||
<button onclick="wmctrl -s 4">5</button>
|
||||
<button onclick="wmctrl -s 5">6</button>
|
||||
<button onclick="wmctrl -s 6">7</button>
|
||||
<button onclick="wmctrl -s 7">8</button>
|
||||
<button onclick="wmctrl -s 8">9</button>
|
||||
</box>
|
||||
</def>
|
||||
<def name="music">
|
||||
<box orientation="h" class="music" halign="center" space-evenly="false">
|
||||
<!-- An image. We won't be using it, but it might be handy if you ever need it. -->
|
||||
<!-- <image path="/home/user/.config/eww/icons/music.svg"/> -->
|
||||
|
||||
{{music}} <!--This is how you use variables.-->
|
||||
</box>
|
||||
</def>
|
||||
<def name="slider-vol">
|
||||
<!--A basic volume slider-->
|
||||
<box orientation="h" class="slider-vol" space-evenly="false">
|
||||
<box class="label-vol"></box>
|
||||
<scale min="0" max="101" value="{{volume}}" onchange="amixer -D pulse sset Master {}%"/>
|
||||
</box>
|
||||
</def>
|
||||
<def name="slider-ram">
|
||||
<!--A basic RAM slider-->
|
||||
<box orientation="h" class="slider-ram" space-evenly="false">
|
||||
<box class="label-ram"></box>
|
||||
<scale min="0" active="false" max="101" value="{{ram-used}}"/>
|
||||
</box>
|
||||
</def>
|
||||
<def name="time">
|
||||
<!--Time-->
|
||||
<box class="time">{{hour}}:{{min}} {{month}} {{number_day}}, {{year_full}}</box>
|
||||
</def>
|
||||
</definitions>
|
||||
|
||||
<variables>
|
||||
|
||||
<!-- Music vars -->
|
||||
<!-- These are your variables. Like they say, they run a script, and then output that to the variable. In
|
||||
the following var, we get music info from playerctl. -->
|
||||
|
||||
<script-var name="music" interval="5s">playerctl metadata --format '{{ artist }} - {{ title }}'</script-var>
|
||||
|
||||
|
||||
<!--Volume var-->
|
||||
<!-- If your vars get too complex to write down here, you can use an external script and paste it's path here as well, as shown below.
|
||||
-->
|
||||
|
||||
<script-var name="volume" interval="16ms">~/.config/eww/scripts/getvol</script-var>
|
||||
|
||||
<!--Date vars-->
|
||||
<script-var name="number_day" interval="5h">date "+%d"</script-var>
|
||||
<script-var name="month" interval="10h">date "+%b"</script-var>
|
||||
<script-var name="min" interval="10s">date "+%M"</script-var>
|
||||
<script-var name="hour" interval="1m">date "+%H"</script-var>
|
||||
<script-var name="year_full" interval="15h">date "+%Y"</script-var>
|
||||
|
||||
<!--RAM var-->
|
||||
<script-var name="ram-used" interval="1s">~/.config/eww/scripts/getram</script-var>
|
||||
|
||||
<!--Battery charge var-->
|
||||
<script-var name="battery-remaining" interval="2m">cat /sys/class/power_supply/BAT0/capacity</script-var>
|
||||
|
||||
</variables>
|
||||
|
||||
<windows>
|
||||
<!-- These are the windows -->
|
||||
<window name="bar" screen="0" focusable="true" windowtype="dock">
|
||||
<geometry x="0%" y="0%" width="100%" height="4%"/> <!--Specifies geometry-->
|
||||
<reserve side="top" distance="4%" layer="top"/>
|
||||
<widget>
|
||||
<bar/> <!--This is the def we created earlier-->
|
||||
</widget>
|
||||
</window>
|
||||
</windows>
|
||||
</eww>
|
Loading…
Add table
Reference in a new issue