볼륨 알림이 팝업되도록 명령 줄을 통해 볼륨을 조정하십시오.


15

기본 볼륨 팝업 (노트북의 미디어 키를 누를 때 팝업되는 팝업)이 계속 표시되도록 명령 줄을 통해 시스템 볼륨을 조정하는 방법이 있습니까?

리모컨에 필요합니다. lircrc 파일과 irexec를 사용하여 실행됩니다.


답변:


16

xdotool 패키지를 설치하고 발행을 시도하십시오

xdotool key XF86AudioLowerVolume

xdotool key XF86AudioRaiseVolume

1
DISPLAY=:0lirc 사용자가 올바른 위치로 보낼 수 있으 려면 앞에 표시해야합니다 (또는 다른 경우 다른 표시). 그래도 아닐 수도 있습니다.
Oli

1
고마워요! DISPLAY 변수를 설정할 필요가 없었습니다.
Lincoln

1
--clearmodifiersUbuntu 키보드 단축키 설정에서 사용하려면 키 뒤에 매개 변수 를 사용해야 할 수도 있습니다 .
Pablo Bianchi

@Oli 예, SSH를 통해 볼륨을 변경하는 등의 작업이 필요합니다.
wjandrea

@PabloBianchi 내 경험상 Unity는 키를 실제로 쉽게 다시 매핑 할 필요가 --clearmodifiers없지만 xbindkeys에는 반드시 필요합니다.
wjandrea

3

아치 포럼에서 찾은이 스크립트에 대한 바로 가기를 바인딩 할 수 있습니다 (패키지 필요 libnotify-bin).

#!/bin/sh

usage="usage: $0 -c {up|down|mute} [-i increment] [-m mixer]"
command=
increment=5%
mixer=Master

while getopts i:m:h o
do case "$o" in
    i) increment=$OPTARG;;
    m) mixer=$OPTARG;;
    h) echo "$usage"; exit 0;;
    ?) echo "$usage"; exit 0;;
esac
done

shift $(($OPTIND - 1))
command=$1

if [ "$command" = "" ]; then
    echo "usage: $0 {up|down|mute} [increment]"
    exit 0;
fi

display_volume=0

