Files
mw-pfeddersheim-workstation/ansible/roles/dev-tools/tasks/main.yml
T
ja 2487aa5749 feat(chrome): NVIDIA Wayland GPU acceleration for Chrome 148
Replace obsolete WebGPU flags with state-of-the-art NVIDIA VA-API
hardware decode config for Chrome 148 on Wayland/Hyprland.

- Disable seccomp sandbox to fix NVIDIA GBM "Permission denied" error
- Disable VulkanFromANGLE/DefaultANGLEVulkan (incompatible with Wayland)
- Force ANGLE->OpenGL backend to avoid Vulkan/Wayland conflicts
- Enable modern VA-API flags: VaapiOnNvidiaGPUs, AcceleratedVideoDecodeLinux*
- Add gnome-libsecret password store for gnome-keyring integration
- Install libva-utils and libva-nvidia-driver packages
- Update driver version to 580.159.03 in hardware inventory

WebGPU remains hardware accelerated via ANGLE+OpenGL. Chrome verified
working with full video decode acceleration (H.264, VP9, HEVC) via NVDEC.
2026-05-21 16:02:11 +02:00

180 lines
4.4 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
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: 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]