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
This commit is contained in:
ja
2026-05-22 16:24:18 +02:00
parent 2487aa5749
commit b0af3dcf12
11 changed files with 698 additions and 16 deletions
+120
View File
@@ -0,0 +1,120 @@
# 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)