LINUX.ORG.RU

История изменений

Исправление Loki13, (текущая версия) :

А какие индикаторы? У меня, например, самописный(почти) bash-скрипт для waybar, и в нём всё отображается, потому как там в скрипте опрос идет раз в несколько секунд. Может проблема в индикаторах?

Скрипт вот такой

#!/bin/bash
snore() {
    local IFS
    [[ -n "${_snore_fd:-}" ]] || exec {_snore_fd}<> <(:)
    read -r ${1:+-t "$1"} -u $_snore_fd || :
}

DELAY=1.2

while snore $DELAY; do
    WP_OUTPUT=$(wpctl get-volume @DEFAULT_AUDIO_SINK@)

    if [[ $WP_OUTPUT =~ ^Volume:[[:blank:]]([0-9]+)\.([0-9]{2})([[:blank:]].MUTED.)?$ ]]; then
        if [[ -n ${BASH_REMATCH[3]} ]]; then
            printf "MUTE\n"
        else
            VOLUME=$((10#${BASH_REMATCH[1]}${BASH_REMATCH[2]}))

	  	    ICON=(
                ""
                ""
                ""
			    )

		    WP_DEFAULT=$(wpctl inspect @DEFAULT_AUDIO_SINK@)
			if [[ $WP_DEFAULT == *"Jabra EVOLVE 20 MS"* ]]; then
               ICON=(
                   ''
                   ''
                   ''
               )
			fi

			if [[ $VOLUME -eq 100 ]]; then
                printf "%s" "${ICON[0]}"
            elif [[ $VOLUME -gt 50 ]]; then
                printf "%s" "${ICON[0]} "
            elif [[ $VOLUME -gt 25 ]]; then
                printf "%s" "${ICON[1]} "
            elif [[ $VOLUME -ge 0 ]]; then
                printf "%s" "${ICON[2]} "
            fi

            printf "$VOLUME%%\n"
        fi
    fi
done

PS: А что на ЛОРе bash синтаксис не подсвечивается?

Исправление Loki13, :

А какие индикаторы? У меня, например, самописный(почти) bash-скрипт для waybar, и в нём всё отображается, потому как там в скрипте опрос идет раз в несколько секунд. Может проблема в индикаторах?

Скрипт вот такой

#!/bin/bash
snore() {
    local IFS
    [[ -n "${_snore_fd:-}" ]] || exec {_snore_fd}<> <(:)
    read -r ${1:+-t "$1"} -u $_snore_fd || :
}

DELAY=1.2

while snore $DELAY; do
    WP_OUTPUT=$(wpctl get-volume @DEFAULT_AUDIO_SINK@)

    if [[ $WP_OUTPUT =~ ^Volume:[[:blank:]]([0-9]+)\.([0-9]{2})([[:blank:]].MUTED.)?$ ]]; then
        if [[ -n ${BASH_REMATCH[3]} ]]; then
            printf "MUTE\n"
        else
            VOLUME=$((10#${BASH_REMATCH[1]}${BASH_REMATCH[2]}))

	  	    ICON=(
                ""
                ""
                ""
			    )

		    WP_DEFAULT=$(wpctl inspect @DEFAULT_AUDIO_SINK@)
			if [[ $WP_DEFAULT == *"Jabra EVOLVE 20 MS"* ]]; then
               ICON=(
                   ''
                   ''
                   ''
               )
			fi

			if [[ $VOLUME -eq 100 ]]; then
                printf "%s" "${ICON[0]}"
            elif [[ $VOLUME -gt 50 ]]; then
                printf "%s" "${ICON[0]} "
            elif [[ $VOLUME -gt 25 ]]; then
                printf "%s" "${ICON[1]} "
            elif [[ $VOLUME -ge 0 ]]; then
                printf "%s" "${ICON[2]} "
            fi

            printf "$VOLUME%%\n"
        fi
    fi
done

Исправление Loki13, :

А какие индикаторы? У меня, например, самописный(почти) bash-скрипт для waybar, и в нём всё отображается, потому как там в скрипте опрос идет раз в несколько секунд. Может проблема в индикаторах?

Скрипт вот такой

snore() {
    local IFS
    [[ -n "${_snore_fd:-}" ]] || exec {_snore_fd}<> <(:)
    read -r ${1:+-t "$1"} -u $_snore_fd || :
}

DELAY=1.2

while snore $DELAY; do
    WP_OUTPUT=$(wpctl get-volume @DEFAULT_AUDIO_SINK@)

    if [[ $WP_OUTPUT =~ ^Volume:[[:blank:]]([0-9]+)\.([0-9]{2})([[:blank:]].MUTED.)?$ ]]; then
        if [[ -n ${BASH_REMATCH[3]} ]]; then
            printf "MUTE\n"
        else
            VOLUME=$((10#${BASH_REMATCH[1]}${BASH_REMATCH[2]}))

	  	    ICON=(
                ""
                ""
                ""
			    )

		    WP_DEFAULT=$(wpctl inspect @DEFAULT_AUDIO_SINK@)
			if [[ $WP_DEFAULT == *"Jabra EVOLVE 20 MS"* ]]; then
               ICON=(
                   ''
                   ''
                   ''
               )
			fi

			if [[ $VOLUME -eq 100 ]]; then
                printf "%s" "${ICON[0]}"
            elif [[ $VOLUME -gt 50 ]]; then
                printf "%s" "${ICON[0]} "
            elif [[ $VOLUME -gt 25 ]]; then
                printf "%s" "${ICON[1]} "
            elif [[ $VOLUME -ge 0 ]]; then
                printf "%s" "${ICON[2]} "
            fi

            printf "$VOLUME%%\n"
        fi
    fi
done

Исправление Loki13, :

А какие индикаторы? У меня, например, самописный(почти) bash-скрипт для waybar, и в нём всё отображается, потому как там в скрипте опрос идет раз в несколько секунд. Может проблема в индикаторах?

Скрипт вот такой

snore() {
    local IFS
    [[ -n "${_snore_fd:-}" ]] || exec {_snore_fd}<> <(:)
    read -r ${1:+-t "$1"} -u $_snore_fd || :
}

DELAY=1.2

while snore $DELAY; do
    WP_OUTPUT=$(wpctl get-volume @DEFAULT_AUDIO_SINK@)

    if [[ $WP_OUTPUT =~ ^Volume:[[:blank:]]([0-9]+)\.([0-9]{2})([[:blank:]].MUTED.)?$ ]]; then
        if [[ -n ${BASH_REMATCH[3]} ]]; then
            printf "MUTE\n"
        else
            VOLUME=$((10#${BASH_REMATCH[1]}${BASH_REMATCH[2]}))

	  	    ICON=(
                ""
                ""
                ""
			    )

		    WP_DEFAULT=$(wpctl inspect @DEFAULT_AUDIO_SINK@)
			if [[ $WP_DEFAULT == *"Jabra EVOLVE 20 MS"* ]]; then
               ICON=(
                   ''
                   ''
                   ''
               )
			fi

			if [[ $VOLUME -eq 100 ]]; then
                printf "%s" "${ICON[0]}"
            elif [[ $VOLUME -gt 50 ]]; then
                printf "%s" "${ICON[0]} "
            elif [[ $VOLUME -gt 25 ]]; then
                printf "%s" "${ICON[1]} "
            elif [[ $VOLUME -ge 0 ]]; then
                printf "%s" "${ICON[2]} "
            fi

            printf "$VOLUME%%\n"
        fi
    fi
done

Исходная версия Loki13, :

А какие индикаторы? У меня, например, самописный(почти) bash-скрипт для waybar, и в нём всё отображается, потому как там в скрипте опрос идет раз в несколько секунд. Может проблема в индикаторах?