如何允许脉冲音频脚本通过bash将音量提高100%以上

如何允许脉冲音频脚本通过bash将音量提高100%以上

本文介绍了如何允许脉冲音频脚本通过bash将音量提高100%以上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用此脚本通过keybindigs更改Pulseaudio的音量,但是它具有0%100%限制.

I'm using this script to change volume in pulseaudio through keybindigs, but it has a 0% to 100% limit.

由于pulseaudio允许音量增大到100%(笔记本电脑上仍然很小),因此我想对其进行调整以允许140%150%的最大音量.

As pulseaudio allows volume to increase over 100% (what is still to low on my notebook), I want to adjust it to allow 140% or 150% max volume.

请注意,仅通过注释行105 ~ 111即可运行脚本或运行脚本,但脚本没有限制(这可能会破坏我的扬声器).我真正想要的是在100%上设置可配置的限制.

Note that by just commenting lines 105 ~ 111 the scripts works or that, but without a limit value (what can wreck my speakers). What I really want is to set a configurable limit over 100%.

实际上,这是一个bash问题,而不是pulseaudio.

This is, actualy, more a bash question than a pulseaudio.

具有完整脚本的要点

推荐答案

我设法通过添加新变量和一些数学来更改它.

I managed to change it by adding an new variable and to some math.

OVERMAX值(调整为所需的最大百分比)用于设置新的百分比值.因此130%变为100%.

The OVERMAX value (adjust to desired max percentage) is used to set a new percentage value. So 130% becomes 100%.

#!/bin/sh
#   pulsevol.sh
#   PulseAudio Volume Control Script
#   Original 2010-05-20 - Gary Hetzel <[email protected]>
#
#   Modified 2010-10-18 by Fisslefink <[email protected]>
#    - Added support for multiple sinks and Ubuntu libnotify OSD
#
#   Usage:  pulsevol.sh [sink_index] [up|down|min|max|overmax|toggle|mute|unmute]
#

EXPECTED_ARGS=2
E_BADARGS=65

if [ $# -ne $EXPECTED_ARGS ]
then
    echo "Usage: `basename $0` [sink_index] [up|down|min|max|overmax|toggle|mute|unmute]"
    exit $E_BADARGS
fi

SINK=$1
STEP=5
MAXVOL=65537 # let's just assume this is the same all over
#MAXVOL=`pacmd list-sinks | grep "volume steps" | cut -d: -f2 | tr -d "[:space:]"`
OVERMAX=130  # how much the volume can raise over 100%

getperc(){
    VOLPERC=`pacmd list-sinks | grep "volume" | head -n1 | cut -d: -f3 | cut -d% -f1 | tr -d "[:space:]"`
}

getperc;

up(){
    VOLSTEP="$(( $VOLPERC+$STEP ))";
}

down(){
    VOLSTEP="$(( $VOLPERC-$STEP ))";
}

max(){
    pacmd set-sink-volume $SINK $MAXVOL > /dev/null
}

min(){
    pacmd set-sink-volume $SINK 0 > /dev/null
}

overmax(){
    SKIPOVERCHECK=1
    if [ $VOLPERC -lt 100 ]; then
        max;
        exit 0;
    fi
    up
}

mute(){
    pacmd set-sink-mute $SINK 1 > /dev/null
    notify-send " " -i "notification-audio-volume-muted" -h int:value:0 -h string:synchronous:volume
}

unmute(){
    VOLSTEP="$(( $VOLPERC-0 ))";
    SKIPOVERCHECK=1
    pacmd set-sink-mute $SINK 0 > /dev/null
}

toggle(){
    M=`pacmd list-sinks | grep "muted" | cut -d: -f2 | tr -d "[:space:]"`
    if [ "$M" = "no" ]; then
        mute
        exit 0;
    else
        unmute;
    fi
}

case $2 in
up)
    up;;
down)
    down;;
max)
    max
    exit 0;;
min)
    min
    exit 0;;
overmax)
    overmax;;
toggle)
    toggle;;
mute)
    mute;
    exit 0;;
unmute)
    unmute;;
*)
    echo "Usage: `basename $0` [sink_index] [up|down|min|max|overmax|toggle|mute|unmute]"
    exit 1;;
esac

VOLUME="$(( ($MAXVOL/100) * $VOLSTEP ))"
MAXCHECK="$(( $MAXVOL * $OVERMAX / 100  ))"

if [ -z $SKIPOVERCHECK ]; then
    if [ $VOLUME -gt $MAXCHECK ]; then
        VOLUME=$MAXCHECK
    elif [ $VOLUME -lt 0 ]; then
        VOLUME=0
    fi
fi

pacmd set-sink-volume $SINK $VOLUME > /dev/null

VOLPERC=`pacmd list-sinks | grep "volume" | head -n1 | cut -d: -f3 | cut -d% -f1 | tr -d "[:space:]"`
VOLPERC="$(( $VOLPERC * 100 / $OVERMAX))"

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

notify-send " " -i $icon_name -h int:value:$VOLPERC -h string:synchronous:volume

要点: https://gist.github.com/paulodiovani/67906a5bf0392de51eca

这篇关于如何允许脉冲音频脚本通过bash将音量提高100%以上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-01 08:53