Commit Graph

150 Commits

Author SHA1 Message Date
Fabio Scotto di Santolo
69efe18e2b sway: deploy start-sway system-wide and fix runtime warnings
- 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>
2026-05-16 21:20:01 +02:00
Fabio Scotto di Santolo
2d3fb543de desktop: add sway/swayfx profile (dormant) with waybar, kanshi, cliphist
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>
2026-05-16 19:39:11 +02:00
Fabio Scotto di Santolo
0b3f5e4f0c desktop: add polybar dotfiles 2026-05-15 20:24:32 +02:00
Fabio Scotto di Santolo
dfa1bd194f Added X11 compositor (picom) and configure background transparancy 2026-05-14 23:48:26 +02:00
Fabio Scotto di Santolo
4854b1ae11 Rewrite GRUB cmdline NVIDIA param injection with grep+replace
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>
2026-05-14 00:05:13 +02:00
Fabio Scotto di Santolo
5a3d32cb0e Rewrite GRUB cmdline merge using slurp + fact-based merge
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>
2026-05-13 23:54:49 +02:00
Fabio Scotto di Santolo
fd07d6ad1f Append NVIDIA params to GRUB cmdline instead of overwriting
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>
2026-05-13 23:44:14 +02:00
Fabio Scotto di Santolo
bff3d542ef Deploy nymph WirePlumber camera config via host_i3_dotfiles
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>
2026-05-13 22:41:33 +02:00
Fabio Scotto di Santolo
43619b714f Remove remaining Arch references from profile_desktop_common
Drop the Arch-specific systemd SSH reload handler and remove
.config/systemd/user from the common dir creation loop (no longer
needed without the Arch path).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 21:59:44 +02:00
Fabio Scotto di Santolo
8dea4ec07d Fix rustup-init failing on fresh systems
~/.cargo/env does not exist before rustup-init runs — sourcing it
upfront caused the task to fail on clean installs. Switch to a plain
command invocation without the premature source.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 21:37:59 +02:00
Fabio Scotto di Santolo
36a8762e4d Remove Arch/nymph path, restore nymph as Void desktop
Delete all Arch-specific files (packages_arch role, profile_desktop_gnome
role, arch.yml group_vars, nymph.yml host_vars, arch dotfiles). Revert
nymph to the void group in inventory, remove the arch play from site.yml,
and restore profile_desktop_host/tasks/nymph.yml to its pre-Arch state
(GRUB + NVIDIA + prime-run). Preserve Void improvements introduced
alongside Arch work (desktop_void_dotfiles, desktop_void_source_tools,
profile_desktop_i3 dir additions, void-specific conditions).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 20:06:20 +02:00
Fabio Scotto di Santolo
ac0d779f0f Remove Sway from the playbook, keep Noctalia configs
Drop the profile_desktop_sway role (tasks, templates), all Sway
dotfiles, desktop_sway_* vars, and wayland-sessions emptty path.
Noctalia dotfiles are preserved and deployed via desktop_void_dotfiles
on Void hosts; noctalia_bar_monitors/noctalia_screen_overrides kept
as config vars. Only i3 remains as the Void desktop session.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 18:44:56 +02:00
Fabio Scotto di Santolo
d7629d33d6 Expand and clean up Arch GNOME packages, remove alacritty from Arch
- arch_desktop_gnome_packages: add full GNOME app suite (baobab, gnome-console,
  loupe, papers, showtime, snapshot, sushi, gvfs backends, etc.), sort
  alphabetically, remove duplicates already in arch_packages_base
  (gnome-keyring, gvfs, gvfs-mtp, gvfs-smb, simple-scan)
- Remove alacritty from arch_profile_packages; move alacritty config and
  directory creation to Void-only (profile_desktop_i3 / desktop_void_dotfiles)
