diff --git a/config/hypr/scripts/SwitchKeyboardLayout.sh b/config/hypr/scripts/SwitchKeyboardLayout.sh index 0145e26..cbacd74 100755 --- a/config/hypr/scripts/SwitchKeyboardLayout.sh +++ b/config/hypr/scripts/SwitchKeyboardLayout.sh @@ -41,5 +41,38 @@ new_layout="${layout_mapping[next_index]}" hyprctl switchxkblayout "at-translated-set-2-keyboard" "$new_layout" echo "$new_layout" > "$layout_f" -# Notification for the new keyboard layout -notify-send -u low -i "$notif" "new KB_Layout: $new_layout" +# Created by T-Crypt + +get_keyboard_names() { + hyprctl devices -j | jq -r '.keyboards[].name' +} + +change_layout() { + local got_error=false + + while read -r name; do + hyprctl switchxkblayout "$name" next + if [[ $? -eq 0 ]]; then + echo "Switched the layout for $name." + else + >&2 echo "Error while switching the layout for $name." + got_error=true + fi + done <<< "$(get_keyboard_names)" + + if [ "$got_error" = true ]; then + >&2 echo "Some errors were found during the process..." + return 1 + fi + + return 0 # All layouts had been cycled successfully +} + +if ! change_layout; then + notify-send -u low -t 2000 'Keyboard layout' 'Error: Layout change failed' + >&2 echo "Layout change failed." + exit 1 +else + # Notification for the new keyboard layout + notify-send -u low -i "$notif" "new KB_Layout: $new_layout" +fi