# 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](0004-start-hyprland-override.md) — 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)