Add XFCE panel visual bugs handoff for build-host diagnostics (Claude)
This commit is contained in:
parent
8535b2aca9
commit
7469669caf
1 changed files with 279 additions and 0 deletions
279
doc/XFCE-PANEL-BUGS-HANDOFF.md
Normal file
279
doc/XFCE-PANEL-BUGS-HANDOFF.md
Normal file
|
|
@ -0,0 +1,279 @@
|
|||
# XFCE Panel Visual Bugs — Build Verification Handoff
|
||||
|
||||
**From:** Claude Reviewer / XFCE Tweaker (Linux)
|
||||
**Date:** 24.maj.2026
|
||||
**Status:** OPEN — needs FreeBSD build-host diagnostics
|
||||
|
||||
## Deletion Criteria
|
||||
|
||||
- [ ] Whiskermenu Start button icon is visible (not missing/broken).
|
||||
- [ ] Clock plugin renders date+time in the panel.
|
||||
- [ ] Clipman loads without "could not be loaded" dialog.
|
||||
- [ ] Systray icons (NetworkMgr, mixer) and xkb flag icon are visually
|
||||
uniform in size — no oversized or undersized outliers.
|
||||
- [ ] All fixes confirmed on real hardware boot (not just image inspection).
|
||||
|
||||
## Operator-Reported Issues
|
||||
|
||||
Six issues from the latest build on real hardware. Ordered by likelihood
|
||||
of being a config-only fix vs needing build-host investigation.
|
||||
|
||||
### 1. Whiskermenu Start button — missing icon
|
||||
|
||||
- **File:** `live/operator-session/panel-skel/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml:47`
|
||||
- **Current value:** `button-icon` is `"freebsd"`
|
||||
- **Problem:** The `"freebsd"` icon name resolves to nothing in the
|
||||
installed icon themes (Papirus, Adwaita, hicolor). The Papirus theme
|
||||
does not ship a `freebsd` icon. XFCE falls back to a broken/missing
|
||||
icon glyph.
|
||||
- **Diagnosis (build host):**
|
||||
```sh
|
||||
# Check what icon themes actually provide for "freebsd"
|
||||
find /usr/local/share/icons -iname '*freebsd*' -o -iname '*beastie*' 2>/dev/null
|
||||
# Check if the freebsd-8k-wallpapers package ships any icons
|
||||
pkg info -l freebsd-8k-wallpapers | grep -i icon
|
||||
# Check pixmaps
|
||||
find /usr/local/share/pixmaps -iname '*freebsd*' 2>/dev/null
|
||||
```
|
||||
- **Likely fix options:**
|
||||
- Use `"start-here"` (standard XDG menu icon; Papirus ships it).
|
||||
- Use `"org.freebsd"` if the OS provides it in hicolor.
|
||||
- Ship a custom beastie SVG/PNG into the Papirus or hicolor theme as
|
||||
part of `build.sh`.
|
||||
- **Scope:** Config-only if `"start-here"` is acceptable. Asset addition
|
||||
if operator wants the FreeBSD daemon logo specifically.
|
||||
|
||||
### 2. Clock plugin — not rendering
|
||||
|
||||
- **File:** `xfce4-panel.xml` plugin-12 (lines 103-106)
|
||||
- **Current config:**
|
||||
```xml
|
||||
<property name="plugin-12" type="string" value="clock">
|
||||
<property name="digital-format" type="string" value="%H:%M %d.%b.%Y"/>
|
||||
<property name="font" type="string" value="Noto Sans 14"/>
|
||||
</property>
|
||||
```
|
||||
- **Config looks correct.** Clock was working in earlier builds.
|
||||
- **Possible causes:**
|
||||
- Noto Sans font not available or not cached at the time the panel
|
||||
starts. Font config cache may not be regenerated during build.
|
||||
- Plugin load failure similar to clipman (missing .so dependency).
|
||||
- Panel background color (#1a1a2e at 85%) blending with clock text
|
||||
color if the clock inherited a dark text color.
|
||||
- **Diagnosis (build host):**
|
||||
```sh
|
||||
# Check if clock plugin .so resolves
|
||||
ldd /usr/local/lib/xfce4/panel/plugins/libxfce4clock.so 2>/dev/null
|
||||
ldd /usr/local/lib/xfce4/panel/plugins/libdatetime.so 2>/dev/null
|
||||
# Check Noto Sans availability
|
||||
fc-list | grep -i 'noto sans'
|
||||
# Check if the panel XML actually ended up in the image
|
||||
grep -A5 'plugin-12' /mnt/usr/local/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
|
||||
grep -A5 'plugin-12' /mnt/home/clawdie/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
|
||||
# Check for session-level panel errors
|
||||
cat /mnt/home/clawdie/.cache/xfce4-panel.log 2>/dev/null
|
||||
```
|
||||
- **If font is present and plugin loads:** the issue may be foreground
|
||||
color. Consider adding explicit `fg-color` property or switching to
|
||||
the analog clock mode temporarily to confirm the plugin itself works.
|
||||
|
||||
### 3. Clipman — "could not be loaded" on startup
|
||||
|
||||
- **File:** `xfce4-panel.xml` plugin-13 (line 102)
|
||||
- **Current config:** `<property name="plugin-13" type="string" value="clipman"/>`
|
||||
- **History:** Clipman was removed in `2fc4ca1` due to this exact error,
|
||||
restored in `70634ef` after adding an ldd diagnostic gate to TESTING.md.
|
||||
The ldd check passes at build time but the error still appears at
|
||||
runtime on real hardware.
|
||||
- **ldd is necessary but not sufficient.** It catches missing shared
|
||||
libraries but NOT missing D-Bus services, X11 ICCCM atoms, or
|
||||
permission issues.
|
||||
- **Diagnosis (build host — on real hardware after boot):**
|
||||
```sh
|
||||
# Check if the clipman .so has all deps (should pass if build passed)
|
||||
ldd /usr/local/lib/xfce4/panel/plugins/libxfce4clipman.so
|
||||
# Check D-Bus activation (clipman registers a D-Bus service)
|
||||
ls /usr/local/share/dbus-1/services/org.xfce.clipman*.service
|
||||
dbus-send --session --dest=org.xfce.panel --type=method_call /org/xfce/panel org.xfce.panel.getPluginList 2>&1 || true
|
||||
# Check session log for the actual error message
|
||||
grep -ri 'could not be loaded\|clipman' ~/.cache/xfce4-session/*.log 2>/dev/null
|
||||
grep -ri 'could not be loaded\|clipman' ~/.cache/xfce4-panel.log 2>/dev/null
|
||||
# Check if xfce4-panel can list the plugin
|
||||
xfce4-panel --plugin-list 2>&1 | grep -i clipman
|
||||
```
|
||||
- **Possible root causes:**
|
||||
- Missing or broken D-Bus service file for clipman.
|
||||
- The live user `clawdie` lacks a D-Bus session bus at panel start.
|
||||
- libqrencode or optional dependency missing at runtime.
|
||||
- Plugin expects Xfconf to have a pre-existing channel that doesn't
|
||||
exist on first boot.
|
||||
|
||||
### 4. XKB keyboard icon — too large
|
||||
|
||||
- **File:** `xfce4-panel.xml` plugin-10 (lines 97-101)
|
||||
- **Current config:**
|
||||
```xml
|
||||
<property name="plugin-10" type="string" value="xkb">
|
||||
<property name="display-type" type="uint" value="0"/>
|
||||
<property name="display-name" type="uint" value="0"/>
|
||||
<property name="group-policy" type="uint" value="0"/>
|
||||
</property>
|
||||
```
|
||||
- **`display-type=0` means "show flag image".** Flag SVGs in Papirus are
|
||||
typically 48x48 or scalable with no intrinsic size cap. Other systray
|
||||
icons render at 22px or 24px because the systray plugin constrains
|
||||
them. The xkb plugin renders independently and does not inherit the
|
||||
panel's `icon-size` setting.
|
||||
- **Diagnosis (build host):**
|
||||
```sh
|
||||
# Check actual flag icon size in Papirus
|
||||
find /usr/local/share/icons/Papirus -iname '*flag*si*' -o -iname '*flag*us*' 2>/dev/null
|
||||
identify /usr/local/share/icons/Papirus/48x48/panel/xfpm-keyboard-*.png 2>/dev/null || true
|
||||
# Check if xkb has a size property
|
||||
xfconf-query -c xfce4-panel -p /plugins/plugin-10 -l -v 2>/dev/null
|
||||
```
|
||||
- **Likely fixes:**
|
||||
- Add `<property name="display-type" type="uint" value="1"/>` to show
|
||||
layout text (e.g., "us" / "si") instead of oversized flag images.
|
||||
- OR add `<property name="display-type" type="uint" value="2"/>` for
|
||||
the "image + text" mode which may render smaller.
|
||||
- OR set panel `icon-size` to an explicit value (e.g., `24`) which
|
||||
may constrain the xkb plugin too.
|
||||
|
||||
### 5. NetworkMgr icon — too small / barely visible
|
||||
|
||||
- **NetworkMgr is a systray icon** (auto-registered in plugin-8
|
||||
`systray`). Systray icons respect the icon theme's panel/status
|
||||
directory sizes, which default to 22px in Papirus.
|
||||
- **If the panel is 48px tall** and most icons are 22px, they will look
|
||||
small. This is a Papirus theme default, not a bug in NetworkMgr.
|
||||
- **Diagnosis (build host):**
|
||||
```sh
|
||||
find /usr/local/share/icons/Papirus/panel/ -name '*network*' 2>/dev/null
|
||||
find /usr/local/share/icons/Papirus/22x22/status/ -name '*network*' 2>/dev/null
|
||||
find /usr/local/share/icons/Papirus/24x24/status/ -name '*network*' 2>/dev/null
|
||||
```
|
||||
- **Possible fix:** Set panel `icon-size` from `0` (auto) to a specific
|
||||
pixel value. XFCE panel `icon-size` values: `0`=auto, `1`=16px,
|
||||
`2`=24px, `3`=32px, `4`=48px. Setting to `2` (24px) would force all
|
||||
panel icons to 24px. However, systray icons may still ignore this —
|
||||
XFCE's systray plugin is known to not fully respect `icon-size`.
|
||||
|
||||
### 6. Sound (mixer) icon — size mismatch with other icons
|
||||
|
||||
- **File:** `xfce4-panel.xml` plugin-11 (lines 93-96)
|
||||
- **Mixer plugin has no size property.** It renders at whatever size the
|
||||
icon theme provides for audio-volume icons.
|
||||
- **Same underlying issue as #5:** inconsistent icon sizes across panel
|
||||
plugins because XFCE doesn't enforce a single icon size across all
|
||||
plugin types.
|
||||
- **Unified fix approach (covers issues 4, 5, 6):**
|
||||
- Set panel `icon-size` to an explicit value (suggest `2` = 24px).
|
||||
- This constrains launchers, whiskermenu, and most plugins.
|
||||
- For systray: XFCE 4.16+ systray does not fully obey `icon-size`.
|
||||
If the 24px panel setting doesn't fix systray icons, the remaining
|
||||
option is to patch the Papirus theme or switch to an icon theme with
|
||||
larger default status icons.
|
||||
- For xkb: switch from flag images (`display-type=0`) to text
|
||||
(`display-type=1`) or set an explicit size property if available.
|
||||
|
||||
## Build-Host Commands to Run
|
||||
|
||||
Codex ISO Builder — please run these on the FreeBSD build host against
|
||||
the **latest built image** (mounted or live-booted) and report back
|
||||
exact output:
|
||||
|
||||
```sh
|
||||
# 1. Confirm all icon themes are installed
|
||||
pkg info -e papirus-icon-theme adwaita-icon-theme hicolor-icon-theme
|
||||
|
||||
# 2. Find any FreeBSD/OS-branding icons
|
||||
find /usr/local/share/icons /usr/local/share/pixmaps \
|
||||
-iname '*freebsd*' -o -iname '*beastie*' 2>/dev/null
|
||||
|
||||
# 3. Check "start-here" icon availability (potential fix for issue 1)
|
||||
find /usr/local/share/icons/Papirus -name 'start-here*' 2>/dev/null
|
||||
|
||||
# 4. Check clock plugin shared libs
|
||||
ldd /usr/local/lib/xfce4/panel/plugins/libxfce4clock.so 2>/dev/null
|
||||
ldd /usr/local/lib/xfce4/panel/plugins/libdatetime.so 2>/dev/null
|
||||
|
||||
# 5. Check clipman shared libs + D-Bus service
|
||||
ldd /usr/local/lib/xfce4/panel/plugins/libxfce4clipman.so 2>/dev/null
|
||||
ls /usr/local/share/dbus-1/services/org.xfce.clipman* 2>/dev/null
|
||||
|
||||
# 6. Check mixer plugin shared libs
|
||||
ldd /usr/local/lib/xfce4/panel/plugins/libxfce4mixer.so 2>/dev/null
|
||||
|
||||
# 7. Check Noto Sans font availability
|
||||
fc-list | grep -i 'noto sans'
|
||||
|
||||
# 8. Check flag icon sizes in Papirus
|
||||
find /usr/local/share/icons/Papirus -name '*flag*' \
|
||||
-path '*/panel/*' -o -name '*flag*' -path '*/status/*' 2>/dev/null | head -20
|
||||
|
||||
# 9. Check network/volume icon sizes
|
||||
find /usr/local/share/icons/Papirus -name '*network*' -path '*/status/*' 2>/dev/null | head -10
|
||||
find /usr/local/share/icons/Papirus -name '*audio-volume*' -path '*/status/*' 2>/dev/null | head -10
|
||||
|
||||
# 10. Full panel plugin .so audit (from TESTING.md)
|
||||
for _so in /usr/local/lib/xfce4/panel/plugins/*.so; do
|
||||
_missing=$(ldd "$_so" 2>&1 | grep 'not found' || true)
|
||||
if [ -n "$_missing" ]; then echo "FAIL: $_so"; echo "$_missing"; fi
|
||||
done
|
||||
|
||||
# 11. Verify xfconf XML landed in both XDG and user home
|
||||
grep -c 'plugin-12' /usr/local/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
|
||||
grep -c 'plugin-12' /home/clawdie/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xml
|
||||
```
|
||||
|
||||
## Results
|
||||
|
||||
_Codex ISO Builder: paste exact command output here, then mark issues
|
||||
above with findings._
|
||||
|
||||
---
|
||||
|
||||
## Config-Change Candidates
|
||||
|
||||
These are the XML changes that likely address issues 1, 2, 4, 5, 6.
|
||||
**Do not apply until build-host diagnostics confirm root causes.**
|
||||
|
||||
### xfce4-panel.xml changes
|
||||
|
||||
```xml
|
||||
<!-- Issue 1: fix whiskermenu icon -->
|
||||
<!-- BEFORE -->
|
||||
<property name="button-icon" type="string" value="freebsd"/>
|
||||
<!-- AFTER (if "start-here" is confirmed available in Papirus on FreeBSD) -->
|
||||
<property name="button-icon" type="string" value="start-here"/>
|
||||
|
||||
<!-- Issues 4+5+6: unify icon sizes -->
|
||||
<!-- BEFORE (panel-1) -->
|
||||
<property name="icon-size" type="uint" value="0"/>
|
||||
<!-- AFTER -->
|
||||
<property name="icon-size" type="uint" value="2"/>
|
||||
|
||||
<!-- Issue 4: shrink xkb flag to text -->
|
||||
<!-- BEFORE -->
|
||||
<property name="display-type" type="uint" value="0"/>
|
||||
<!-- AFTER -->
|
||||
<property name="display-type" type="uint" value="1"/>
|
||||
```
|
||||
|
||||
### Clock (issue 2) — if font is present but color is wrong
|
||||
|
||||
```xml
|
||||
<!-- Add explicit foreground color (white on dark panel) -->
|
||||
<property name="plugin-12" type="string" value="clock">
|
||||
<property name="digital-format" type="string" value="%H:%M %d.%b.%Y"/>
|
||||
<property name="font" type="string" value="Noto Sans 14"/>
|
||||
<property name="mode" type="uint" value="2"/>
|
||||
<property name="fg-color" type="array">
|
||||
<value type="uint" value="65535"/>
|
||||
<value type="uint" value="65535"/>
|
||||
<value type="uint" value="65535"/>
|
||||
<value type="uint" value="65535"/>
|
||||
</property>
|
||||
</property>
|
||||
```
|
||||
Loading…
Add table
Reference in a new issue