Bendik Aagaard LynghaugandClaude Fable 5.1 c033335912 widgets: stop aborting on machines without backlight/battery/pulseaudio
The release profile builds with panic = "abort", so a panic in any helper
thread took the whole dashboard down:

- backlight: WalkDir yields /sys/class/backlight itself, so detect() was
  always true and new() picked the class dir as the device, then panicked
  reading brightness. Use min_depth(1) and tolerate read errors.
- battery: detect() only checked that UPower's DisplayDevice answered,
  which it does on every machine; use IsPresent. The monitor thread now
  returns an error instead of unwrapping, and publishes its first reading.
- pulseaudio: a failed connection panicked ("damn"); clicks before the
  first sink query unwrapped a None channel map. Both are now handled, and
  the connect loop no longer busy-spins.
- bar widget: don't underflow when narrower than the label column.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-03 09:15:54 +00:00
2021-10-15 22:47:10 +02:00
2020-03-28 02:22:50 +01:00
2025-02-27 16:53:24 +01:00
2023-01-11 00:28:54 +01:00
2025-04-08 11:51:15 +02:00
2019-08-02 14:50:58 +02:00
2025-02-27 17:42:09 +01:00

wldash

screenshot

A dashboard/launcher/control-panel thing for Wayland. Requires wlr-layer-shell-unstable-v1.

Consider this alpha-quality: While it works, everything is subject to change with a moments notice. You may end up pulling in the latest changes, and poof, wldash suddenly turns into an artisan espresso machine.

Rewrite note

wldash has received a significant rewrite. The old version is available in the wldash1 branch for now.

How to use

  1. Checkout: git clone https://github.com/kennylevinsen/wldash
  2. Build: cargo build --release
  3. Put somewhere: cp target/release/wldash /usr/local/bin/wldash
  4. Run: wldash

To generate a new default configuration, run wldash --write-default-config. To configure, edit $XDG_CONFIG_HOME/wldash/config.yml (or if XDG_CONFIG_HOME is not set, ~/.config/wldash/config.yaml).

To regenerate the desktop file cache, run wldash --desktop-refresh.

For more info, look in src/config.rs.

System dependencies

dbus. See https://github.com/diwic/dbus-rs#requirements.

How to use launcher

The launcher for wldash is built-in, based on https://github.com/kennylevinsen/dot-desktop. Pluggable systems may come back in the future.

The environment variables XDG_DATA_DIRS and XDG_DATA_HOME are read to find the many applications folders that contain desktop files.

Features

Date and time

In nice, big letters!

3 month calendar

Scroll or click on the months to navigate.

Battery level

Over upower, only visible if upower battery is detected

Audio volume

Over pulseaudio, only visible if pulseaudio connection is successful. Scroll to adjust volume, right-click to toggle mute.

Backlight control

Using backlight sys file, only visible of backlight is detected. Scroll to adjust, right-click to toggle between the extreme values.

Launcher

Loads desktop files from the usual locations.

The launcher also accepts prefix operators to change its mode:

Notable missing features:

  • Scaling of any kind - all sizes are currently hardcoded in pixels

How to discuss

Go to #kennylevinsen @ irc.libera.chat to discuss, or use ~kennylevinsen/public-inbox@lists.sr.ht.

S
Description
Wayland dashboard/launcher (fork of kennylevinsen/wldash with crash fixes and /etc config precedence)
Readme GPL-3.0
5.3 MiB
v0.4.3
Latest
2026-10-07 13:46:16 +00:00
Languages
Rust 99.2%
Shell 0.8%