- Enable emacs user service via ansible.builtin.systemd (scope: user)
  instead of a manual symlink

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 10:55:54 +02:00
Fabio Scotto di Santolo
224e9bf1e8 Enable gdm without starting it during provisioning
Add enabled_services_only list to services_systemd role for services that
should be enabled at boot but not started immediately. Move gdm to this list
on Arch to avoid starting the display manager mid-provisioning.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 10:43:40 +02:00
Fabio Scotto di Santolo
238d8ab873 Switch to emacs-wayland on Arch, use package-provided emacs.service
- emacs → emacs-wayland in arch_profile_packages
- Remove custom emacs.service deployment: replace full .config/systemd/user/
  directory copy with individual service files (rclone-pcloud, syncthing)
- Remove emacs.service from desktop_systemd_user_services
- Enable package-provided /usr/lib/systemd/user/emacs.service via symlink
  in profile_desktop_gnome

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 10:41:10 +02:00
Fabio Scotto di Santolo
b483ef5b7e Move st to Void-only source tools, remove bookokrat
- bookokrat removed completely from desktop_source_tools
- st moved from common to desktop_void_source_tools (Void-only; uses X11/make)
- Build task loop extended to include desktop_void_source_tools on Void

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 10:37:51 +02:00
Fabio Scotto di Santolo
56c0335b40 Use pinentry-gnome3 for gpg-agent on Arch
Add gpg-agent.arch.conf with pinentry-gnome3 and without enable-ssh-support
(SSH is handled by gnome-keyring on GNOME). Deploy it from profile_desktop_gnome,
overriding the common conf that uses pinentry-gtk-2 for Void.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 10:35:06 +02:00
Fabio Scotto di Santolo
14c24c299d Clean up Arch profile: remove i3/Void-specific config and fix GNOME integration
- Remove XFCE/i3-specific packages and dotfiles from Arch path (xarchiver,
  udiskie, Thunar, xfce-polkit, clipman, screenshooter)
- Separate per-OS dotfiles: mimeapps, udiskie config, GTK theme script,
  udiskie-password, dbus-session and ssh-agent fragments moved to Void-only
- Add mimeapps.arch.list with Nautilus/GNOME associations for nymph
- Move dunst/rofi directory creation from common to profile_desktop_i3
- Add gnome-keyring PAM hooks for GDM (gdm-password) in profile_desktop_gnome
- Remove ssh-agent.service from desktop_systemd_user_services on Arch;
  drop ssh-agent dependency and hardcoded socket from emacs.service
