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>
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>
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>
The dual/solo autorandr profiles existed under dotfiles/nymph/ but
were never deployed (no host_i3_dotfiles entry). Mirror the ikaros
pattern so they land in ~/.config/autorandr/.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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>
hostname was undefined after nymph.yml was deleted with the Arch path,
causing the profile_desktop_host include_tasks condition to fail.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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>
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>
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>
- 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>
- 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>
- 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>