launcher: scan desktop files directly, keep state in XDG_STATE_HOME
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>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
03a3c681b0
commit
9953865128
@@ -28,7 +28,7 @@ per-host layouts apart on NFS-shared homes.
|
||||
|
||||
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.
|
||||
|
||||
To regenerate the desktop file cache, run `wldash --desktop-refresh`.
|
||||
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`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user