- Add ttf-hack-nerd to Arch font packages
- Fix rustup bootstrap: use rustup-init on Void, rustup toolchain install on Arch

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 23:37:39 +02:00
Fabio Scotto di Santolo
5027b3dd77 Migrate Archlinux config from GRUB to systemd-boot 2026-05-12 18:33:45 +02:00
Fabio Scotto di Santolo
f0fcc92d6d Enable new Archlinux profile for nymph 2026-05-12 18:02:30 +02:00
Fabio Scotto di Santolo
e4d6deb3c5 Added npm tag 2026-05-10 09:02:08 +02:00
Fabio Scotto di Santolo
3344abb36b deadalus-fedora: add GNOME extension and PaperWM gsettings 2026-05-05 21:45:10 +02:00
Fabio Scotto di Santolo
4b5879a67e Add task for extract templates for desktop 2026-04-29 09:02:49 +02:00
Fabio Scotto di Santolo
aa0f787d00 Skip AI agent dotfiles on servers 2026-04-28 14:55:32 +02:00
Fabio Scotto di Santolo
e9af0bd1af Template Codex instructions path 2026-04-27 20:48:18 +02:00
Fabio Scotto di Santolo
003679f499 Refactor: centralize AI instructions and opencode config into common dotfiles 2026-04-27 19:17:14 +02:00
Fabio Scotto di Santolo
5447f28740 Enhance Sway/Noctalia integration and align desktop docs
- Add canonical usb-drive-manager plugin to Noctalia (symlink from official)
- Remove nm-applet and blueman packages from nymph Sway session
- Run udiskie without tray (backend for automount/LUKS, UI via usb-drive-manager)
- Add screenOverrides support to Noctalia bar via inventory variables
- Add host_packages_absent task to packages_void role
- Update desktop docs with full plugin list and config layering
- Add focused validation check for Sway/Noctalia bootstrap
2026-04-22 17:11:30 +02:00
Fabio Scotto di Santolo
67653b8c76 Add canonical Noctalia config and migrate Clipper to official plugin
- Create shared Noctalia config in dotfiles/desktop/.config/noctalia/
- Add Ayu theme, plugin enablement, and Clipper settings
- Migrate Clipper checkout from standalone to official noctalia-plugins
- Add template with host-specific variables for deterministic rendering
- Move Noctalia bar configuration to desktop group_vars
- Create role tasks for rendering and copying Noctalia settings
2026-04-22 15:41:49 +02:00
Fabio Scotto di Santolo
fe8ad912eb Add rustup bootstrap task before source tool builds 2026-04-22 11:51:24 +02:00
Fabio Scotto di Santolo
fa94a2e70e Remove Ollama server infrastructure and related tasks 2026-04-22 10:46:14 +02:00
Fabio Scotto di Santolo
a32eb56721 Remove explicit i3 package removal task; rely on session-based exclusion 2026-04-22 10:42:51 +02:00
Fabio Scotto di Santolo
3a95e4d226 Migrate nymph desktop to SwayFX and Noctalia 2026-04-21 23:04:52 +02:00
Fabio Scotto di Santolo
f954dd70b3 Add desktop ollama service flag 2026-04-21 17:02:28 +02:00
Fabio Scotto di Santolo
08b0b02756 Split Emacs dotfiles deployment 2026-04-21 09:58:21 +02:00
Fabio Scotto di Santolo
30eb6480a8 Treat Org home as a normal directory 2026-04-20 17:01:56 +02:00
Fabio Scotto di Santolo
7c36681242 Mount pCloud with turnstile rclone service 2026-04-19 09:06:57 +02:00
Fabio Scotto di Santolo
8732cb886f Move source tool clone path from ~/.local/src to /usr/src 2026-04-18 19:17:51 +02:00
Fabio Scotto di Santolo
cc8c07a309 Add Ollama with binary tool pattern and turnstile service 2026-04-18 16:12:18 +02:00
Fabio Scotto di Santolo
b0286eed03 Add bookokrat to source tools with build_output_path support 2026-04-18 11:36:05 +02:00
Fabio Scotto di Santolo
d7d27764a5 Switch OpenCode from GitHub tarball to npm package 2026-04-18 09:56:35 +02:00
Fabio Scotto di Santolo
0a0ce183ae Add gf GDB frontend with unified source tool build pattern 2026-04-17 21:24:16 +02:00
Fabio Scotto di Santolo
a14ba14a3e Simplify tmux config and bootstrap plugins with TPM 2026-04-17 16:09:59 +02:00
Fabio Scotto di Santolo
dcbe2fb403 Stop managing Ollama through turnstile 2026-04-17 14:09:29 +02:00
Fabio Scotto di Santolo
12fe272cbb Remove Hyprland support from desktop profile 2026-04-17 12:15:41 +02:00
Fabio Scotto di Santolo
b6b905b8b3 Remove Codex CLI from desktop bootstrap and dotfiles 2026-04-17 11:52:48 +02:00
Fabio Scotto di Santolo
0522fb1f4e Remove tmux-bitwarden plugin and bw install 2026-04-17 11:32:55 +02:00
Fabio Scotto di Santolo
5065c02930 Improve TRAMP performance with SSH ControlMaster and persistent sockets 2026-04-16 19:05:25 +02:00
Fabio Scotto di Santolo
5e8a1b7bc2 Move user services to turnstile 2026-04-14 14:12:30 +02:00
Fabio Scotto di Santolo
b792828cc0 Reconfigure GPTel for Ollama 2026-04-11 22:29:33 +02:00
Fabio Scotto di Santolo
91dd182903 Refactor online tool installation flows 2026-04-10 21:54:28 +02:00