Ses düzeyi bildiriminin görünmesi için ses seviyesini komut satırı üzerinden ayarlayın


15

varsayılan ses düzeyi açılır penceresinin (dizüstü bilgisayarlardaki ortam tuşlarına basıldığında açılan) hala görüntülenmesi için sistem ses düzeyini komut satırı aracılığıyla ayarlamanın bir yolu vardır.

Uzaktan kumandam için buna ihtiyacım var. Bir lircrc dosyası ve irexec kullanılarak çalıştırılır.


Yanıtlar:


16

Xdotool paketini kurun ve vermeyi deneyin

xdotool key XF86AudioLowerVolume

ve

xdotool key XF86AudioRaiseVolume

1
Sen o başa eklemek gerekebilir DISPLAY=:0doğru yere göndermek edebilmek için (görünen farklı ise veya başka bir) lirc kullanıcı için. Yine de olmayabilir.
Oli

1
Çok teşekkürler! DISPLAY değişkenini ayarlamam gerekmedi ...
Lincoln

1
--clearmodifiersUbuntu klavye kısayolları ayarlarında kullanmak için parametreden sonra parametreyi kullanmanız gerekebilir .
Pablo Bianchi

@Oli Evet, örneğin ses seviyesini SSH üzerinden değiştirmek için buna ihtiyacınız olacak.
wjandrea

@PabloBianchi Benim tecrübelerime göre, Unity anahtarları gerçekten kolayca hatırlatıyor, gerek yok --clearmodifiers, ancak kesinlikle xbindkeys için ihtiyacınız var.
wjandrea

3

Arch forumlarında bulduğum bu komut dosyasına bir kısayol bağlayabilirsiniz (pakete ihtiyaç duyar 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

Ubuntu 10.10'da iyi çalışıyor gibi görünüyor.


1

Ses Seviyesini Kontrol Et

amixerSes seviyesini kontrol etmek için kullanabilirsiniz , örn.

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

Ses kartını örneğin -c 1ikinci ses kartı için kullanarak ayarlamanız gerekebilir , bkz man amixer.

Sesi Oynat

Sesler, aplayveya gibi bir oynatıcı kullanılarak çalınabilir paplay, örn.

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

Şu soruya bir göz atmak isteyebilirsiniz: Sistem seslerini nerede bulabilirim?

Ekran Bildirimini Görüntüle

X Bildirimi X Ekran Menüsü kitaplığını kullanarak ekran bildirimini yeniden oluşturabilirsiniz. Paket çağrılır xosd-binve komut osd_catekranda metin, durum çubukları vb. Görüntülemek için kullanılır.

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

görüntüler

resim açıklamasını buraya girin

Seçenekler ve örnekler ve daha fazlası için bu Almanca wiki sayfasına bakın man osd_cat.


0

Ben xmacro yükledim ve .lircrc için aşağıdaki satırları ekledim :

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

Bu yayınlanan htorque komut dosyasının geliştirilmiş bir sürümüdür .

Benim için 14.04'te çalışıyor. 16.04 veya daha yeni bir sürümde çalışıp çalışmadığını bize bildirin.

Yüklenmesi libnotify-bingerekir.

#!/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"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.