diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
index da1f80f..e671e90 100644
--- a/.config/hypr/hyprland.conf
+++ b/.config/hypr/hyprland.conf
@@ -261,29 +261,29 @@ bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
-# Switch workspaces with mainMod + [0-9]
-bind = $mainMod, 1, workspace, 1
-bind = $mainMod, 2, workspace, 2
-bind = $mainMod, 3, workspace, 3
-bind = $mainMod, 4, workspace, 4
-bind = $mainMod, 5, workspace, 5
-bind = $mainMod, 6, workspace, 6
-bind = $mainMod, 7, workspace, 7
-bind = $mainMod, 8, workspace, 8
-bind = $mainMod, 9, workspace, 9
-bind = $mainMod, 0, workspace, 10
+# Switch workspaces with mainMod + number row (layout-independent keycodes)
+bind = $mainMod, code:11, workspace, 1
+bind = $mainMod, code:10, workspace, 2
+bind = $mainMod, code:12, workspace, 3
+bind = $mainMod, code:13, workspace, 4
+bind = $mainMod, code:14, workspace, 5
+bind = $mainMod, code:15, workspace, 6
+bind = $mainMod, code:16, workspace, 7
+bind = $mainMod, code:17, workspace, 8
+bind = $mainMod, code:18, workspace, 9
+bind = $mainMod, code:19, workspace, 10
-# Move active window to a workspace with mainMod + SHIFT + [0-9]
-bind = $mainMod SHIFT, 1, movetoworkspace, 1
-bind = $mainMod SHIFT, 2, movetoworkspace, 2
-bind = $mainMod SHIFT, 3, movetoworkspace, 3
-bind = $mainMod SHIFT, 4, movetoworkspace, 4
-bind = $mainMod SHIFT, 5, movetoworkspace, 5
-bind = $mainMod SHIFT, 6, movetoworkspace, 6
-bind = $mainMod SHIFT, 7, movetoworkspace, 7
-bind = $mainMod SHIFT, 8, movetoworkspace, 8
-bind = $mainMod SHIFT, 9, movetoworkspace, 9
-bind = $mainMod SHIFT, 0, movetoworkspace, 10
+# Move active window to a workspace with mainMod + SHIFT + number row
+bind = $mainMod SHIFT, code:11, movetoworkspace, 1
+bind = $mainMod SHIFT, code:10, movetoworkspace, 2
+bind = $mainMod SHIFT, code:12, movetoworkspace, 3
+bind = $mainMod SHIFT, code:13, movetoworkspace, 4
+bind = $mainMod SHIFT, code:14, movetoworkspace, 5
+bind = $mainMod SHIFT, code:15, movetoworkspace, 6
+bind = $mainMod SHIFT, code:16, movetoworkspace, 7
+bind = $mainMod SHIFT, code:17, movetoworkspace, 8
+bind = $mainMod SHIFT, code:18, movetoworkspace, 9
+bind = $mainMod SHIFT, code:19, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf
index 08a6877..83e5838 100644
--- a/.config/hypr/hyprpaper.conf
+++ b/.config/hypr/hyprpaper.conf
@@ -6,7 +6,7 @@ wallpaper {
}
wallpaper {
- monitor = DP-2
+ monitor = DP-1
path = /usr/share/backgrounds/nordic-wallpapers/archlinux.png
fit_mode = cover
}
diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc
index b10942e..5fcb008 100644
--- a/.config/waybar/config.jsonc
+++ b/.config/waybar/config.jsonc
@@ -25,7 +25,7 @@
"format": "{id}"
},
"custom/screenshot": {
- "exec": "printf '{\"text\": \"Shot \", \"tooltip\": \"Area screenshot: edit in Swappy, then choose save path and filename; Esc on filename uses screenshot\"}'",
+ "exec": "printf '{\"text\": \" Shot\", \"tooltip\": \"Area screenshot: edit in Swappy, then choose save path and filename; Esc on filename uses screenshot\"}'",
"return-type": "json",
"escape": false,
"interval": "once",
@@ -35,8 +35,8 @@
"escape": false,
"format": "{icon}",
"format-icons": {
- "activated": "Awake ",
- "deactivated": "Idle "
+ "activated": " Awake",
+ "deactivated": " Idle"
}
},
"tray": {
@@ -44,9 +44,9 @@
},
"clock": {
"escape": false,
- "format": "{:%H:%M} ",
+ "format": " {:%H:%M}",
"tooltip-format": "{:%Y %B}\n{calendar}",
- "format-alt": "{:%Y-%m-%d} "
+ "format-alt": " {:%Y-%m-%d}"
},
"custom/spotify": {
"exec": "bash $HOME/.config/waybar/scripts/spotify-waybar.sh",
@@ -68,7 +68,7 @@
},
"cpu": {
"escape": false,
- "format": "{usage}% ",
+ "format": " {usage}%",
"tooltip": false,
"on-click": "alacritty -e btop"
},
@@ -91,30 +91,30 @@
},
"network": {
"escape": false,
- "format-wifi": "{essid} ({signalStrength}%) ",
- "format-ethernet": "{ipaddr}/{cidr} ",
- "tooltip-format": "{ifname} via {gwaddr} ",
- "format-linked": "{ifname} (No IP) ",
- "format-disconnected": "Disconnected ",
- "format-alt": "{ifname}: {ipaddr}/{cidr} ",
+ "format-wifi": " {essid} ({signalStrength}%)",
+ "format-ethernet": " {ipaddr}/{cidr}",
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "format-linked": " {ifname} (No IP)",
+ "format-disconnected": " Disconnected",
+ "format-alt": " {ifname}: {ipaddr}/{cidr}",
"on-click-right": "nm-connection-editor"
},
"pulseaudio": {
"escape": false,
- "format": "{volume}% {format_source} {icon}",
- "format-bluetooth": "{volume}% {format_source} {icon}",
- "format-bluetooth-muted": "{format_source} {icon} ",
- "format-muted": "{format_source} ",
- "format-source": "{volume}% ",
- "format-source-muted": "",
+ "format": "{icon} {format_source} {volume}%",
+ "format-bluetooth": " {icon} {format_source} {volume}%",
+ "format-bluetooth-muted": " {icon} {format_source}",
+ "format-muted": " {format_source}",
+ "format-source": " {volume}%",
+ "format-source-muted": "",
"format-icons": {
- "headphone": "",
- "hands-free": "",
- "headset": "",
- "phone": "",
- "portable": "",
- "car": "",
- "default": ["", "", ""]
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": ["", "", ""]
},
"on-click": "pavucontrol"
}
diff --git a/.config/waybar/scripts/check-mount.sh b/.config/waybar/scripts/check-mount.sh
index c9edf31..73fdad2 100755
--- a/.config/waybar/scripts/check-mount.sh
+++ b/.config/waybar/scripts/check-mount.sh
@@ -26,17 +26,17 @@ markup_escape() {
icon_markup() {
local icon="$1"
local color="$2"
- printf '%s' "$color" "$icon"
+ printf '%s' "$color" "$icon"
}
if mountpoint -q "$MOUNT"; then
read -r used avail pcent <<< "$(df -h --output=used,avail,pcent "$MOUNT" | tail -1)"
- text="$(markup_escape "$LABEL $used/$avail ($pcent)") $(icon_markup "$ICON_MOUNT" "#A3BE8C")"
+ text="$(icon_markup "$ICON_MOUNT" "#A3BE8C") $(markup_escape "$LABEL $used/$avail ($pcent)")"
tooltip="$(markup_escape "$MOUNT mounted - used: $used, free: $avail ($pcent)")"
printf '{"text":"%s","tooltip":"%s","class":"mounted"}\n' \
"$(json_escape "$text")" "$(json_escape "$tooltip")"
else
- text="$(markup_escape "$LABEL N/A") $(icon_markup "$ICON_DOWN" "#BF616A")"
+ text="$(icon_markup "$ICON_DOWN" "#BF616A") $(markup_escape "$LABEL N/A")"
tooltip="$(markup_escape "$MOUNT is NOT mounted")"
printf '{"text":"%s","tooltip":"%s","class":"unmounted"}\n' \
"$(json_escape "$text")" "$(json_escape "$tooltip")"
diff --git a/.config/waybar/scripts/spotify-waybar.sh b/.config/waybar/scripts/spotify-waybar.sh
index d5a4b16..b511f8e 100644
--- a/.config/waybar/scripts/spotify-waybar.sh
+++ b/.config/waybar/scripts/spotify-waybar.sh
@@ -27,7 +27,7 @@ markup_escape() {
icon_markup() {
local icon="$1"
local color="$2"
- printf '%s' "$color" "$icon"
+ printf '%s' "$color" "$icon"
}
truncate_text() {
@@ -151,7 +151,7 @@ art_url=$(playerctl -p "$PLAYER" metadata mpris:artUrl 2>/dev/null || true)
state_class=$(printf '%s' "$status" | tr '[:upper:]' '[:lower:]')
if [[ "$state_class" == "stopped" ]]; then
- text_markup="Stopped $(icon_markup "" "#D08770") $(icon_markup "" "#A3BE8C")"
+ text_markup="$(icon_markup "" "#D08770") $(icon_markup " " "#A3BE8C")Stopped"
printf '{"text":"%s","class":"stopped","alt":"stopped"}\n' "$(json_escape "$text_markup")"
exit 0
fi
@@ -209,7 +209,7 @@ Left click: play/pause | Scroll: next/prev
EOF
)
-text_markup="$(markup_escape "$display_track") $(icon_markup "$state_icon" "$state_color") $(icon_markup "$app_icon" "$app_color")"
+text_markup="$(icon_markup "$state_icon" "$state_color") $(icon_markup "$app_icon " "$app_color")$(markup_escape "$display_track")"
printf '{"text":"%s","tooltip":"%s","class":"%s","alt":"%s"}\n' \
"$(json_escape "$text_markup")" \
diff --git a/.config/waybar/scripts/weather-norrkoping.sh b/.config/waybar/scripts/weather-norrkoping.sh
index b5f0955..8cb264a 100755
--- a/.config/waybar/scripts/weather-norrkoping.sh
+++ b/.config/waybar/scripts/weather-norrkoping.sh
@@ -23,7 +23,7 @@ markup_escape() {
icon_markup() {
local icon="$1"
local color="$2"
- printf '%s' "$color" "$icon"
+ printf '%s' "$color" "$icon"
}
icon_for_condition() {
@@ -59,14 +59,14 @@ icon_for_condition() {
}
if ! command -v curl >/dev/null 2>&1; then
- text="--°C Unavailable $(icon_markup "" "#D08770")"
+ text="$(icon_markup " " "#D08770")--°C Unavailable"
printf '{"text":"%s","tooltip":"curl is required for weather","class":"weather-unavailable"}\n' "$(json_escape "$text")"
exit 0
fi
raw=$(curl -fsS --max-time 6 "$URL" 2>/dev/null || true)
if [[ -z "$raw" || "$raw" != *"|"* ]]; then
- text="--°C Unavailable $(icon_markup "" "#D08770")"
+ text="$(icon_markup " " "#D08770")--°C Unavailable"
printf '{"text":"%s","tooltip":"Weather unavailable for Norrkoping","class":"weather-unavailable"}\n' "$(json_escape "$text")"
exit 0
fi
@@ -75,7 +75,7 @@ temp=${raw%%|*}
condition=${raw#*|}
icon=$(icon_for_condition "$condition")
updated=$(date '+%H:%M')
-text="$(markup_escape "$temp $condition") $(icon_markup "$icon" "#88C0D0")"
+text="$(icon_markup "$icon " "#88C0D0")$(markup_escape "$temp $condition")"
tooltip=$(cat <