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.
This commit is contained in:
ja
2026-02-27 18:07:54 +01:00
parent dfd1b1c851
commit 51b5afc8b4
7 changed files with 198 additions and 20 deletions
+20
View File
@@ -0,0 +1,20 @@
# Next Session Tasks
## Priority 1 (Clean Up)
- [ ] Address permission issues in `PhpstormProjects/satag-amicron-entity-bundle` and `SatagAmicronSix` to finish removal.
- [ ] Decide on the fate of dirty repositories:
- `~/Projects/ShopifySyncApp` (New work)
- `~/Projects/firebird` (Subrepo modified)
- `~/Projects/djh-corporate-identity` (Untracked work)
- `~/WebstormProjects/onlyoffice` (Logic changes)
## Priority 2 (Retention)
- [ ] Confirm if repositories without remotes should be uploaded to Gitea/GitLab:
- `~/Projects/opus-transcribe`
- `~/Projects/20238-MediGruen-Naturprodukte-GmbH`
- `~/Projects/any-to-markdown`
- `~/Projects/pdf2md`
## Context
- Reclaimed 21GB today by removing clean remote repositories.
- Workstation software cleanup is complete and synced to Ansible roles.
+26
View File
@@ -12,6 +12,32 @@
- ansible
state: present
- name: Ensure redundant and non-core software is removed
community.general.pacman:
name:
- firefox-developer-edition
- audacity
- kdenlive
- obs-studio
- shotcut
- qgis
- tipp10
- xournalpp
- bleachbit
- reiserfsprogs
- dmraid
- onlyoffice-desktopeditors
- virt-manager
- guvcview
- helvum
- qpwgraph
- glmark2
- act-git
- oha
- unetbootin
- ventoy
state: absent
- name: Ensure legacy editor packages are removed
community.general.pacman:
name:
@@ -0,0 +1,19 @@
---
description: Learnings from workstation cleanup and project organization
tags: [workstation, cleanup, git, disk-usage]
last_updated: 2026-02-27
---
# Workstation Organization
## Problem
Home directory was cluttered with 4+ years of project history (104GB) and redundant software packages.
## Solution
1. **Software Cleanup**: Two phases of package removal synced to Ansible (`state: absent`).
2. **Project Audit**: Scripted identification of Git repositories.
3. **Automated Removal**: Deleted 22 clean repositories that have remote origins.
4. **Safety**: Retained dirty repos and repos without remotes.
## Reclaimed
- Disk Space: ~21 GB in Projects + ~2.4 GB in system packages.
+117
View File
@@ -0,0 +1,117 @@
# 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
- [x] **Ansible Integration**: Update `ansible/roles/dev-tools/tasks/main.yml` with `state: absent` for the removal list.
- [x] **OS Context Sync**: Update `software-stack.md` and related documentation to reflect the Manjaro/Arch environment.
- [x] **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.
+4 -3
View File
@@ -7,7 +7,7 @@ This document tracks optimization decisions, system tuning parameters, and clean
- **CPU**: AMD/Intel (High core count assumed from load distribution)
- **RAM**: 64GB
- **Storage**: NVMe (77% usage detected)
- **OS**: CachyOS/Arch Linux
- **OS**: Manjaro/Arch Linux
## Optimization Strategies
@@ -22,10 +22,11 @@ This document tracks optimization decisions, system tuning parameters, and clean
- **Package Manager**: Maintaining only the last 2 versions of packages in the cache.
### 3. Service Optimization
- **Ananicy**: (Optional) Use Ananicy-cpp for automatic process prioritizing (CachyOS default usually).
- **Ananicy**: (Optional) Use Ananicy-cpp for automatic process prioritizing.
## Implementation Log
| Date | Type | Description |
|------|------|-------------|
| 2026-02-27 | Initial | Initial tuning document and strategy established. |
| 2026-02-27 | Initial | Initial tuning document and strategy established. |
| 2026-02-27 | Audit | Performed system inspection: Boot time 33.8s, RAM usage 6.5GB/62GB, identified KVM and UVC errors. |
+1 -1
View File
@@ -3,7 +3,7 @@
This guide describes how to bootstrap the **mw-pfeddersheim-workstation** infrastructure on a fresh installation.
## Prerequisites
- Linux (Arch/CachyOS preferred)
- Linux (Manjaro/Arch Linux)
- Python 3.12+
- Git
+11 -16
View File
@@ -10,9 +10,12 @@
| **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 |
## OS Context
- **OS**: Linux (CachyOS/Arch Linux based on detected GCC 15 and kernel 6.12)
- **OS**: Linux (Manjaro/Arch Linux based)
- **Architecture**: x86_64
## Maintenance Policies
@@ -28,19 +31,11 @@
## Deprecated Software (Pending Cleanup)
### Microsoft Visual Studio Code (Remnants)
The following remnants of Visual Studio Code / MS IDE components have been identified for review and potential removal to reduce software stack complexity.
### Microsoft Visual Studio Code (Status: Removed)
VS Code has been decommissioned from this workstation.
| Type | Path / Identifyer | Description |
|------|-------------------|-------------|
| **Package** | `vscode` | Open Source build of Visual Studio Code (installed via pacman) |
| **Binary** | `/usr/bin/code` | Launcher script for VS Code |
| **Binary** | `/usr/bin/code-oss` | OSS specific launcher script |
| **Config** | `~/.vscode-oss` | Global VS Code OSS configuration and extensions |
| **Theming** | `~/.oh-my-bash/themes/vscode` | VS Code specific oh-my-bash theme |
| **Application Data** | `~/.config/Code - OSS/` | Extensive user data, logs, and cache |
| **Application Data** | `~/.local/share/pipx/venvs/*/lib/python*/site-packages/jupyter_lsp/specs/vscode_*` | Python/Jupyter LSP remnants |
| **Project Data** | `~/Projects/firebird/.vscode` | Local project settings |
| **Project Data** | `~/src/agent-zero/.vscode` | Local project settings |
| **Project Data** | `~/nerve/AutoGPT/.vscode` | Local project settings |
| **Project Data** | `~/agent-zero/data/.vscode` | Local project settings |
| Type | Status | Notes |
|------|--------|-------|
| **Package** | Removed | `vscode` not present in `pacman -Qet` |
| **Config** | Removed | `~/.vscode-oss` directory deleted |
| **Application Data** | Removed | `~/.config/Code - OSS/` directory deleted |