Commit Graph

160 Commits

Author SHA1 Message Date
Fabio Scotto di Santolo
8402f0c1d3 nymph: add kanshi profiles for laptop / dock switching
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>
2026-05-16 23:53:51 +02:00
Fabio Scotto di Santolo
4298fd9bdd sway: per-host overrides via host.conf and session-env
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>
2026-05-16 23:50:01 +02:00
Fabio Scotto di Santolo
d535c9ffd2 sway: screenshots, polkit floating, flatpak dark theme
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>
2026-05-16 23:26:45 +02:00
Fabio Scotto di Santolo
41c474820f sway: restore Nerd Font glyphs in powermenu
The Reboot, Logout and Lock PUA glyphs (U+F01E, U+F08B, U+F023) were
lost from the sway powermenu and rendered as blanks. Re-inject them so
the menu matches the i3 version.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 22:24:33 +02:00
Fabio Scotto di Santolo
c9b75a8cd2 sway/waybar: fix muted glyph, dedupe bar on reload, relocate clock, match lock wallpaper
- Switch muted glyph from U+F6A9 to U+F026 (volume-off), which is
  present in every Nerd Font variant including LiterationMono.
- Use exec for waybar instead of exec_always, so reloading sway no
  longer spawns a second bar.
- Move the clock to the right of the tray and drop the leading
  calendar glyph from its format.
- Lock screen now uses maxresdefault.jpg, matching the i3 lockscreen;
  the asset is copied into sway/wallpapers/ so the sway profile stays
  self-contained.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 22:21:36 +02:00
Fabio Scotto di Santolo
430c44eb14 waybar: restore audio glyphs and raise muted-state contrast
The pulseaudio module had empty strings where Nerd Font glyphs were
meant to be, so the volume / mute / bluetooth indicators rendered
blank. Re-inject the proper PUA codepoints (F027/F028 volume,
F6A9 mute, F293 bluetooth). Bump #pulseaudio.muted from #3a3a46
to #8e8e9a so it stays readable against the bar background.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 22:09:16 +02:00
Fabio Scotto di Santolo
6884ad709d sway: center wallpaper, fix lockscreen flags and add idle timeouts
- Use bg mode 'center' so the wallpaper keeps its native size.
- Drop --clock and --indicator from the lockscreen invocation; those
  flags belong to swaylock-effects and made vanilla swaylock exit with
  an unknown-option error. Keep --indicator-idle-visible to preserve
  the ring while idle.
- Replace the suspend-only swayidle line with a full idle policy:
  5 min lock, 10 min DPMS off, DPMS on on resume, lock before sleep.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 22:05:17 +02:00
