Merge branch 'migrate-to-mint-bsd'

This commit is contained in:
Fabio Scotto di Santolo
2026-07-17 17:43:45 +02:00
51 changed files with 1457 additions and 354 deletions

View File

@@ -0,0 +1,34 @@
---
# Optional inventory overlay for VM tests. It is not loaded by ansible.cfg.
all:
children:
platform_mint:
hosts:
minttest:
ansible_connection: local
platform_freebsd:
hosts:
freebsdtest:
ansible_connection: local
graphical_desktop:
hosts:
minttest:
freebsdtest:
role_personal_workstation:
hosts:
minttest:
role_lab:
hosts:
freebsdtest:
desktop_cinnamon:
hosts:
minttest:
desktop_hyprland:
hosts:
freebsdtest:

View File

@@ -7,6 +7,7 @@ user_shell: /bin/bash
effective_username: "{{ username }}"
effective_user_group: "{{ user_group }}"
effective_user_home: "{{ user_home }}"
emacs_enabled: false
xdg_user_directories:
- Desktop

View File

@@ -1,6 +1,4 @@
---
desktop_protonmail_bridge_cert_path: ~/.var/app/ch.protonmail.protonmail-bridge/config/protonmail/bridge-v3/cert.pem
desktop_environment: minimal
desktop_allow_display_manager_switch: false
@@ -96,10 +94,6 @@ desktop_common_dotfiles:
src: .bashrc.d/20-editor-desktop.sh
dest: .bashrc.d/20-editor-desktop.sh
mode: "0644"
- name: Bash Emacs client fragment
src: .bashrc.d/25-emacs-client-desktop.sh
dest: .bashrc.d/25-emacs-client-desktop.sh
mode: "0644"
- name: Bash VM helper fragment
src: .bashrc.d/30-runvm.sh
dest: .bashrc.d/30-runvm.sh
@@ -172,6 +166,10 @@ desktop_minimal_managed_paths:
- .local/bin/udiskie-password
desktop_emacs_dotfiles:
- name: Bash Emacs client fragment
src: .bashrc.d/25-emacs-client-desktop.sh
dest: .bashrc.d/25-emacs-client-desktop.sh
mode: "0644"
- name: Emacs config
src: .emacs.d/
dest: .emacs.d/
@@ -241,6 +239,28 @@ desktop_hyprland_dotfiles:
dest: .config/foot/
mode: preserve
desktop_niri_dotfiles:
- name: foot config
src: .config/foot/
dest: .config/foot/
mode: preserve
- name: dunst config
src: .config/dunst/
dest: .config/dunst/
mode: preserve
- name: rofi config
src: .config/rofi/
dest: .config/rofi/
mode: preserve
- name: waybar config
src: .config/waybar/
dest: .config/waybar/
mode: preserve
- name: niri config
src: .config/niri/
dest: .config/niri/
mode: preserve
desktop_xfce_dotfiles:
- name: XFCE configuration
src: .config/xfce4/

View File

@@ -0,0 +1,29 @@
---
desktop_profile: cinnamon
desktop_default_session: cinnamon
cinnamon_theme_gtk: Mint-Y-Dark-Aqua
cinnamon_theme_icons: Mint-Y-Aqua
cinnamon_font_ui: Sans 10
cinnamon_font_monospace: Monospace 10
# WM-agnostic desktop dotfiles from desktop_common_dotfiles that do NOT apply to
# Cinnamon: the autostart entry is the (removed) Protonmail mail bridge, and the
# GTK theme script conflicts with Cinnamon's own dconf-managed theming.
cinnamon_desktop_dotfiles_exclude:
- XDG autostart entries
- GTK theme setup script
cinnamon_dconf_settings:
- key: /org/cinnamon/desktop/interface/gtk-theme
value: "'{{ cinnamon_theme_gtk }}'"
- key: /org/cinnamon/desktop/interface/icon-theme
value: "'{{ cinnamon_theme_icons }}'"
- key: /org/cinnamon/desktop/interface/font-name
value: "'{{ cinnamon_font_ui }}'"
- key: /org/cinnamon/desktop/interface/monospace-font-name
value: "'{{ cinnamon_font_monospace }}'"
- key: /org/cinnamon/desktop/interface/clock-use-24h
value: "true"
- key: /org/cinnamon/desktop/wm/preferences/button-layout
value: "'menu:minimize,maximize,close'"

View File

@@ -0,0 +1,3 @@
---
desktop_profile: hyprland
desktop_default_session: hyprland

View File

@@ -0,0 +1,5 @@
---
desktop_profile: niri
desktop_sessions_enabled:
- niri
desktop_default_session: niri

View File

@@ -0,0 +1,2 @@
---
desktop_profile: sway

View File

@@ -0,0 +1,3 @@
---
host_capabilities:
- graphical_desktop

View File

