0.6.0 #1

Merged
pogmommy merged 89 commits from 0.6.0 into main 2025-07-04 20:29:26 -07:00
Owner
No description provided.
pogmommy added 89 commits 2025-07-04 20:28:50 -07:00
* fix: refactor flake

* chore: update flake.lock

* chore: update changelog

* chore: update flake.lock

* chore: update changelog
* remove useless check

* add `truncate` property

* add to CHANGELOG.md
* systray: add `:hover` attribute to tray items

* doc: add entry to changelog
* systray: fix remove item

* docs: add entry to CHANGELOG.md
* Add 'min' and 'max' function calls to simplexpr

* Add changelog entry for 'min' and 'max' simplexpr functions
co-authored-by: Johan Geluk <johan@geluk.io>
* Fixed the gtk stack widget

* Add changelog entry for the stack widget bugfix

* Small code style improvement

Co-authored-by: Wölfchen <w-lfchen@posteo.net>

---------

Co-authored-by: ElKowar <lkowarschick@gmail.com>
Co-authored-by: Wölfchen <w-lfchen@posteo.net>
* Fixed the gtk `expander` widget

* Add changelog entry for the `expander` widget bugfix
* feat: add fill-svg attribute to image widget

Co-authored-by: Eddy Otsutsuki <23711001+hypernova7@users.noreply.github.com>

* feat: add preserve-aspect-ratio attribute to image widget

* docs: document new attributes; changelog entry

---------

Co-authored-by: Eddy Otsutsuki <23711001+hypernova7@users.noreply.github.com>
* Fix: EWW_NET wrong values for TX/RX stats

The sysinfo crate, structure Networks, basically caches one value of
total_received/total_transmitted each (as well as other metrics) and
returns the difference between those two values when queried via the
`received()` and `transmitted()` functions.

These values are updated by both the `refresh()` and `refresh_list()`
functions; so by calling both of them right after each other like
previously done here, sets both the cached total_received/... and the
current total_received/... to nearly the same value.

`refresh_list()` also updates the list of interfaces on a host, with a
marginally small performance impact for doing so (I measured slightly
more than 100 microseconds on my machine (0.1 milliseconds), around
20-25% more than with `refresh()`), especially considering this is run
only every 2 seconds.

* Add changelog entry for the EWW_NET bugfix
* fix!: eliminate some dead code

* fix: fix lints

Combined diff of a7a09ea192b6f06b1984709029dc3bfe0481759e and bfc5cb9cb020dd256484eb5e4344e12e4a3b2ceb

Co-authored-by: Johan Geluk <johan@geluk.io>

* fix: remove unnecessary allow; fix capitalization

* chore: automatically update a few dependencies

* fix: fix lint

i introduced this in #1119, whoops

* docs: move #1132's changelog entry

---------

Co-authored-by: Johan Geluk <johan@geluk.io>
* workaround gdk not providing right monitor informations on wayland

* move gdk workaround for plug name into a separate function

* adjust changelog
* Add scss support for the ':style' widget property

* Add changelog entry for the scss support for the ':style' property

---------

Co-authored-by: ElKowar <dev@elkowar.dev>
* feat: Add option for vertical graph

* doc: Add feature to changelog
* add `EWW_BATTERY` support in (free|open|net)bsd

* add `EWW_BATTERY` support in (free|open|net)bsd

---------

Co-authored-by: ElKowar <dev@elkowar.dev>
closes #869

Co-authored-by: CrumblyLiquid <crumblyliquid@gmail.com>
* fix: update snw's default path

* docs: document changes to autogenerated files
* fix: demote two logging statements to debug

* fix: remove some trailing whitespace in log message
* Add changelog entry for transform-origin-properties

* Implement explicitly setting a center of rotation

The transform-Widget provides "rotate" to rotate its child. However, the
default center of rotation is (0, 0) (aka top-left), so it was not
possible to, for example, rotate a child in-place.

This commit implements the additional options `transform-origin-x` and
`transform-origin-y`. Both are optional, and the default value is 0.0 for
each, so previous configurations should produce the same results.

* Fix: transform order should be rotate->translate->scale
* revert: zbus 4 -> 3

This reverts commit 71ba502442.

* chore: update dependencies

* chore: manually edit lockfile

* chore: dependency updates
* nix: update flake-compat

* nix: use edolstra/flake-compat#65 as input
* flake.lock: update

* feat: switch to 1.81.0 toolchain

* fix: fix new warnings and lints

* chore: update changelog entry

* chore: automatically update a few dependencies
* Export magic constants during server initialization

* `docs`: add `magic constants` descriptions (or at least try)

* `docs`: add `min` and `max` simplexpr functions entries

* `docs`: `expander` should contain single child

* Update docs/src/magic-vars.md

Co-authored-by: Wölfchen <w-lfchen@posteo.net>

* `docs`: fix the heat units typo

* Revert "Export magic constants during server initialization"

This reverts commit 09fbdde6c99a4c4c8af39b76496878f99a28d568.

* Revert "Update docs/src/magic-vars.md"

This reverts commit b3dbfadfb2143cc0d3e2e21c0cf43ed0a96a53cf.

* Revert "`docs`: add `magic constants` descriptions (or at least try)"

This reverts commit f03aebf0dd2fba10c67c608f72570c230d0eb8ea.

---------

Co-authored-by: Wölfchen <w-lfchen@posteo.net>
* feat: add keyboard support for button presses