if [ "$command" = "up" ]; then
    display_volume=$(amixer set $mixer $increment+ unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi

if [ "$command" = "down" ]; then
    display_volume=$(amixer set $mixer $increment- unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi

icon_name=""

if [ "$command" = "mute" ]; then
    if amixer get Master | grep "\[on\]"; then
        display_volume=0
        icon_name="notification-audio-volume-muted"
        amixer set $mixer mute
    else
        display_volume=$(amixer set $mixer unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
    fi
fi

if [ "$icon_name" = "" ]; then
    if [ "$display_volume" = "0" ]; then
        icon_name="notification-audio-volume-off"
    elif [ "$display_volume" -lt "33" ]; then
        icon_name="notification-audio-volume-low"
    elif [ "$display_volume" -lt "67" ]; then
        icon_name="notification-audio-volume-medium"
    else
        icon_name="notification-audio-volume-high"
    fi
fi
notify-send " " -i $icon_name -h int:value:$display_volume -h string:synchronous:volume

우분투 10.10에서 잘 작동하는 것 같습니다.


1

음량 조절

amixer음량 조절에 사용할 수 있습니다 . 예 :

amixer set 'Master' 50%
amixer set 'Master' 10%+
amixer set 'Master' 2dB-

-c 1를 들어 두 번째 사운드 카드를 사용하여 사운드 카드를 설정해야 할 수도 있습니다 ( 참조) man amixer.

소리 재생

사운드는 같은 플레이어 사용하여 재생할 수 있습니다 aplay또는 paplay, 예를

paplay /usr/share/sounds/freedesktop/stereo/audio-volume-change.oga

: 당신은이 질문에 대해 살펴해야 할 수 있습니다 I 시스템의 소리를 찾을 수 있습니까를?

화면 알림 표시

X OSD (On Screen Display) 라이브러리 XOSD를 사용하여 화면 알림을 재현 할 수 있습니다. 패키지가 호출 xosd-bin되고 명령 osd_cat이 화면에 텍스트, 상태 표시 줄 등을 표시하는 데 사용됩니다.

osd_cat -b percentage -P 20 -T Status: -f "-adobe-helvetica-bold-*-*--34-*-*-*-*"

표시

여기에 이미지 설명을 입력하십시오

옵션과 예제 및 기타 정보 는 이 독일어 위키 페이지 를 참조하십시오 man osd_cat.


0

xmacro를 설치하고 .lircrc에 다음 줄을 추가 했습니다 .

begin
        prog = irexec
        button = KEY_VOLUMEUP
        repeat = 1
        delay = 2
        config = echo KeyStrPress XF86AudioRaiseVolume KeyStrRelease XF86AudioRaiseVolume | xmacroplay $DISPLAY
end
begin
        prog = irexec
        button = KEY_VOLUMEDOWN
        repeat = 1
        delay = 2
        config = echo KeyStrPress XF86AudioLowerVolume KeyStrRelease XF86AudioLowerVolume | xmacroplay $DISPLAY
end
begin
        prog = irexec
        button = KEY_MUTE
        config = echo KeyStrPress XF86AudioMute KeyStrRelease XF86AudioMute | xmacroplay $DISPLAY
end

0

이것은 htorque 스크립트 가 게시 한 개선 된 버전입니다 .

14.04에서 작동합니다. 16.04 이상에서 작동하는지 알려주세요.

libnotify-bin설치 가 필요합니다 .

#!/bin/sh
# Adjust the volume, play a sound, and show a notification.
#
# Replacement for default Ubuntu volume adjustment behaviour.
#
# Based on /ubuntu//a/12769/301745

command=""
device="pulse"
display_volume=0
icon_name="error"
increment=5
mixer="Master"
usage="usage: $0 [-d device] [-i increment] [-m mixer] (up|down|mute)"

# For compatibility with SSH sessions.
export DISPLAY=:0

_amixer(){
    # amixer alias
    local set_get="$1"
    shift
    amixer -D "$device" "$set_get" "$mixer" "$@"
}

_get_display_volume(){
    # grep alias
    grep -Pom 1 '(?<=\[)[0-9]+(?=%\])'
}

while getopts d:hi:m: opt; do
    case "$opt" in
        d)
            device="$OPTARG"
            ;;
        h)
            echo "$usage"
            exit 0
            ;;
        i)
            increment="$OPTARG"
            ;;
        m)
            mixer="$OPTARG"
            ;;
        ?)
            echo "$usage"
            exit 1
            ;;
    esac
done

shift "$(($OPTIND - 1))"
command="$1"

case "$command" in
    down)
        display_volume="$(
            _amixer set "$increment%-" unmute |
                _get_display_volume
            )"
        ;;
    mute)
        if _amixer get | grep -q "\[on\]"; then
            display_volume=0
            icon_name="notification-audio-volume-muted"
            _amixer set mute > /dev/null
        else
            display_volume="$(
                _amixer set unmute |
                    _get_display_volume
                )"
        fi
        ;;
    up)
        display_volume="$(
            _amixer set "$increment%+" unmute |
                _get_display_volume
            )"
        ;;
    *)
        echo "$usage"
        exit 1
        ;;
esac

if [ "$icon_name" = "error" ]; then
    if [ "$display_volume" = "0" ]; then
        icon_name="notification-audio-volume-off"
    elif [ "$display_volume" -lt "33" ]; then
        icon_name="notification-audio-volume-low"
    elif [ "$display_volume" -lt "67" ]; then
        icon_name="notification-audio-volume-medium"
    else
        icon_name="notification-audio-volume-high"
    fi

    # In a subshell in the background to minimize latency.
    ( canberra-gtk-play --id=audio-volume-change & )
fi

notify-send "Volume: $display_volume%" -i "$icon_name" -h "string:synchronous:volume" -h "int:value:$display_volume"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.