Elimina completamente la sessione desktop i3 (X11), ormai non più usata
(gli host espongono solo sway e Hyprland su Wayland):
- ruolo profile_desktop_i3 e voce emptty i3.desktop
- desktop_i3_packages e i guard 'i3' in desktop_sessions_enabled
- desktop_i3_dotfiles e host_i3_dotfiles (autorandr X11)
- dotfiles i3/X11: .xinitrc, i3, i3blocks, picom, polybar, autorandr
- task host-specifici i3 (copy dotfiles, wrap prime-run su nymph)
- rimuove st (terminale X11 da sorgente) da desktop_void_source_tools
- consolida lo script live in scripts/remove_i3.sh, elimina cleanup-i3.sh
- aggiorna la documentazione (README/AGENTS/CLAUDE/knowledge)
Config Emacs lasciata invariata di proposito.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Rimuove completamente i due host non più in uso dal playbook:
- inventory: gruppi ubuntu_workstation, workstation_dev_ubuntu,
workstation_host_windows e relative entry host
- host_vars deadalus-ubuntu/deadalus-win e group_vars windows
- play workstation_dev_ubuntu e workstation_host_windows in site.yml
- ruolo profile_workstation_host_windows e bootstrap PowerShell
- var PSRP nel vault.yml.example, pacchetti python pypsrp/pyspnego WSL
- collection ansible.windows/community.windows
- riferimenti nella documentazione (README/AGENTS/CLAUDE)
Workstation Linux nativa: resta solo deadalus-fedora.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Remove i3 from desktop_sessions_enabled on ikaros, nymph, and the
desktop group_vars; set sway/wayland as default for all desktop hosts.
Copy 60-camera-priority.conf into host_sway_dotfiles on nymph so
WirePlumber camera priority is still deployed under the sway session.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Switch lockscreen from swaylock to gtklock. CSS styled with Star Wars
yellow (#FFE81F) on near-black background, cover-scaled wallpaper injected
at runtime via temp CSS to avoid path expansion issues in gtklock config.
Update sway background wallpaper to darth-vader-sam.jpg.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Deploy /etc/profile.d/10-qt-theme.sh setting QT_QPA_PLATFORMTHEME=gtk3
system-wide. The gtk3 Qt platform theme plugin (already shipped with
qt5/qt6 base on Void) makes both Qt5 and Qt6 widgets read theme name,
font, icon theme and color scheme from ~/.config/gtk-3.0/settings.ini,
so Qt apps now match the Yaru-blue-dark setup on both i3 and sway.
Also drop the stale QT_QPA_PLATFORMTHEME=qt6ct override in nymph's
session-env (qt6ct is not installed and the override would shadow the
global gtk3 setting).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The task wrote /etc/flatpak/overrides/global, but Flatpak reads its
overrides from /var/lib/flatpak/overrides/, so the file was never
honored. The dark theme is now correctly applied to Flatpak apps via
xdg-desktop-portal (color-scheme + gtk-theme), which works as long as
the portal backends can start — fixed in the prior commit.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Two profiles, auto-selected from connected outputs:
- solo: only eDP-1, all workspaces routed there.
- dual: eDP-1 + DP-1 (3440x1440@100Hz dock), workspace 1 on the laptop
panel and 2-10 on the dock; each profile reissues swaymsg "workspace
N, move workspace to output X" on activation so workspaces follow.
host.conf autostarts kanshi and drops the redundant gaps/corner_radius
overrides, leaving the base sway/config values in effect.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Adds a host_sway_dotfiles mechanism mirroring host_i3_dotfiles: hosts
drop a host.conf into ~/.config/sway/ to override sway settings, and
optionally a session-env file sourced by start-sway for per-host
environment variables. The base sway/config defines $terminal and
includes ~/.config/sway/host.conf; an empty placeholder ships with the
base profile so the include never warns on hosts without overrides.
nymph gets its own host.conf wrapping alacritty in prime-run (NVIDIA
PRIME offload), bumping gaps/corner_radius, and pinning workspaces to
eDP-1 / DP-1, plus a session-env exporting SWAY_UNSUPPORTED_GPU=1 and
WLR_DRM_DEVICES for the hybrid Intel+NVIDIA setup.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The portal config copy assumed the parent directory existed, but on a
fresh install xdg-desktop-portal hasn't shipped it yet. Add an explicit
file directory task ahead of the copy so the playbook is robust on
hosts that don't already have it.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Adds sway to desktop_sessions_enabled on both desktops so the next run
installs the sway profile and emptty exposes it in the picker. Default
session stays i3; users select Sway from emptty's picker (already on
via desktop_prompt_for_session).
Note: nymph still lacks a kanshi config, so multi-monitor workspace
pinning isn't tuned yet — sway will fall back to default placement.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Screenshots
- Swap xfce4-screenshooter for flameshot + grim/slurp/jq; xfce4 used
the X11 selection so clipboard didn't round-trip to Wayland clients.
Print invokes flameshot's editor; Shift/Alt+Print are quick
grim-based captures via a small wrapper script. Flameshot is now
autostarted so the first capture isn't slow.
Polkit
- Add for_window rules so the xfce-polkit dialog (and any other polkit
agent) always opens floating.
Flatpak dark theme
- Write /etc/flatpak/overrides/global with GTK_THEME=Yaru-Blue-dark for
legacy GTK apps, plus a sway-portals.conf so the Settings portal is
served by xdg-desktop-portal-gtk (wlr doesn't implement it). That
lets libadwaita apps see color-scheme=prefer-dark.
cleanup-sway: track the new package set.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Move start-sway to /usr/local/bin so emptty resolves it without a user
PATH (it runs the launcher with an absolute path). The role copies the
script as root; the user dotfile entry is removed.
- Fix runtime errors / deprecations in sway/config: tiling_drag accepts
only enable|disable|toggle; new_window / new_float have been
superseded by default_border / default_floating_border.
- Simplify workspace names to numeric only; waybar already maps them to
roman numerals via format-icons.
- Update cleanup-sway.sh to remove /usr/local/bin/start-sway and the
emptty session entry together as system files.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Flip desktop_prompt_for_session to true so emptty stops auto-selecting
i3 and shows the session picker — needed now that sway is an alternative
target. desktop_default_session is kept as a fallback for future flips.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Remove the noctalia config tree and its desktop_void_dotfiles entry,
plus the unused noctalia_bar_monitors / noctalia_screen_overrides vars.
Not used by any role.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
swaylock-effects is not packaged in Void; switch the lockscreen script
to vanilla swaylock and drop the unsupported --effect-blur / --fade-in
flags. Also correct the case-sensitive package name Waybar so xbps-install
can resolve it.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
New profile_desktop_sway role gated by desktop_sessions_enabled, with
SwayFX effects, Waybar bar (1:1 with Polybar layout + pulseaudio),
swayidle + swaylock-effects for locking, swayosd for OSD, cliphist for
clipboard history and kanshi for multi-monitor profiles. Emptty gains
WAYLAND_SESSIONS_PATH + wayland-sessions dir. start-sway wrapper handles
session env (dbus-run-session, gpg-agent, turnstile env). Profile stays
dormant until a host opts in via desktop_sessions_enabled.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Replace the slurp/set_fact Jinja-heavy approach (which was clobbering
pre-existing GRUB_CMDLINE_LINUX content) with a straightforward
sequence: grep to detect whether the line exists, lineinfile to
initialize an empty one when missing, then two replace tasks using a
tempered-greedy-token regex that appends each NVIDIA parameter only
when not already present. Idempotent and preserves any existing
content in GRUB_CMDLINE_LINUX.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The previous lineinfile-with-backrefs negative-lookahead regex was
not appending NVIDIA parameters when missing. Switch to a clearer
approach: slurp the file, extract the current GRUB_CMDLINE_LINUX
value, build a merged target value that appends missing NVIDIA
params, then write back the line. lineinfile sees no diff when the
target matches the current line, preserving idempotency.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Previously the task hardcoded GRUB_CMDLINE_LINUX to a fixed string
containing nymph's rd.luks.uuid, rootflags and apparmor parameters,
clobbering whatever the host had. Switch to an idempotent
lineinfile-with-backrefs loop that appends nouveau.modeset=0 and
nvidia-drm.modeset=1 only when missing, preserving the existing
kernel cmdline. grub-mkconfig now runs only when the cmdline changed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Consolidate the WirePlumber camera priority file under the same
host_i3_dotfiles mechanism used for autorandr, dropping the bespoke
copy task from profile_desktop_host/tasks/nymph.yml.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>