Files
mw-pfeddersheim-workstation/docs/adr/0006-chrome-chromium-cleanup.md
T
ja b0af3dcf12 Workstation optimization: Chrome cleanup, package purge, PCIe audit, service tuning
- Chrome/Chromium cleanup (ADR 0006): removed 10GB chromium profile, broken PWA
  shortcuts, dead BROWSER_CDP_URL from .bashrc, restored Wayland chrome-flags.conf
- Package cleanup (ADR 0007): Tier 1-4 executed, 40 packages removed (KDE Plasma,
  ruby, love, xorg-server, kscreen/kscreenlocker), 45 cascade orphans purged
- Waybar USB module: auto-mount via udisks2, yazi integration, hover details
- Service tuning: disabled bluetooth.service, NetworkManager-wait-online.service
- hypridle fix: upgraded sdbus-cpp 2.3.0->2.3.1-1 (SEGV crash loop resolved)
- PCIe audit: GPU in wrong slot (PCIEX4 vs PCIEX16), 8x bandwidth loss documented
- D-Bus cleanup: removed stale org.kde.kwalletd6.service stub
- Ansible: all changes reflected in vars/main.yml and task files
2026-05-22 16:24:18 +02:00

5.2 KiB

ADR 0006: Chrome/Chromium Normalization and Cleanup

Date: 2026-05-22
Status: Accepted
Deciders: Michael Wegener

Context

The workstation had accumulated significant Chrome/Chromium configuration drift over time:

  • Dual installation: Both google-chrome-stable (148.0.7778.178) and orphaned chromium configs
  • Dead data directories:
    • ~/.config/chromium/ (1.4 GB of stale profile data)
    • ~/.local/chrome-cdp/ (8.6 GB Chrome DevTools Protocol debug profile, no longer used)
  • Broken PWA desktop entries: 13 non-functional .desktop files in ~/.local/share/applications/
  • Orphaned packages: chromium-widevine (DRM codec plugin for non-existent Chromium)
  • Dead shell integrations: BROWSER_CDP_URL environment variable auto-population in ~/.bashrc
  • Wayland compatibility: chrome-flags.conf needed Wayland-specific flags for native Wayland rendering

This drift made it difficult to:

  1. Understand which browser is authoritative
  2. Maintain clean Ansible playbooks
  3. Ensure consistent Wayland behavior
  4. Avoid confusion from broken PWA shortcuts

Decision

Standardize on google-chrome-stable as the sole browser and remove all Chromium-related artifacts:

1. Remove Dead Data Directories

  • Delete ~/.config/chromium/ entirely (1.4 GB freed)
  • Delete ~/.local/chrome-cdp/ entirely (8.6 GB freed)

2. Uninstall Orphaned Packages

  • pacman -R chromium-widevine (17.41 MiB freed)

3. Delete Broken PWA Desktop Entries

  • Removed 13 non-functional .desktop files from ~/.local/share/applications/
  • Deleted 4 PWA manifest directories from ~/.config/google-chrome/Default/Web Applications/Manifest Resources/

4. Clean Shell Environment

  • Removed BROWSER_CDP_URL auto-population (lines 140-141) from ~/.bashrc
  • Bash startup improved from ~60ms to ~3ms

5. Restore Wayland Configuration

  • Ansible role dev-tools already manages ~/.config/chrome-flags.conf with Wayland flags
  • Playbook re-applied to restore --ozone-platform=auto and other Wayland optimizations

6. Update Ansible for Future Maintenance

  • Added cleanup tasks to dev-tools role to remove known-dead packages/directories
  • Documented cleanup procedures in CHANGELOG

Consequences

Positive

  • 10 GB disk space recovered on root filesystem
  • Clear browser choice: Only google-chrome-stable is installed and managed
  • Faster shell startup: Removed unnecessary curl call to localhost:9222
  • Clean desktop: PWA shortcuts now only show functional applications
  • Wayland-native rendering: Chrome uses --ozone-platform=auto for native Wayland
  • Maintainable configuration: Ansible now includes cleanup tasks for future orphan removal

Negative

  • None significant. Google Chrome is the sole browser, reducing cognitive load.

Neutral

  • AWDI (A Web Developer Interface) tools that required CDP connections must now launch Chrome with --remote-debugging-port=9222 manually if needed.

Technical Details

Current Browser Installation

google-chrome-stable  148.0.7778.178-1  (AUR: paru)

Ansible Management

  • Package installation: ansible/roles/dev-tools/tasks/main.yml (lines 112-120)
  • Chrome flags: ansible/roles/dev-tools/tasks/main.yml (lines 122-135) with --tags chrome
  • Cleanup tasks: ansible/roles/dev-tools/tasks/main.yml (lines 137-158) with --tags cleanup

Files Affected

  • Deleted:
    • ~/.config/chromium/ (1.4 GB)
    • ~/.local/chrome-cdp/ (8.6 GB)
    • 13 .desktop files in ~/.local/share/applications/
    • 4 PWA manifest dirs in ~/.config/google-chrome/Default/Web Applications/Manifest Resources/
  • Modified:
    • ~/.bashrc (removed CDP_URL lines)
    • ~/.config/chrome-flags.conf (restored via Ansible)
  • Uninstalled:
    • chromium-widevine (17.41 MiB)

Hyprland Integration

  • SUPER+B binds to uwsm app -- google-chrome-stable (unchanged)
  • Waybar CDP module removed (no longer needed without debug profile)
  • Cheatsheet references updated to reflect Chrome-only workflow

Alternatives Considered

Keep Chromium Installed

  • Pros: Open-source browser, no Google telemetry
  • Cons: Two browsers to maintain, orphaned packages, confusing shortcuts
  • Decision: Rejected. Google Chrome provides better Wayland support and is already the daily driver.

Preserve chrome-cdp Profile

  • Pros: Could be reactivated for debugging, Playwright/Puppeteer testing
  • Cons: 8.6 GB wasted space, not used in 3+ months, on-demand launch is trivial
  • Decision: Rejected. AWDI tools can start Chrome with --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug if needed.

Automated PWA Scrubbing

  • Pros: Could remove all PWA configs via Ansible
  • Cons: Risk of removing actively-used PWAs (OnlyOffice, JetBrains Toolbox, etc.)
  • Decision: Rejected. Manually scrubbed dead PWAs, left functional ones intact.

References

  • ADR 0004: Start-Hyprland Override — Wayland session management
  • ansible/roles/dev-tools/tasks/main.yml — Chrome package and flags management
  • CHANGELOG.md — 2026-05-22 cleanup entry
  • docs/tech/stack.md — Current software audit (updated)