Co-authored-by: Julian Schuler <31921487+julianschuler@users.noreply.github.com>

* chore: attribution

* fix: activate eventbox on button release; minor fixes

* docs: improve button and eventbox documentation

Co-authored-by: Julian Schuler <31921487+julianschuler@users.noreply.github.com>

---------

Co-authored-by: Julian Schuler <31921487+julianschuler@users.noreply.github.com>
* chore: apply pr #629

Co-authored-by: Roland Fredenhagen <dev@modprog.de>

* style: early return

* feat: err on empty json string

* docs: update docs

* test: update test in accordance with decision

* chore: attribution

* docs: improve wording

* docs: add breaking change notice to changelog

* fix(changelog): fix pr link

---------

Co-authored-by: Roland Fredenhagen <dev@modprog.de>
add clarification for regex operator
* Add `powi`/`powf` expressions

* Update docs
Error for the path load of the image for the data structure example
* feat: Add support for on-demand window focus on wayland

* fix: cargo fmt

* Update CHANGELOG.md with OnDemand focusable

* fix: add v0_6 feature to gtk-layer-shell in eww/cargo.toml
* fix: first attempt at fixing scopes for widgets with children

* fix: new scope for every child

* chore: remove debug print
* feat: add raw-output arg to jq

Co-authored-by: Roman Hargrave <roman@hargrave.info>

* test: add some test cases for jq raw output

* refactor: improve run_jaq_function

* docs: document changes

---------

Co-authored-by: Roman Hargrave <roman@hargrave.info>
* fix: get_locale follows posix standard

* refactor: more concise and legible get_locale function

Co-authored-by: Wölfchen <w-lfchen@posteo.net>

---------

Co-authored-by: Wölfchen <w-lfchen@posteo.net>
* feat: add `log` to expressions

* changelog: add `log`
* add :lines property to label widget

* add :lines property and fix some other little stuff

* quick documentation fix
* feat: add subcommand for force-polling variable

* docs: document the new `eww poll` subcommand
Co-authored-by: ElKowar <dev@elkowar.dev>
This avoids possible flicker with windows such as OSDs.
The logic to do this was added in #263 but broke when durations were added.

Fixes #260.
Fixes the regression from #1236 preventing hot reload.
This can be made granular, e.g. for changes that don't
effect all windows or css chnages not requiring a full
window restart
* Add value-pos to gtk scale

* add possible values to value-pos

* add value-pos change to CHANGELOG.md
* Revert "Force recreating windows on config change (#1284)"

This reverts commit 29fa1587c3.

* Revert "Avoid recreating windows when only duration changes (#1236)"

This reverts commit b6b7bc8453.
* add floor() and ceil() functions to simplexpr, akin to round()

* document addition of floor() and ceil()

* remove unnecessary second argument for floor() and ceil()

* Update documentation

---------

Co-authored-by: Martin Bogdanov <github () martinbogdanov.com>
* Add wordchar wrap mode

* documentation

* Fix docs generation to properly include options for wrap-mode

---------

Co-authored-by: Cal <unnaturaltwilight@gmail.com>
* catch failure to format to format time instead of panicking

* update chrono

* use new API
* fix: improve multi-monitor handling under wayland

When a monitor gets disconnected, the destroy event of all associated
windows gets called, and the window gets removed.

This patch changes that behavior: the window is still closed but the
configuration is kept using the existing reload mechanism.
In addition, a callback is added to listen for new monitors, triggering
a reload when a new monitor gets connected.

This logic also reloads already running windows, which has a positive and
negative effect:
- positive: if currently running e.g. on the second monitor specified in
  the list, the window can get moved to the first monitor
- negative: if reloading starts it on the same monitor, it gets reset
  (e.g. graphs)

I also had to work around an issue: the monitor model is not yet available
immediately when a new monitor callback triggers. Waiting in the callback
does not help (I tried 10 seconds). However, waiting outside, it always
became available after 10ms.

Tested with a dual monitor setup under KDE through a combinations of:
- enabling/disabling individual monitors
- switching between monitors
- specifying a specific monitor in the yuck config
- specifying a list of specific monitors in the yuck config

In all these cases the behavior is as expected, and the widget gets loaded
on the first available monitor (or stays unloaded until one becomes
available).
It also works when opening a window without any of the configured monitors
being available.

There is one remaining error from GTK when closing the window:
GLib-GObject-CRITICAL **: 20:06:05.912: ../gobject/gsignal.c:2684: instance '0x55a4ab4be2d0' has no handler with id '136'
This comes from the `self.gtk_window.disconnect(handler_id)` call. To
prevent that we'd have to reset `destroy_event_handler_id`.

* fix: do not call gtk::main_iteration_do while waiting for monitor model

Executors that poll a future cannot be called recursively (in this case
glib::main_context_futures::TaskSource::poll).
So we cannot call gtk::main_iteration_do here, which in some cases led to
the future being polled again, which raised a panic in the form of:
thread 'main' panicked at glib/src/main_context_futures.rs:238:56:
called `Result::unwrap()` on an `Err` value: EnterError

We can just remove it as tokio::time::sleep() ensures the main thread
continues to process (gtk) events during that time.
* feat: add `log` to expressions

* changelog: add `log`

* feat: add `formatbytes` to expressions
pogmommy merged commit 5eb930c39b into main 2025-07-04 20:29:26 -07:00
pogmommy deleted branch 0.6.0 2025-07-04 20:29:26 -07:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: pogmommy/eww#1
No description provided.