Files
mw-pfeddersheim-workstation/docs/tech/stack.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

95 lines
4.6 KiB
Markdown

---
description: >-
Detailed inventory of the core software stack, OS context, and maintenance
policies for the mw-pfeddersheim-workstation.
tags:
- software-stack
- inventory
- tech-stack
last_updated: '2026-05-22'
---
# Software Stack - mw-pfeddersheim-workstation
## Core Development Environment
| Technology | Version | Description |
|------------|---------|-------------|
| **Node.js** | 25.6.1 | Primary JavaScript/TypeScript runtime |
| **Python** | 3.14.3 | Secondary scripting and AI automation language |
| **PHP** | 8.5.3 (CLI) | Legacy and ERP integration language |
| **Ansible** | 2.20.2 (core) | Infrastructure provisioning and configuration |
| **Docker** | 29.2.1 | Containerization and environment isolation |
| **Git** | latest | Version control |
| **ripgrep** | latest | Fast line-oriented search tool (`rg`) |
| **bat** | latest | A `cat` clone with syntax highlighting |
| **rustdesk** | latest | Remote management via Tailscale |
## Desktop Environment
|| Technology | Version | Description |
||------------|---------|-------------|
|| **Hyprland** | 0.55.2 | Wayland compositor (uwsm-managed) |
|| **Waybar** | latest | Status bar (with USB auto-mount module) |
|| **Kitty** | latest | GPU-accelerated terminal emulator |
|| **Fuzzel** | latest | Application launcher (preferred over Wofi) |
|| **Dunst** | latest | Notification daemon |
|| **yazi** | latest | Terminal file manager (full deps: chafa, 7zip, resvg, etc.) |
## Known Issues (2026-05-22 Boot Audit)
| Domain | Issue | Status |
|--------|-------|--------|
| **PCIe slot** | GPU in bottom PCIEX4 slot (PCIe 2.0 x4, ~2 GB/s) instead of top PCIEX16 (PCIe 3.0 x16, ~16 GB/s). **8x bandwidth loss** | **Pending**: physical move required |
| **PCIe slot** | NVMe Samsung PM9A1 running Gen2 x4 (8 GT/s) instead of Gen3 x4 (16 GT/s). May resolve after GPU slot fix + BIOS Gen3 setting | **Pending**: BIOS tuning |
| **Idle daemon** | hypridle SEGV crash loop — sdbus-cpp 2.3.0 ABI break | **Fixed**: sdbus-cpp upgraded to 2.3.1-1 |
| **Webcam (UVC)** | Device 1-10 has multiple UVC control failures (zoom/pan/tilt/iris non-functional due to firmware non-compliance) | Known hardware limitation, core capture works |
| **KVM** | `/dev/kvm` unavailable — libvirtd cannot use hardware acceleration | Open — check BIOS VT-x/AMD-V |
| **Wi-Fi regulatory** | `regulatory.db` firmware missing — channels restricted | Open — install `wireless-regdb` |
| **D-Bus** | Stale `org.kde.kwalletd6.service` file; dunst/kscreen naming mismatches | **Fixed**: kwalletd6 stub removed; kscreen/kscreenlocker/libkscreen uninstalled (35 MiB) |
| **XDG portals** | Deprecated `UseIn` key usage (portals.conf preferred) | Low priority, functional |
**Removed (2026-05-22, ADR 0007)**: All X11 display managers (lightdm, sddm), X11 video/input drivers (xf86-*), X11 tools (xterm, xorg-xinit, x11vnc, etc.), entire KDE Plasma stack (kwin, plasma-desktop, plasma-workspace, plasma-nm, plasma-pa, powerdevil, etc.), and Dolphin (replaced by yazi). `greetd`+`tuigreet` is the active DM. Screenshots use `grim`+`slurp`+`grimblast`.
## Browsers
| Technology | Version | Notes |
|------------|---------|-------|
| **Google Chrome** | 148.0.7778.178 (AUR) | Sole browser — Wayland-native, VA-API on NVIDIA |
| ~~Chromium~~ | ~~removed~~ | All artifacts cleaned 2026-05-22 (see ADR 0006) |
## OS Context
- **OS**: Linux (Manjaro/Arch Linux based)
- **Architecture**: x86_64
## Package Domain Classification (ADR 0007 Tier 4)
Packages previously listed as "Misc" reclassified to functional domains:
| Package | New Domain | Role |
|---------|-----------|------|
| uv | Python Toolchain | Fast Python package/env manager |
| jq | Shell/Terminal | JSON processor |
| inxi | Hardware | System hardware info |
| lsof | Core OS | List open files |
| iproute2 | Network | Advanced routing/networking |
| openresolv | Network | DNS resolver management |
| perl-image-exiftool | Dev Tools | Metadata read/write |
| icoutils | Dev Tools | ICO/ANE cursor extraction |
| innoextract-git | Dev Tools | Inno Setup installer extraction |
| opencl-headers | GPU Compute | OpenCL C headers |
| libxnvctrl-580xx | NVIDIA | NVML/XNVCTRL for 580xx |
| zram-generator | Core OS | Systemd zram swap generator |
| mkinitcpio-openswap | Core OS | Swap resume hook for mkinitcpio |
## Maintenance Policies
- **Updates**: System-wide updates via `pacman` managed through maintenance scripts.
- **Node.js**: Global packages managed via `pnpm`.
- **Python**: Use `uv` for environment management.
- **PHP**: Managed via system package manager, focused on CLI execution.
## Tool Path Summary
- **Ansible**: `/usr/bin/ansible`
- **Python**: `/usr/bin/python`
- **Docker**: `/usr/bin/docker`