@@ -0,0 +1,108 @@
---
platform_profile: freebsd
platform_family: freebsd
platform_package_manager: pkg
platform_service_manager: rc
ansible_python_interpreter: /usr/local/bin/python3
effective_user_group: "{{ user_group }}"
effective_user_home: "/home/{{ effective_username }}"
user_home: "/home/{{ username }}"
freebsd_packages_base:
- bash
- bash-completion
- bat
- curl
- fzf
- git
- jq
- python3
- ripgrep
- rsync
- tmux
- tree
- unzip
- vim
- wget
- zip
- zoxide
freebsd_development_packages:
- clang
- cmake
- gdb
- go
- gmake
- node
- npm
- pkgconf
- py311-pip
- rust
- shellcheck
freebsd_desktop_common_packages:
- dbus
- dconf
- firefox
- fontconfig
- gnome-keyring
- libsecret
- mpv
- pinentry-gnome
- pipewire
- polkit
- thunderbird
- wireplumber
- xdg-desktop-portal
freebsd_hyprland_packages:
- alacritty
- cliphist
- dunst
- foot
- grim
- hypridle
- hyprland
- hyprlock
- hyprpaper
- rofi-wayland
- seatd
- slurp
- waybar
- wl-clipboard
- xdg-desktop-portal-gtk
- xdg-desktop-portal-hyprland
- xwayland
freebsd_niri_packages:
- cliphist
- dunst
- foot
- grim
- niri
- rofi-wayland
- seatd
- slurp
- waybar
- wl-clipboard
- xdg-desktop-portal-gtk
freebsd_lab_packages:
- lldb
- llvm
- podman
- qemu
- smartmontools
freebsd_rc_conf:
- name: dbus_enable
value: "YES"
- name: seatd_enable
value: "YES"
freebsd_enabled_services:
- dbus
- seatd
freebsd_xdg_config_dir: /usr/local/etc/xdg

View File

@@ -0,0 +1,100 @@
---
platform_profile: mint
platform_family: debian
platform_package_manager: apt
platform_service_manager: systemd
# syncthing runs per-user via the packaged system unit template
# (Debian/Mint ship syncthing@.service, parametrised by username).
enabled_services:
- "syncthing@{{ username }}.service"
mint_manage_flatpak: true
mint_flatpak_remote_name: flathub
mint_flatpak_remote_url: https://dl.flathub.org/repo/flathub.flatpakrepo
mint_packages_base:
- ca-certificates
- curl
- flatpak
- gpg
- htop
- make
- python3-pip
- ripgrep
- rsync
- shellcheck
mint_development_packages:
- build-essential
- clang
- clang-tools
- cmake
- gdb
- golang
- nodejs
- npm
- pkg-config
- python3-venv
mint_desktop_common_packages:
- dconf-cli
- deja-dup
- firefox
- fonts-liberation
- fonts-noto-color-emoji
- git-delta
- gnome-keyring
- libsecret-tools
- mpv
- pinentry-gnome3
- pinentry-gtk2
- rclone
- syncthing
- thunderbird
- tmux
- xdg-user-dirs
- yt-dlp
mint_emacs_packages:
- autoconf
- automake
- emacs
- hunspell
- hunspell-it
- libfreetype-dev
- libpoppler-glib-dev
- libpoppler-private-dev
- libtool-bin
- libvterm-dev
- libx11-dev
mint_cinnamon_packages:
- cinnamon
- cinnamon-control-center
- cinnamon-screensaver
- lightdm
- slick-greeter
- xdg-desktop-portal
- xdg-desktop-portal-gtk
mint_personal_workstation_packages:
- libreoffice
- meld
- pdfarranger
- vim
mint_flatpak_packages:
- ch.protonmail.protonmail-bridge
- com.calibre_ebook.calibre
- com.spotify.Client
- org.telegram.desktop
# Nerd Fonts referenced by the desktop configs deployed on Mint. Debian has no
# equivalent of Void's nerd-fonts-ttf package, so they are fetched from the
# upstream ryanoasis/nerd-fonts release.
mint_nerd_fonts_version: v3.3.0
mint_nerd_fonts:
- Hack
- UbuntuSans
- NerdFontsSymbolsOnly

View File

@@ -0,0 +1,5 @@
---
platform_profile: void
platform_family: void
platform_package_manager: xbps
platform_service_manager: runit

View File

@@ -0,0 +1,11 @@
---
machine_role: lab
role_profile: lab
role_stability: experimental
experimental_profile: true
lab_workspace_directories:
- path: "{{ user_home }}/Lab"
mode: "0755"
- path: "{{ user_home }}/Scratch"
mode: "0755"

View File

@@ -0,0 +1,24 @@
---
machine_role: personal_workstation
role_profile: personal_workstation
role_stability: stable
personal_workstation_directories:
- path: "{{ user_home }}/Documents"
mode: "0755"
- path: "{{ user_home }}/Downloads"
mode: "0755"
- path: "{{ user_home }}/Org"
mode: "0755"
- path: "{{ user_home }}/Remotes"
mode: "0755"
personal_workstation_dotfiles:
- src: .gitignore_global
dest: .gitignore_global
mode: "0644"
- src: .themes.gitignore
dest: .themes.gitignore
mode: "0644"
personal_workstation_flatpak_packages: []

