Skip to content

Audio, edge-tiling, and HDMI-2 wallpaper fallback#20

Merged
kimptoc merged 4 commits intokimptoc:claude/fix-xfce-wallpaper-FK5rhfrom
cattyclaw-bot:claude/fix-xfce-wallpaper-FK5rh
May 2, 2026
Merged

Audio, edge-tiling, and HDMI-2 wallpaper fallback#20
kimptoc merged 4 commits intokimptoc:claude/fix-xfce-wallpaper-FK5rhfrom
cattyclaw-bot:claude/fix-xfce-wallpaper-FK5rh

Conversation

@cattyclaw-bot
Copy link
Copy Markdown
Contributor

Summary

Three small additions to the XFCE live-CD config:

  • Audio (PipeWire) — explicit services.pipewire (alsa + pulse compat) + rtkit. Removes the "works on some machines" lottery; wired headsets (3.5mm or USB headphone+mic) get input + output out-of-the-box. Adds xfce.xfce4-pulseaudio-plugin (right-click panel → Add to surface it) and pavucontrol for per-app/per-device control.
  • Drag-to-edge window tilingxfwm4 /general/tile_on_move = true via the existing autostart xfconf-query block. Drag a window to the left/right edge → fills that half; top edge → maximise. The Windows-style snap kids already expect.
  • HDMI-2 wallpaper fallback — extends the hardcoded fallback monitor list (used when xrandr --listactivemonitors returns empty within the 30 s retry window) to include HDMI-2/HDMI2 (also HDMI-A-1/2, DP-2, DisplayPort-1/2). At least one CC PC has its only display on HDMI-2 and was being skipped. xfdesktop ignores last-image keys for outputs that don't exist, so over-listing is safe.

Test plan

  • Build the ISO and boot in QEMU with audio passthrough — pactl info shows PipeWire, Chrome plays YouTube audio, pavucontrol shows input + output devices.
  • Plug a wired headset on a real CC machine — pavucontrol Input Devices tab shows the mic; speak, level meter moves.
  • Drag a window to the left edge — fills left half. Drag to top — maximises.
  • Boot on the HDMI-2 machine — wallpaper visible. Confirm in \$MYLOG (autostart log) that wallpaper: monitors = [...] includes HDMI-2 either via xrandr detection or the new fallback.
  • No regressions: clock still HH:MM:SS, plugin-4 still Chrome launcher, theme still PRO-dark, single workspace.

🤖 Generated with Claude Code

cattyclaw-bot added 4 commits May 1, 2026 23:40
- Audio: services.pipewire (alsa + pulse compat) + rtkit. Removes the
  "works on some machines" lottery and gives wired headsets (3.5mm/USB
  headphone+mic) input-and-output support out of the box. Adds
  xfce4-pulseaudio-plugin (right-click → Add to put on the panel) and
  pavucontrol for per-app + per-device control.

- Window edge-tiling: xfwm4 /general/tile_on_move = true. Drag a window
  to the left/right edge to fill that half, top edge to maximise — the
  Windows-style snap behaviour kids already expect.

- Wallpaper fallback monitor list: include HDMI-2/HDMI2 (and HDMI-A-1,
  DP-2, DisplayPort-1/2). At least one CC PC has its only display on
  HDMI-2 and was being skipped when xrandr --listactivemonitors came
  up empty during the 30 s retry window. xfdesktop ignores last-image
  keys for outputs that don't exist, so over-listing is safe.
With wrap_windows=true (xfwm4 default), the cursor wraps to the opposite
screen edge before the edge-tile preview can trigger, so drag-to-edge
tiling silently does nothing. With a single workspace these wrap modes
have no useful purpose anyway.
`aplay -l`, `speaker-test`, `pactl list` etc. are useful in the field
and during VM testing — pavucontrol covers the GUI case but a terminal
on a kid's PC is faster for triage.
Chrome's modern Linux passkey flow uses BT-LE proximity to a phone
acting as the authenticator (the QR-scan-with-phone option). Without
hardware.bluetooth, Chrome can't initialise that transport and the
QR code option silently doesn't appear.

Doesn't enable gnome-keyring (intentionally still off, see
services.gnome.gnome-keyring.enable = false above) — that route is
about platform authenticators which Chrome on Linux barely supports
and which don't make sense on a live CD anyway.

blueman-applet adds a GUI tray for pairing.
@kimptoc kimptoc merged commit 3305480 into kimptoc:claude/fix-xfce-wallpaper-FK5rh May 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants