From 864732c15ac6c3fdb591b44a3b5a2c0aa7c428e3 Mon Sep 17 00:00:00 2001 From: Fabio Scotto di Santolo Date: Fri, 17 Jul 2026 20:35:43 +0200 Subject: [PATCH] Add Fedora GNOME desktop tools for nymph --- .../inventory/group_vars/desktop_gnome.yml | 52 ++++++++++++++++++ ansible/inventory/group_vars/fedora.yml | 7 ++- ansible/roles/packages_fedora/tasks/main.yml | 53 ++++++++++++++----- 3 files changed, 98 insertions(+), 14 deletions(-) diff --git a/ansible/inventory/group_vars/desktop_gnome.yml b/ansible/inventory/group_vars/desktop_gnome.yml index a932a7c..ce9c2ff 100644 --- a/ansible/inventory/group_vars/desktop_gnome.yml +++ b/ansible/inventory/group_vars/desktop_gnome.yml @@ -3,3 +3,55 @@ desktop_profile: gnome desktop_environment: gnome desktop_sessions_enabled: [] desktop_default_session: gnome + +# Fedora Workstation/GNOME desktop applications. Keep this profile separate from +# workstation_* so nymph can remain a desktop laptop rather than a dev workstation. +fedora_desktop_packages: + # Fedora equivalents of the development/tooling packages previously pulled by + # the Void desktop profile. + - nodejs-bash-language-server + - bluez + - bridge-utils + - ctags + - delve + - dnsmasq + - poppler-glib + - poppler-utils + - fontconfig-devel + - freetype-devel + - golang + - golangci-lint + - gopls + - hunspell + - libvirt + - libreoffice + - liberation-fonts + - libvterm-devel + - libX11-devel + - libXft-devel + - meld + - mpv + - pdfarranger + - playerctl + - qemu + - qemu-img + - qemu-tools + - remmina + - rustup + - rsync + - shfmt + - ruff + - terminus-fonts + - texlive + - ty + - uv + - virt-manager + - virt-install + - wireplumber + - zstd + +fedora_flatpak_packages: + - ch.protonmail.protonmail-bridge + - org.mozilla.thunderbird + +fedora_npm_packages: "{{ ai_agents_npm_packages }}" diff --git a/ansible/inventory/group_vars/fedora.yml b/ansible/inventory/group_vars/fedora.yml index 9b7a727..c3667a7 100644 --- a/ansible/inventory/group_vars/fedora.yml +++ b/ansible/inventory/group_vars/fedora.yml @@ -63,8 +63,11 @@ workstation_host_linux_packages_fedora: - rclone - yubikey-manager -workstation_flatpak_remote_name: flathub -workstation_flatpak_remote_url: https://dl.flathub.org/repo/flathub.flatpakrepo +fedora_flatpak_remote_name: flathub +fedora_flatpak_remote_url: https://dl.flathub.org/repo/flathub.flatpakrepo + +workstation_flatpak_remote_name: "{{ fedora_flatpak_remote_name }}" +workstation_flatpak_remote_url: "{{ fedora_flatpak_remote_url }}" workstation_flatpak_packages: - com.getpostman.Postman - com.spotify.Client diff --git a/ansible/roles/packages_fedora/tasks/main.yml b/ansible/roles/packages_fedora/tasks/main.yml index 4b0f330..c47d9af 100644 --- a/ansible/roles/packages_fedora/tasks/main.yml +++ b/ansible/roles/packages_fedora/tasks/main.yml @@ -95,6 +95,11 @@ else [] ) + (profile_packages | default([])) + + ( + (fedora_desktop_packages | default([])) + if 'graphical_desktop' in group_names + else [] + ) + ( (fedora_workstation_dev_packages | default(workstation_dev_packages | default([]))) if 'workstation_dev_fedora' in group_names @@ -129,23 +134,47 @@ - "'workstation_dev_fedora' in group_names" - (fedora_docker_packages | default([])) | length > 0 -- name: Ensure Flathub remote is configured for Fedora workstation +- name: Install Fedora npm packages + tags: [packages, npm, ai_agents] + community.general.npm: + name: "{{ item.name }}" + global: true + state: "{{ item.state | default('present') }}" + loop: "{{ fedora_npm_packages | default([]) }}" + when: (fedora_npm_packages | default([])) | length > 0 + loop_control: + label: "{{ item.name }}" + +- name: Define Fedora Flatpak applications + tags: [packages] + ansible.builtin.set_fact: + packages_fedora_flatpak_packages: >- + {{ + ( + (fedora_flatpak_packages | default([])) + + (host_flatpak_packages | default([])) + + ( + (workstation_flatpak_packages | default([])) + if 'workstation_host_linux' in group_names + else [] + ) + ) + | unique + }} + +- name: Ensure Flathub remote is configured on Fedora tags: [packages] community.general.flatpak_remote: - name: "{{ workstation_flatpak_remote_name | default('flathub') }}" + name: "{{ fedora_flatpak_remote_name | default('flathub') }}" state: present - flatpakrepo_url: "{{ workstation_flatpak_remote_url | default('https://dl.flathub.org/repo/flathub.flatpakrepo') }}" - when: - - "'workstation_host_linux' in group_names" - - (workstation_flatpak_packages | default([])) | length > 0 + flatpakrepo_url: "{{ fedora_flatpak_remote_url | default('https://dl.flathub.org/repo/flathub.flatpakrepo') }}" + when: (packages_fedora_flatpak_packages | default([])) | length > 0 -- name: Install Fedora workstation Flatpak applications +- name: Install Fedora Flatpak applications tags: [packages] community.general.flatpak: - name: "{{ workstation_flatpak_packages }}" + name: "{{ packages_fedora_flatpak_packages }}" state: present - remote: "{{ workstation_flatpak_remote_name | default('flathub') }}" + remote: "{{ fedora_flatpak_remote_name | default('flathub') }}" method: system - when: - - "'workstation_host_linux' in group_names" - - (workstation_flatpak_packages | default([])) | length > 0 + when: (packages_fedora_flatpak_packages | default([])) | length > 0