-
Notifications
You must be signed in to change notification settings - Fork 0
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
just aur-local # needs just, python3 and makepkgpackaging/aur/PKGBUILD is a template (pkgver=@VERSION@,
sha256sums=('@SHA256@')), so makepkg cannot be pointed at it directly — it refuses @
in a pkgver. just aur-local renders it for the last released tag and builds that, which is
exactly the tarball the published AUR package builds. Nothing in the repository records a
released version; see scripts/render_packaging.py.
If 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.
Fixed in v0.11.1. If you are on v0.11.0 or earlier, this is what you were seeing.
Windows binds NDIS lightweight filters to each adapter — QoS Packet Scheduler, the WFP
MAC-layer filters, the Native WiFi filter — and each one is reported by the OS as its own
interface, carrying a copy of the adapter's own byte counters. So a single Wi-Fi card could
show up as Wi-Fi plus a Wi-Fi-<filter name>-0000 entry with the same totals. The
duplicate figures were never double-counted traffic; they are the same counters read twice.
Two things went wrong together, and only the first is Windows-specific:
- the filter instance was listed as an interface at all (
net-iohad excluded them since v0.11.0;Netnow does too); -
both lines were rendered as the active interface, in bright blue, because the
active interface was matched with a substring test against the rendered line — and
Wi-Fi-Native WiFi Filter Driver-0000containsWi-Fi. That half was not Windows-specific: on Linux an activeeth0matched aneth0.100VLAN and anyveth0…pair the same way, highlighting and re-ordering the wrong line. Both now compare interface names exactly.
Fixed in v0.11.1, on versions before which this could happen whenever retch could not
work out which interface carried the default route — being offline, or an unusual routing
setup. Standard mode shows a single Net line and is supposed to fall back to the first
interface that is up; that fallback tested the rendered line for the literal [Up], which
never appears, because the status is colourised (the bytes are [, an escape sequence,
Up, another escape, ]). So the fallback never fired and no line was printed at all.
--long and --full were unaffected — they list every interface and never needed the
fallback.