The desktop-entry cache lived in $XDG_CACHE_HOME/wldash/desktop.json. On an NFS-shared home that is a remote read and write on every start (unless the session happens to export a machine-local XDG_CACHE_HOME), and it went stale whenever a package was installed until someone ran --desktop-refresh. Scanning the applications directories takes a few milliseconds over local /usr/share and already happened on a background thread, so the cache bought nothing: drop it, along with simd-json and the serde derives on Desktop. --desktop-refresh stays as a no-op so old key bindings keep working. Calculator history and the prompt saved on Escape are state, not cache: they move to $XDG_STATE_HOME/wldash (~/.local/state), written only on Enter/Escape, and the old cache location is still read as a fallback. With the serde derives gone, two Desktop fields were unused; use them: Type=Link entries now open their URL with xdg-open, and Terminal=true entries run under $TERMINAL -e when it is set. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
83 lines
3.2 KiB
Markdown
83 lines
3.2 KiB
Markdown
# wldash
|
|
|
|

|
|
|
|
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.
|
|
|
|
## This fork
|
|
|
|
This is a maintained fork of [kennylevinsen/wldash](https://github.com/kennylevinsen/wldash)
|
|
living at <https://project.uhhm.no/bl/wldash>. On top of upstream it fixes a number of
|
|
crashes (non-ASCII input in the launcher, machines without a backlight, battery or
|
|
PulseAudio, key-repeat rate 0, ...), corrects redraw damage tracking, and prefers a
|
|
machine-local `/etc/wldash/config.yml` over the per-user config when present, which keeps
|
|
per-host layouts apart on NFS-shared homes.
|
|
|
|
## How to use
|
|
|
|
1. Checkout: `git clone https://project.uhhm.no/bl/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.yml`). If `/etc/wldash/config.yml` exists it takes precedence over the per-user file; `--config FILE` overrides both.
|
|
|
|
Desktop files are scanned every time wldash starts (on a background thread), so there is no cache to refresh; `--desktop-refresh` is kept as a no-op for old key bindings. Calculator history and the prompt saved on Escape live in `$XDG_STATE_HOME/wldash` (`~/.local/state/wldash`); older installs' files under `~/.cache/wldash` are still read.
|
|
|
|
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:
|
|
|
|
- `!`: Arbitrary command
|
|
- `=`: Calculator based on rcalc_lib. See https://docs.rs/rcalc_lib/0.9.3/rcalc_lib/
|
|
|
|
## 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](https://lists.sr.ht/~kennylevinsen/public-inbox).
|