fix: set XDG_CONFIG_DIRS and XDG_DATA_DIRS defaults in tryGetPamEnvVars (#3121)
## Summary - Fixes #2970: WaveTerm does not inherit `XDG_CONFIG_DIRS` (and `XDG_DATA_DIRS`) when snap or other environments strip these variables and PAM env files do not define them - In `tryGetPamEnvVars()`, after the existing `XDG_RUNTIME_DIR` fallback, adds identical fallback logic for `XDG_CONFIG_DIRS` (default: `/etc/xdg`) and `XDG_DATA_DIRS` (default: `/usr/local/share:/usr/share`) per the XDG Base Directory Specification - No behavior change when these vars are already set by PAM env files ## Root Cause Snap confinement strips several XDG environment variables. `tryGetPamEnvVars()` already handles `XDG_RUNTIME_DIR` with a sensible default, but `XDG_CONFIG_DIRS` and `XDG_DATA_DIRS` were left unhandled, causing child shells to receive empty/unset values. ## Test plan - [ ] `gofmt -l ./pkg/shellexec/` — no output (clean) - [ ] `go build ./...` — succeeds - [ ] On Linux with snap, verify that child shells receive `XDG_CONFIG_DIRS=/etc/xdg` and `XDG_DATA_DIRS=/usr/local/share:/usr/share` when the variables are not set by the desktop environment Signed-off-by: majiayu000 <1835304752@qq.com>
L
lif committed
b26eb69df620d4288a153ff6e464a0fdaa804ac2
Parent: 24de0c1
Committed by GitHub <noreply@github.com>
on 3/26/2026, 5:45:10 PM