#!/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)