View File

@@ -23,7 +23,6 @@ void_packages_base:
- go
- hugo
- ImageMagick
- isync
- libtool
- linux
- linux-headers
@@ -33,8 +32,6 @@ void_packages_base:
- lm_sensors
- man-pages-devel
- man-pages-posix
- msmtp
- mu4e
- nodejs
- ntfs-3g
- pipewire
@@ -103,13 +100,15 @@ desktop_common_packages:
- cups-pk-helper
- flatpak
- libsecret
- pinentry-emacs
- sane
- sane-airscan
- turnstile
- xdg-desktop-portal
- xdg-user-dirs
desktop_emacs_packages:
- pinentry-emacs
desktop_minimal_packages:
- alacritty
- blueman
@@ -222,6 +221,28 @@ desktop_hyprland_packages:
- xdg-desktop-portal-hyprland
- xorg-server-xwayland
desktop_niri_packages:
- cliphist
- dunst
- foot
- foot-terminfo
- gtklock
- grim
- niri
- rofi
- slurp
- SwayOSD
- Waybar
- wl-clipboard
- xdg-desktop-portal-gtk
- xorg-server-xwayland
void_lab_packages:
- llvm
- podman
- qemu
- smartmontools
profile_packages:
- bash-language-server
- bluez
@@ -231,7 +252,6 @@ profile_packages:
- deluge-gtk
- delve
- dnsmasq
- emacs-pgtk
- poppler-glib
- poppler-utils
- fontconfig-devel
@@ -273,3 +293,6 @@ profile_packages:
- yaru
- yaru-plus
- zstd
profile_emacs_packages:
- emacs-pgtk

View File

@@ -1,20 +1,11 @@
---
hostname: ikaros
desktop_sessions_enabled:
- sway
- hyprland
desktop_default_session: hyprland
desktop_default_session_env: wayland
host_packages:
- openssh
- mesa-dri
- vulkan-loader
- mesa-vulkan-radeon
- mesa-vaapi
- xf86-video-amdgpu
- openssh-client
- openssh-server
- mesa-vulkan-drivers
- xserver-xorg-video-amdgpu
host_ufw_rules:
- rule: allow
@@ -34,4 +25,4 @@ host_sshd_allow_users:
host_authorized_ssh_keys: "{{ vault_ikaros_authorized_ssh_keys | default([]) }}"
host_enabled_services:
- sshd
- ssh

View File

@@ -1,50 +1,7 @@
---
hostname: nymph
desktop_sessions_enabled:
- sway
- hyprland
desktop_default_session: hyprland
desktop_default_session_env: wayland
desktop_emptty_session_error_logging: rotate
host_packages:
- nvidia580
- linux-mainline-headers
- mesa-dri
- vulkan-loader
- mesa-vulkan-intel
- intel-video-accel
- power-profiles-daemon
- tlp
- tlp-rdw
- upower
host_enabled_services:
- tlp
host_sway_dotfiles:
- src: .config/sway/host.conf
dest: .config/sway/host.conf
mode: "0644"
- src: .config/sway/session-env
dest: .config/sway/session-env
mode: "0644"
- src: .config/kanshi/
dest: .config/kanshi/
mode: preserve
- src: .config/wireplumber/wireplumber.conf.d/60-camera-priority.conf
dest: .config/wireplumber/wireplumber.conf.d/60-camera-priority.conf
mode: "0644"
host_hyprland_dotfiles:
- src: .config/hypr/host.conf
dest: .config/hypr/host.conf
mode: "0644"
- src: .config/hypr/session-env
dest: .config/hypr/session-env
mode: "0644"
- src: .config/wireplumber/wireplumber.conf.d/60-camera-priority.conf
dest: .config/wireplumber/wireplumber.conf.d/60-camera-priority.conf
mode: "0644"
# Void Linux/Niri laptop target. Keep host-specific packages empty until hardware
# support is verified on the installed system.
host_packages: []
host_enabled_services: []

View File

@@ -1,7 +1,24 @@
---
all:
children:
platform_void:
hosts:
nymph:
ansible_connection: local
platform_mint:
hosts:
ikaros:
ansible_connection: local
platform_freebsd:
hosts: {}
void:
children:
platform_void:
graphical_desktop:
hosts:
ikaros:
ansible_connection: local
@@ -9,12 +26,35 @@ all:
ansible_connection: local
desktop:
children:
graphical_desktop:
role_personal_workstation:
hosts:
ikaros:
ansible_connection: local
role_lab:
hosts:
nymph:
ansible_connection: local
desktop_sway:
hosts: {}
desktop_hyprland:
hosts: {}
desktop_niri:
hosts:
nymph:
ansible_connection: local
desktop_cinnamon:
hosts:
ikaros:
ansible_connection: local
ubuntu:
children:
workstation_dev_wsl: