- 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
121 lines
5.2 KiB
Markdown
121 lines
5.2 KiB
Markdown
# 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)
|