#!/bin/bash

NOTIFY_ID=""
LAST_LAYOUT=""

while IFS= read -r line; do
    if [[ "$line" == *"Keyboard layout switched"* ]]; then
        # Извлекаем индекс раскладки встроенным регулярным выражением
        if [[ "$line" =~ ([0-9]+) ]]; then
            layout="${BASH_REMATCH[1]}"
        else
            continue
        fi

        # Пропускаем дубликаты событий (снижает нагрузку и мигание индикаторов)
        if [[ "$layout" == "$LAST_LAYOUT" ]]; then
            continue
        fi
        LAST_LAYOUT="$layout"

        if [[ "$layout" == "1" ]]; then
            brightnessctl -d 'input12::capslock' s 1
            msg="RU"
        else
            brightnessctl -d 'input12::capslock' s 0
            msg="EN"
        fi

        if [[ -z "$NOTIFY_ID" ]]; then
            NOTIFY_ID=$(notify-send --print-id "keymap" "$msg")
        else
            notify-send -r "$NOTIFY_ID" "keymap" "$msg"
        fi
    fi
done < <(niri msg event-stream)
