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:
@@ -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)
|
||||
Reference in New Issue
Block a user