Repository navigation
Troubleshooting
On Linux, phys-mem reads DMI memory tables and requires root:
sudo retchWithout root, the field is silently omitted rather than erroring — this is expected,
not a bug. On Windows, phys-mem uses Win32_PhysicalMemory and phys-disk uses
Get-PhysicalDisk, both via PowerShell — make sure powershell.exe is on PATH.
Running under sudo is not simply "retch with more fields" — it trades one set for
another, because sudo's default env_reset clears most of the environment. Diffing a
sudo retch --full run against a plain one is therefore not a fair before/after.
| Field | |
|---|---|
| Root only |
phys-mem (DMI tables, mode 0400 root); the snapshot count in btrfs (btrfs subvolume list -s) |
| User only |
editor ($VISUAL/$EDITOR), desktop and wm (XDG_CURRENT_DESKTOP and friends) |
The btrfs snapshot count is omitted, never shown as 0, when it can't be read, so
"couldn't check" is never mistaken for "no snapshots".
Packages used to be on the root-only list and no longer is (v0.6.18). It looked
like a permissions limit but was a bug: the RPM SQLite database was opened read-write,
and since it is root-owned inside a root-owned directory, SQLite could not create its
journal sidecars and every query failed with attempt to write a readonly database.
It is now opened read-only with immutable=1 and works as a normal user. If you are on
an older build, sudo retch --fields packages is the workaround.
weather requires network access (Open-Meteo for forecast data, ipinfo.io for
IP-based auto-location if weather_location isn't set) and has a ~4s timeout. It's
shown in --full mode only by default — it won't appear in standard, --short, or
--long output even with network access. Set weather_location in config (city name,
ZIP code, or lat,lon) to skip the IP geolocation round-trip.
domain-search queries resolvectl status (systemd-resolved) for per-interface DNS
search domains. On systems without systemd-resolved (or where it isn't managing DNS),
this field will be empty. It's shown in --full mode only.
This is intentional, not a bug: the logo is automatically suppressed whenever stdout
is not a terminal (e.g. retch | bat, retch > file.txt, or when running inside a
script). This avoids dumping raw terminal graphics escape sequences into a file or
another program's input. Set show_logo = true in config has no effect on this
behavior — the piping check always wins.
Both were fixed in v0.9.2 — check yours with retch --version. On earlier builds
you may see one or both of:
- Logo floats in the middle of a wide terminal. The logo was drawn where the text column ended (capped at column 65) rather than at the right margin, so anything wider than roughly 110 columns left a gap. It is now anchored to the terminal's last column.
-
One row's logo sits a few columns further right than the others. Line widths were
measured in characters rather than terminal columns, so any field value containing
double-width characters — most often a CJK or Hangul track title in
media/player— pushed that row's logo right by one column per wide character.
If the logo still stacks above the field list, that is the layout falling back
deliberately: it needs at least 95 columns, and enough room for the text column and the
logo side by side. Widen the terminal, or use --no-logo if you would rather have the
width back.
Long values wrap onto indented continuation lines. Three defects there were fixed in v0.9.3:
- The second line is a different colour. Lines are colourised before they are wrapped, so the opening escape stayed on the first line and the closing one on the last — everything between rendered in the terminal's default colour.
-
A comma went missing at the break.
American Megatrends International, LLC.wrapped to…International/LLC., which reads as two values. This one changed the value's meaning, not just its appearance, so aBIOS/Audio/DNS Serverline read from a build before v0.9.3 may be missing a separator at a line break. - A value wrapped early on a wide terminal. Lines beside the logo wrapped to the text column (at most 65) rather than to the space actually available up to the logo, so a 283-column terminal could break a line at ~55 columns and leave the rest of the gap empty.
Prebuilt macOS release binaries are not yet code-signed or notarized (tracked as future work). If macOS blocks the binary after downloading a release asset directly:
xattr -dr com.apple.quarantine /path/to/retchThis isn't needed when installing via cargo install retch-cli, nix run github:l1a/retch, or building from source — only for binaries downloaded directly
from a GitHub Release.
New account registrations on the Arch User Repository are temporarily suspended by
Arch Linux (upstream AUR issue, not retch-specific). This blocks first-time package
maintainers, not installation via an existing AUR helper. If yay -S retch /
paru -S retch themselves fail, build and install locally instead:
git clone https://github.com/l1a/retch.git
cd retch/packaging/aur
makepkg -siIf you have FUSE-mounted volumes (e.g. cryfs, EncFS vaults), disk detection can
be skewed by slow statvfs calls on those mounts. Standard, --short, and --long
modes already skip fuse.* mounts to avoid this; only --full mode probes them.
Unmount FUSE volumes before benchmarking, or discount runs where they're mounted.