Files
mw-pfeddersheim-workstation/ansible/roles/dev-tools/tasks/main.yml
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

190 lines
4.7 KiB
YAML

---
- name: Ensure core workstation development tools are installed
community.general.pacman:
name:
# Build essentials
- git
- base-devel
# CLI tools (infra.standards.md §4)
- ripgrep
- ripgrep-all
- fd
- jq
- bat
- eza
- zoxide
- fzf
- gum
- dust
- bottom
- scrot
- shellcheck
- shfmt
# Git providers CLI
- github-cli
- tea
- glab
# Python toolchain
- ruff
- uv
# DevOps & IaC
- ansible
- terraform
- docker
- docker-buildx
- docker-compose
- podman
- cmake
# Security & supply chain
- cosign
- syft
- trivy
- certbot
# Container inspection
- dive
# Email CLI
- himalaya
# Document toolchain (markdown-to-pdf skill)
- typst
- pandoc
# WordPress CLI
- wp-cli
# C/C++ toolchain (cpp skill)
- clang
# Windows installer inspection (amicron-version-inspection skill)
- perl-image-exiftool
- icoutils
- innoextract-git
# CalDAV tools (caldav-webcal skill)
- khal
- vdirsyncer
# 3D/CAD tools (openscad, freecad, f3d skills)
- openscad
- freecad
- f3d
# Terminal
- kitty
# NVIDIA VA-API video decode for Chrome on Wayland
- libva-utils
- libva-nvidia-driver
state: present
- name: Ensure Node.js global CLI tools are installed
become: true
become_user: "{{ system_user }}"
command: pnpm add -g @marp-team/marp-cli
changed_when: false
tags: [nodejs, marp]
- name: Ensure Python CLI tools are installed via pipx
become: true
become_user: "{{ system_user }}"
command: "pipx install {{ item }}"
loop:
- semgrep
- huggingface_hub[cli]
changed_when: false
tags: [python, pipx]
- 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
- virt-manager
- guvcview
- helvum
- qpwgraph
- glmark2
- act-git
- oha
- unetbootin
- ventoy
- chromium-widevine
state: absent
- name: Ensure legacy editor packages are removed
community.general.pacman:
name:
- code
- code-oss
- code-marketplace
state: absent
- name: Configure Chrome flags for NVIDIA Wayland acceleration
copy:
dest: "/home/{{ system_user }}/.config/chrome-flags.conf"
content: |
--ozone-platform=wayland
--disable-seccomp-filter-sandbox
--disable-features=Vulkan,VulkanFromANGLE,DefaultANGLEVulkan
--use-angle=gl
--enable-features=VaapiOnNvidiaGPUs,VaapiIgnoreDriverChecks,AcceleratedVideoDecodeLinuxZeroCopyGL,AcceleratedVideoDecodeLinuxGL
--password-store=gnome-libsecret
owner: "{{ system_user }}"
group: "{{ system_user }}"
mode: '0644'
tags: [chrome, nvidia, wayland]
- name: Remove dead BROWSER_CDP_URL from .bashrc
ansible.builtin.lineinfile:
path: "/home/{{ system_user }}/.bashrc"
regexp: '.*BROWSER_CDP_URL.*'
state: absent
become: yes
become_user: "{{ system_user }}"
tags: [chrome, shell, cleanup]
- name: Fix kitty cursor keys by removing TERM override in .bashrc
ansible.builtin.lineinfile:
path: "/home/{{ system_user }}/.bashrc"
regexp: '^export TERM=xterm-256color'
line: '# export TERM=xterm-256color # Fix: allow kitty to set its own TERM for cursor keys'
state: present
become: yes
become_user: "{{ system_user }}"
tags: [kitty, shell]
- name: Ensure kitty configuration directory exists
ansible.builtin.file:
path: "/home/{{ system_user }}/.config/kitty"
state: directory
owner: "{{ system_user }}"
group: "{{ system_user }}"
mode: '0755'
become: yes
become_user: "{{ system_user }}"
tags: [kitty]
- name: Configure kitty for proper terminal behavior
ansible.builtin.copy:
dest: "/home/{{ system_user }}/.config/kitty/kitty.conf"
content: |
# Managed by Ansible - saTway DevOps
shell bash
editor vim
# Shell integration is enabled by default in kitty 0.24.0+
# but we can explicitly enable it for clarity.
shell_integration enabled
# Ensure cursor keys work correctly by not overriding TERM in shell
# (Handled via .bashrc fix)
include /home/mw/.config/kitty/kitty-cline-keybindings.conf
owner: "{{ system_user }}"
group: "{{ system_user }}"
mode: '0644'
become: yes
become_user: "{{ system_user }}"
tags: [kitty]