diff --git a/ansible/inventory/host_vars/nymph.yml b/ansible/inventory/host_vars/nymph.yml index 43aca5d..97c2b03 100644 --- a/ansible/inventory/host_vars/nymph.yml +++ b/ansible/inventory/host_vars/nymph.yml @@ -31,3 +31,11 @@ host_i3_dotfiles: - src: .config/wireplumber/wireplumber.conf.d/60-camera-priority.conf dest: .config/wireplumber/wireplumber.conf.d/60-camera-priority.conf mode: "0644" + +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" diff --git a/ansible/roles/profile_desktop_host/tasks/main.yml b/ansible/roles/profile_desktop_host/tasks/main.yml index 47cbd98..8bc0567 100644 --- a/ansible/roles/profile_desktop_host/tasks/main.yml +++ b/ansible/roles/profile_desktop_host/tasks/main.yml @@ -19,3 +19,18 @@ - "'i3' in (desktop_sessions_enabled | default([]))" - (host_i3_dotfiles | default([])) | length > 0 +- name: Copy host-specific sway dotfiles + tags: [dotfiles, dotfiles:desktop, dotfiles:host, sway] + ansible.builtin.copy: + src: "{{ playbook_dir }}/../dotfiles/{{ hostname }}/{{ item.src }}" + dest: "{{ user_home }}/{{ item.dest }}" + owner: "{{ username }}" + group: "{{ user_group }}" + mode: "{{ item.mode }}" + loop: "{{ host_sway_dotfiles | default([]) }}" + loop_control: + label: "{{ item.dest }}" + when: + - "'sway' in (desktop_sessions_enabled | default([]))" + - (host_sway_dotfiles | default([])) | length > 0 + diff --git a/dotfiles/desktop/.config/sway/config b/dotfiles/desktop/.config/sway/config index 6c5995f..bb78f34 100644 --- a/dotfiles/desktop/.config/sway/config +++ b/dotfiles/desktop/.config/sway/config @@ -10,6 +10,9 @@ set $down j set $up k set $right l +# Default terminal (hosts can override via host.conf — e.g. nymph wraps it in prime-run) +set $terminal alacritty + # Workspaces (waybar formatta i numeri in romani via format-icons) set $ws1 "1" set $ws2 "2" @@ -62,6 +65,9 @@ gaps outer 4 smart_gaps on smart_borders on +# Per-host overrides (terminal wrapper, gaps tweaks, workspace→output bindings, …) +include ~/.config/sway/host.conf + # Window rules for_window [app_id="(?i)polkit"] floating enable for_window [class="(?i)polkit"] floating enable @@ -108,7 +114,7 @@ exec swayidle -w \ before-sleep '~/.config/sway/scripts/lockscreen' # Terminal -bindsym $mod+Return exec alacritty +bindsym $mod+Return exec $terminal # Emacs client bindsym $mod+Shift+e exec emacsclient -c -n diff --git a/dotfiles/desktop/.config/sway/host.conf b/dotfiles/desktop/.config/sway/host.conf new file mode 100644 index 0000000..9ae379d --- /dev/null +++ b/dotfiles/desktop/.config/sway/host.conf @@ -0,0 +1,3 @@ +# Per-host sway overrides. Empty by default; hosts that need tuning +# ship their own version via host_sway_dotfiles, which overwrites this +# placeholder during deploy. diff --git a/dotfiles/desktop/.local/bin/start-sway b/dotfiles/desktop/.local/bin/start-sway index 629cdc2..d6c16d7 100755 --- a/dotfiles/desktop/.local/bin/start-sway +++ b/dotfiles/desktop/.local/bin/start-sway @@ -15,6 +15,9 @@ export GDK_BACKEND='wayland,x11' export SSH_AUTH_SOCK="$HOME/.local/state/ssh-agent/socket" +# Per-host session environment (GPU / Wayland tuning, etc.) +[ -r "$HOME/.config/sway/session-env" ] && . "$HOME/.config/sway/session-env" + exec dbus-run-session sh -eu -c ' umask 077 printf "%s\n" "$DBUS_SESSION_BUS_ADDRESS" > "$HOME/.dbus-session-bus-address" diff --git a/dotfiles/nymph/.config/sway/host.conf b/dotfiles/nymph/.config/sway/host.conf new file mode 100644 index 0000000..c51d06a --- /dev/null +++ b/dotfiles/nymph/.config/sway/host.conf @@ -0,0 +1,16 @@ +set $terminal ~/.local/bin/prime-run /usr/bin/alacritty + +gaps inner 10 +gaps outer 5 +corner_radius 10 + +workspace 1 output eDP-1 +workspace 2 output DP-1 +workspace 3 output DP-1 +workspace 4 output DP-1 +workspace 5 output DP-1 +workspace 6 output DP-1 +workspace 7 output DP-1 +workspace 8 output DP-1 +workspace 9 output DP-1 +workspace 10 output DP-1 diff --git a/dotfiles/nymph/.config/sway/session-env b/dotfiles/nymph/.config/sway/session-env new file mode 100644 index 0000000..4a16e3a --- /dev/null +++ b/dotfiles/nymph/.config/sway/session-env @@ -0,0 +1,6 @@ +export LIBVA_DRIVER_NAME=iHD +export QT_QPA_PLATFORM=wayland +export QT_QPA_PLATFORMTHEME=qt6ct +export SWAY_UNSUPPORTED_GPU=1 +export WLR_DRM_DEVICES=/dev/dri/card0:/dev/dri/card1 +export WLR_NO_HARDWARE_CURSORS=1