From 2ee4bd963ee9480f7d86767eee105e5ecd167903 Mon Sep 17 00:00:00 2001 From: Fabio Scotto di Santolo Date: Sat, 16 May 2026 21:20:01 +0200 Subject: [PATCH] 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 --- ansible/inventory/group_vars/desktop.yml | 4 --- .../profile_desktop_sway/files/sway.desktop | 2 +- .../roles/profile_desktop_sway/tasks/main.yml | 10 +++++++ dotfiles/desktop/.config/sway/config | 26 +++++++++---------- scripts/cleanup-sway.sh | 26 +++++++++++-------- 5 files changed, 38 insertions(+), 30 deletions(-) diff --git a/ansible/inventory/group_vars/desktop.yml b/ansible/inventory/group_vars/desktop.yml index 070eaf8..e0fa0c6 100644 --- a/ansible/inventory/group_vars/desktop.yml +++ b/ansible/inventory/group_vars/desktop.yml @@ -162,10 +162,6 @@ desktop_sway_dotfiles: src: .config/sway/ dest: .config/sway/ mode: preserve - - name: Sway session launcher - src: .local/bin/start-sway - dest: .local/bin/start-sway - mode: "0755" - name: dunst config src: .config/dunst/ dest: .config/dunst/ diff --git a/ansible/roles/profile_desktop_sway/files/sway.desktop b/ansible/roles/profile_desktop_sway/files/sway.desktop index 16f3054..fe2e57a 100644 --- a/ansible/roles/profile_desktop_sway/files/sway.desktop +++ b/ansible/roles/profile_desktop_sway/files/sway.desktop @@ -1,5 +1,5 @@ [Desktop Entry] Name=Sway Comment=SwayFX (Wayland) -Exec=start-sway +Exec=/usr/local/bin/start-sway Type=Application diff --git a/ansible/roles/profile_desktop_sway/tasks/main.yml b/ansible/roles/profile_desktop_sway/tasks/main.yml index 74503cb..de3032b 100644 --- a/ansible/roles/profile_desktop_sway/tasks/main.yml +++ b/ansible/roles/profile_desktop_sway/tasks/main.yml @@ -27,6 +27,16 @@ mode: "0644" when: "'sway' in (desktop_sessions_enabled | default([]))" +- name: Install Sway session launcher in /usr/local/bin + tags: [packages, services, sway] + ansible.builtin.copy: + src: "{{ playbook_dir }}/../dotfiles/desktop/.local/bin/start-sway" + dest: /usr/local/bin/start-sway + owner: root + group: root + mode: "0755" + when: "'sway' in (desktop_sessions_enabled | default([]))" + - name: Copy sway desktop dotfiles tags: [dotfiles, dotfiles:desktop, sway] ansible.builtin.copy: diff --git a/dotfiles/desktop/.config/sway/config b/dotfiles/desktop/.config/sway/config index eaac001..9eac327 100644 --- a/dotfiles/desktop/.config/sway/config +++ b/dotfiles/desktop/.config/sway/config @@ -10,17 +10,17 @@ set $down j set $up k set $right l -# Workspaces (etichette in numeri romani) -set $ws1 "1: I" -set $ws2 "2: II" -set $ws3 "3: III" -set $ws4 "4: IV" -set $ws5 "5: V" -set $ws6 "6: VI" -set $ws7 "7: VII" -set $ws8 "8: VIII" -set $ws9 "9: IX" -set $ws10 "10: X" +# Workspaces (waybar formatta i numeri in romani via format-icons) +set $ws1 "1" +set $ws2 "2" +set $ws3 "3" +set $ws4 "4" +set $ws5 "5" +set $ws6 "6" +set $ws7 "7" +set $ws8 "8" +set $ws9 "9" +set $ws10 "10" # Input devices input * { @@ -49,13 +49,11 @@ xwayland enable focus_follows_mouse no mouse_warping none floating_modifier $mod -tiling_drag modifier titlebar +tiling_drag enable # Borders default_border pixel 2 default_floating_border pixel 2 -new_window pixel 2 -new_float pixel 2 hide_edge_borders none # Gaps diff --git a/scripts/cleanup-sway.sh b/scripts/cleanup-sway.sh index 1b4a706..82b9242 100755 --- a/scripts/cleanup-sway.sh +++ b/scripts/cleanup-sway.sh @@ -22,11 +22,13 @@ xorg-server-xwayland SWAY_DOTFILES=" $HOME/.config/sway $HOME/.config/waybar -$HOME/.local/bin/start-sway $HOME/.cache/cliphist " -EMPTTY_SESSION=/etc/emptty/wayland-sessions/sway.desktop +SWAY_SYSTEM_FILES=" +/etc/emptty/wayland-sessions/sway.desktop +/usr/local/bin/start-sway +" confirm() { printf '%s [y/N] ' "$1" @@ -65,12 +67,12 @@ for d in $SWAY_DOTFILES; do printf ' %s\n' "$d" fi done -printf '\nEmptty session entry:\n' -if [ -e "$EMPTTY_SESSION" ]; then - printf ' %s\n' "$EMPTTY_SESSION" -else - printf ' (absent)\n' -fi +printf '\nSystem files to remove:\n' +for f in $SWAY_SYSTEM_FILES; do + if [ -e "$f" ] || [ -L "$f" ]; then + printf ' %s\n' "$f" + fi +done printf '\nShared (NOT removed): dunst, rofi, alacritty, xfce4-screenshooter and their configs.\n\n' confirm 'Proceed?' || { printf 'Aborted.\n'; exit 0; } @@ -86,8 +88,10 @@ for d in $SWAY_DOTFILES; do fi done -if [ -e "$EMPTTY_SESSION" ]; then - sudo rm -f -- "$EMPTTY_SESSION" -fi +for f in $SWAY_SYSTEM_FILES; do + if [ -e "$f" ] || [ -L "$f" ]; then + sudo rm -f -- "$f" + fi +done printf '\nDone.\n'