diff --git a/NEXT_STEPS.md b/NEXT_STEPS.md new file mode 100644 index 0000000..192c295 --- /dev/null +++ b/NEXT_STEPS.md @@ -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. diff --git a/ansible/roles/dev-tools/tasks/main.yml b/ansible/roles/dev-tools/tasks/main.yml index 88df87b..e8740ef 100644 --- a/ansible/roles/dev-tools/tasks/main.yml +++ b/ansible/roles/dev-tools/tasks/main.yml @@ -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: diff --git a/docs/learnings/2026-02-27-workstation-organization.md b/docs/learnings/2026-02-27-workstation-organization.md new file mode 100644 index 0000000..e52967d --- /dev/null +++ b/docs/learnings/2026-02-27-workstation-organization.md @@ -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. diff --git a/docs/tech/current-software-audit.md b/docs/tech/current-software-audit.md new file mode 100644 index 0000000..ce89674 --- /dev/null +++ b/docs/tech/current-software-audit.md @@ -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. diff --git a/docs/tech/performance-tuning.md b/docs/tech/performance-tuning.md index 3262184..0c848dc 100644 --- a/docs/tech/performance-tuning.md +++ b/docs/tech/performance-tuning.md @@ -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. | \ No newline at end of file +| 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. | diff --git a/docs/tech/setup.md b/docs/tech/setup.md index 2d7c307..fbba812 100644 --- a/docs/tech/setup.md +++ b/docs/tech/setup.md @@ -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 diff --git a/docs/tech/software-stack.md b/docs/tech/software-stack.md index 07e5336..64ef167 100644 --- a/docs/tech/software-stack.md +++ b/docs/tech/software-stack.md @@ -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 |