Fabio Scotto di Santolo
2ee4bd963e 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
a1317e7d6e desktop: drop noctalia dotfiles and inventory vars
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>
2026-05-16 20:53:25 +02:00
Fabio Scotto di Santolo
2508ffdeb2 sway: use vanilla swaylock and fix Waybar package case
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>
2026-05-16 20:39:44 +02:00
Fabio Scotto di Santolo
cddaef3b04 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
ea588a3fc8 configure xclip package for Emacs 2026-05-16 09:17:39 +02:00
Fabio Scotto di Santolo
dbe135cbdb desktop: unify mono font to LiterationMono Nerd Font, add alacritty dotfiles 2026-05-15 22:18:31 +02:00
Fabio Scotto di Santolo
7593928edb desktop: add polybar dotfiles 2026-05-15 20:24:32 +02:00
Fabio Scotto di Santolo
9691627d0a Added X11 compositor (picom) and configure background transparancy 2026-05-14 23:48:26 +02:00
Fabio Scotto di Santolo
f31351a259 Restore nymph hardware and power management config
Re-add NVIDIA/Intel GPU packages, tlp/power-profiles-daemon, and
emptty error logging to host_vars/nymph.yml — these were dropped
when the Arch path was removed but are independent of Arch and
needed for nymph laptop hardware. Drop two orphaned Wayland/Sway
residues: kanshi config and the historical Sway cleanup script.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 22:27:51 +02:00
Fabio Scotto di Santolo
7094ea0c5f Remove orphaned systemd user service dotfiles
dotfiles/desktop/.config/systemd/user/ (emacs, rclone-pcloud,
ssh-agent, syncthing services) was deployed only via desktop_arch_dotfiles,
which was removed with the Arch path. The equivalent Void services live
in dotfiles/desktop/.config/service/ under Turnstile.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 21:56:45 +02:00
Fabio Scotto di Santolo
13fed45489 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
9055c15628 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
abb71163ec 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
8957f4e7d3 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
22e216e6b1 Enable new Archlinux profile for nymph 2026-05-12 18:02:30 +02:00
Fabio Scotto di Santolo
2644054360 Fix handle dbus session address on desktop 2026-05-10 08:57:05 +02:00
Fabio Scotto di Santolo
caf3c95eba Fix mime browser 2026-05-10 08:08:03 +02:00
Fabio Scotto di Santolo
dcb9dc2f49 Consolidate Emacs document tooling 2026-05-02 09:53:10 +02:00
Fabio Scotto di Santolo
bc82873171 Enable JSON LSP support in Emacs 2026-05-01 21:19:02 +02:00
Fabio Scotto di Santolo
a740166e72 Change gpg key for encrypt 2026-04-29 18:47:12 +02:00
Fabio Scotto di Santolo
41aef50a99 Add task for extract templates for desktop 2026-04-29 09:02:49 +02:00
Fabio Scotto di Santolo
198d7a8de3 Color ap command output in cyan
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 18:00:09 +02:00
Fabio Scotto di Santolo
59d81a138b Fix Alacritty keyboard bindings 2026-04-28 17:50:02 +02:00
Fabio Scotto di Santolo
c650f54795 Add Claude to Emacs project agent picker 2026-04-28 17:40:43 +02:00
Fabio Scotto di Santolo
b0e3be3e58 Add Claude Code agent configuration 2026-04-28 17:29:52 +02:00
Fabio Scotto di Santolo
0f06fd043c Update desktop SSH defaults 2026-04-28 16:14:19 +02:00
Fabio Scotto di Santolo
d948b87954 Change i3 and i3lock backgrounds 2026-04-27 21:48:37 +02:00
Fabio Scotto di Santolo
5584024c4d Template Codex instructions path 2026-04-27 20:48:18 +02:00
Fabio Scotto di Santolo
17089d5d98 Gemini: configure CLI and update workstation/wsl inventory 2026-04-27 19:22:20 +02:00
Fabio Scotto di Santolo
e94c89ea53 Refactor: centralize AI instructions and opencode config into common dotfiles 2026-04-27 19:17:14 +02:00
Fabio Scotto di Santolo
73886905af Add Gemini CLI agent support with robust session parsing 2026-04-27 08:27:34 +02:00
Fabio Scotto di Santolo
5aa3dff38b Add Codex CLI agent support to project launcher 2026-04-26 19:39:14 +02:00
Fabio Scotto di Santolo
5538b64928 Move nordic-night-theme load into :config block 2026-04-26 15:58:01 +02:00
Fabio Scotto di Santolo
434e29a0c3 Set Firefox as default browser, remove Librewolf references 2026-04-22 22:30:59 +02:00
Fabio Scotto di Santolo
161a8a2d19 Add git auto-commit safety rule to opencode 2026-04-22 22:29:39 +02:00
Fabio Scotto di Santolo
20d087d2ef 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
2dc0d513cc 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
6a2694b7cd Remove Ollama server infrastructure and related tasks 2026-04-22 10:46:14 +02:00
Fabio Scotto di Santolo
4632f20c87 Migrate nymph desktop to SwayFX and Noctalia 2026-04-21 23:04:52 +02:00
Fabio Scotto di Santolo
b9e896a56a Expand Org Babel language support 2026-04-21 16:45:17 +02:00
Fabio Scotto di Santolo
c7190f7df4 Align Org styling and templates 2026-04-21 14:31:56 +02:00
Fabio Scotto di Santolo
145b5de0d5 Let turnstile supervise Syncthing restarts 2026-04-21 12:52:37 +02:00
Fabio Scotto di Santolo
24bcebc091 Add Org agenda notifications 2026-04-21 10:13:19 +02:00