कमांडलाइन के माध्यम से वॉल्यूम समायोजित करें ताकि वॉल्यूम पॉप अप हो जाए


15

क्या कमांडलाइन के माध्यम से सिस्टम वॉल्यूम को समायोजित करने का एक तरीका है ताकि डिफ़ॉल्ट वॉल्यूम पॉपअप (जो कि नोटबुक पर मीडिया कुंजी दबाते समय पॉप अप हो) को अभी भी दिखाया गया है।

मुझे अपने रिमोट कंट्रोल के लिए इसकी आवश्यकता है। यह एक lircrc फ़ाइल और irexec का उपयोग करके चलाया जाएगा।


जवाबों:


16

Xdotool पैकेज स्थापित करें , और जारी करने का प्रयास करें

xdotool key XF86AudioLowerVolume

तथा

xdotool key XF86AudioRaiseVolume

1
आपके द्वारा DISPLAY=:0सही जगह पर भेजने में सक्षम होने के लिए lirc उपयोगकर्ता के लिए आपको (या अन्य यदि आपका प्रदर्शन अलग है) प्रीपेंड करने की आवश्यकता हो सकती है। हालांकि नहीं हो सकता है।
ओली

1
आपका बहुत बहुत धन्यवाद! मुझे DISPLAY वैरिएबल सेट करने की आवश्यकता नहीं थी ...
लिंकन

1
--clearmodifiersउबंटू कीबोर्ड शॉर्टकट सेटिंग्स पर इसका उपयोग करने के लिए आपको कुंजी के बाद पैरामीटर का उपयोग करने की आवश्यकता हो सकती है ।
पाब्लो बियांची

@ ओली, आपको इसकी आवश्यकता होगी, उदाहरण के लिए, SSH पर वॉल्यूम बदलने के लिए।
वेजेंड्रिया

@PabloBianchi मेरे अनुभव में, एकता वास्तव में आसानी से चाबियाँ छोड़ देती है, इसके लिए कोई ज़रूरत नहीं है --clearmodifiers, हालांकि आपको निश्चित रूप से xbindkeys की आवश्यकता है।
वेजेंड्रिया

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

Ubuntu 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

आप इस प्रश्न पर एक नज़र रखना चाह सकते हैं: मुझे सिस्टम ध्वनियां कहां मिलेंगी?

ऑन-स्क्रीन अधिसूचना प्रदर्शित करें

आप X ऑन-स्क्रीन डिस्प्ले लाइब्रेरी 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

यह पोस्ट की गई स्क्रिप्ट हॉर्केट का एक उन्नत संस्करण है ।

यह मेरे लिए 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"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.