Files
mw-pfeddersheim-workstation/docs/tech/current-software-audit.md
T
ja 51b5afc8b4 feat(workstation): complete software cleanup and project organization
- Synchronized Ansible roles with removed redundant packages.
- Performed system audit (performance, boot, disk usage).
- Organized home directory by removing 22 clean remote repositories.
- Reclaimed ~21GB of disk space in ~/Projects.
- Retained dirty repositories and those without remote origins for safety.
- Updated documentation (performance tuning, software stack, setup).
- Created NEXT_STEPS.md and documented learnings.
2026-02-27 18:07:54 +01:00

6.1 KiB

Software Audit - mw-pfeddersheim-workstation (2026-02-27)

1. Core Development Tools

Package Version Verified Notes
Node.js v25.6.1 Yes Matches software-stack.md
Python 3.14.3 Yes Matches software-stack.md
Ansible 2.20.2 (core) Yes Matches software-stack.md
Docker 29.2.1 Yes Matches software-stack.md
PHP 8.5.3 (pacman) CLI extensions installed (gd, pgsql, sqlite, etc.)
Rust 1.93.1 (pacman)

2. Categorized Main Packages

Development & DevOps

  • act-git: Local GitHub Actions runner
  • ansible: Infrastructure automation
  • composer: PHP dependency manager
  • docker-compose: Multi-container orchestration
  • git-filter-repo, git-lfs: Git extensions
  • github-cli (gh): GitHub integration
  • mmctl: Mattermost CLI
  • yarn: Node.js package manager

System Utilities & Monitoring

  • btop, htop: Performance monitors
  • eza, fd, jq: Modern CLI tools
  • inxi, neofetch: System information
  • nvtop: GPU monitoring
  • powertop: Power management
  • sysstat: System performance tools
  • tailscale: VPN/Mesh networking
  • ufw: Firewall

GUI Applications

  • firefox-developer-edition: Primary dev browser
  • google-chrome: Testing browser
  • gimp: Image editing
  • kdenlive, obs-studio, shotcut: Media production
  • mattermost-desktop: Team communication
  • nextcloud-client: File sync
  • onlyoffice-desktopeditors: Office suite
  • qgis: Geospatial analysis
  • vlc: Media player

Virtualization & Remote Access

  • virt-manager: VM management
  • remmina: Remote desktop client
  • rustdesk: Remote support

3. Findings & Discrepancies

  • CachyOS/Manjaro Hybrid: The system shows Manjaro release branding and specific Manjaro configs (manjaro-system, manjaro-release), whereas software-stack.md mentions CachyOS.
  • VS Code Remnants: vscode package is NOT in the pacman -Qet list, indicating the package removal was successful. Primary manual remnant paths (configs/data) were verified as deleted.
  • Modern Tooling: Good adoption of modern CLI tools (eza, fd, oha, aichat).
  • Ansible Compliance: All core tools defined in ansible/roles/dev-tools/tasks/main.yml (git, base-devel, ripgrep, fd, jq, bat, eza, ansible) are present.
  • Missing Documentation in Stack: bat and ripgrep are installed and managed via Ansible but were not explicitly listed in the software-stack.md core table.

4. Redundant Software Audit & Final Decisions

Following user feedback, the software list has been finalized. Packages identified as "keep" are retained for specialized inspections despite not being part of the primary development workflow.

4.1. Packages to Remove

The following packages will be set to state: absent in Ansible and removed via pacman.

Category Package Reason for Removal
Browsers firefox-developer-edition Redundant (User prefers Chrome)
Media Production audacity, kdenlive, obs-studio, shotcut Specialized production tools (Non-core)
Graphics & GIS qgis Specialized GIS tools (Non-core)
Education/Utility tipp10, xjournalpp Typing tutor and notetaking app (Non-core)
Maintenance bleachbit Redundant (Functionality covered by scripts/maintenance.sh)
Legacy Storage reiserfsprogs, dmraid Legacy filesystem and hardware RAID tools

4.2. Packages to Keep (Inspections & Utilities)

These packages were originally identified as removal candidates but will be kept per user request:

  • vlc: Retained for media inspections.
  • gimp: Retained for image inspections.
  • nano: Retained as a fallback terminal editor.
  • rustdesk: Retained for remote management of systems via the Tailscale network.

5. Implementation Status

  • Ansible Integration: Update ansible/roles/dev-tools/tasks/main.yml with state: absent for the removal list.
  • OS Context Sync: Update software-stack.md and related documentation to reflect the Manjaro/Arch environment.
  • Execution: Run removal via CLI or Ansible playbook.

6. Software Usage Analysis (Idle Applications)

An analysis was performed to identify applications that have not been utilized for more than 3 months. Since the system root is mounted with noatime, usage was inferred from the absence of user-specific configuration and cache updates in ~/.config and ~/.cache.

6.1. Stale Application Candidates

The following applications show no evidence of recent activity and are recommended for future review or removal to minimize the workstation's footprint.

Application Last Used (Est.) Description
onlyoffice-desktopeditors > 3 Months Office suite (Text, Spreadsheets, Presentations)
virt-manager > 3 Months Desktop UI for managing virtual machines
rustdesk > 3 Months Remote desktop software
guvcview > 3 Months Video capture interface for webcams
helvum > 3 Months GTK patchbay for PipeWire
qpwgraph > 3 Months Qt-based PipeWire graph interface
glmark2 > 3 Months OpenGL benchmark tool
act-git > 3 Months Local GitHub Actions runner
oha > 3 Months HTTP load generator/tester
unetbootin > 3 Months Live USB creation utility
ventoy > 3 Months Multi-ISO bootable USB creator

6.2. Removal Decisions

Following the usage analysis, the user has decided to remove the following idle applications via Ansible:

  • Office: onlyoffice-desktopeditors
  • Virtualization: virt-manager
  • Capture: guvcview
  • PipeWire Tools: helvum, qpwgraph
  • Benchmarking: glmark2, oha, act-git
  • USB Utilities: unetbootin, ventoy

The application rustdesk will be retained as it is actively used for remote system management over Tailscale.

6.3. Strategy Note

Usage detection on this workstation is constrained by the noatime mount option. Future audits should rely on systemd journal analysis or application-specific logging where available to increase accuracy.