- 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
190 lines
4.7 KiB
YAML
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]
|