Add Arch Wayland dotfiles: sway/waybar/kitty/nvim/zsh, idempotent installer

Auto-adapts sway workspace routing to however many monitors are
connected (laptop vs. desktop) instead of hardcoding output names.
This commit is contained in:
2026-08-21 22:59:26 -05:00
commit 5c57ee20f7
35 changed files with 870 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env bash
set -Eeuo pipefail
workspace=$(swaymsg -t get_workspaces -r | jq -c '.[] | select(.focused)')
number=$(jq -r '.num' <<<"$workspace")
current_name=$(jq -r '.name' <<<"$workspace")
if (( number < 1 )); then
notify-send -a Waybar -u low "Workspace rename" \
"The focused workspace does not have a numeric identity."
exit 1
fi
current_label=${current_name#"$number:"}
if [[ "$current_label" == "$current_name" ]]; then
current_label=
else
current_label=${current_label# }
fi
label=$(printf '%s\n' "$current_label" | wofi --dmenu \
--prompt "Name workspace $number (blank resets)" \
--lines 1) || exit 0
label=${label//$'\n'/ }
if [[ -z "${label//[[:space:]]/}" ]]; then
new_name=$number
else
new_name="$number: $label"
fi
quoted_name=$(jq -Rrn --arg name "$new_name" '$name | @json')
swaymsg "rename workspace to $quoted_name" >/dev/null