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

保罗迪奥瓦尼

使用这个脚本来更改通过keybindigs中的PulseAudio音量,但它有一个0%100%极限。

由于pulseaudio允许音量增大100%(笔记本电脑上的音量仍然很低),因此我想将其调整为允许140%150%最大音量。

请注意,仅通过注释行即可105 ~ 111使脚本起作用或起作用,但没有限制值(这会破坏我的扬声器)。我真正想要的是对设置可配置的限制100%

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

要点与完整的脚本

保罗迪奥瓦尼

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

OVERMAX值(调整为所需的最大百分比)用于设置新的百分比值。如此130%成为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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更改键盘音量拨盘(Linux Mint,MATE)的绑定,以便可以将音量提高到100%以上?

来自分类Dev

如何通过命令将Xubuntu上的音量增加到100%以上?

来自分类Dev

如何停止脉冲回避(降低)图腾音频音量?

来自分类Dev

如何在Kubuntu KDE上将音量提高到100%以上

来自分类Dev

如何将 MongoDB CPU 提高到 100% 以上

来自分类Dev

在Ubuntu GNOME上将音量提高到100%以上的问题

来自分类Dev

如何捕捉打开对话框“将音量提高到安全水平以上”?

来自分类Dev

KDE应用程序显然在Debian Stretch / SID上将脉冲音频音量重置为100%

来自分类Dev

将音量提高X分贝并重写音频文件

来自分类Dev

如何从终端选择输出并设置脉冲音频音量控制的配置?

来自分类Dev

针对特定应用将音量调节至100%以上

来自分类Dev

我可以在Linux中将音量提高到100%以上吗?

来自分类Dev

降低或增加所有输出上的脉冲音频音量

来自分类Dev

降低或增加所有输出上的脉冲音频音量

来自分类Dev

脉冲音频音量控制忘记设置

来自分类Dev

FFmpeg将音频淡入音量

来自分类Dev

如何将脉冲音频设备路由到Alsa回送(虚拟麦克风)?

来自分类Dev

如何将脉冲音频设备路由到Alsa回送(虚拟麦克风)?

来自分类Dev

如何设置音频对象的音量?

来自分类Dev

如何通过SQLPlus将SQL脚本附加到bash循环?

来自分类Dev

如何通过bash脚本将Ram写入文件

来自分类Dev

如何通过cpp程序将参数传递给bash脚本

来自分类Dev

如何通过Dockerfile将参数传递给bash脚本

来自分类Dev

如何通过bash脚本将DNS插入/ etc / hosts?

来自分类Dev

将音量设置为 100% 以上会伤害我的扬声器吗?

来自分类Dev

AudioContext:将音量提高x分贝

来自分类Dev

在统一控制中心声音(不是脉冲音频)上控制ALSA音量

来自分类Dev

如何在Windows中通过python脚本下载YouTube音频

来自分类Dev

如何使用Juce加载脉冲响应的音频文件

Related 相关文章

  1. 1

    如何更改键盘音量拨盘(Linux Mint,MATE)的绑定,以便可以将音量提高到100%以上?

  2. 2

    如何通过命令将Xubuntu上的音量增加到100%以上?

  3. 3

    如何停止脉冲回避(降低)图腾音频音量?

  4. 4

    如何在Kubuntu KDE上将音量提高到100%以上

  5. 5

    如何将 MongoDB CPU 提高到 100% 以上

  6. 6

    在Ubuntu GNOME上将音量提高到100%以上的问题

  7. 7

    如何捕捉打开对话框“将音量提高到安全水平以上”?

  8. 8

    KDE应用程序显然在Debian Stretch / SID上将脉冲音频音量重置为100%

  9. 9

    将音量提高X分贝并重写音频文件

  10. 10

    如何从终端选择输出并设置脉冲音频音量控制的配置?

  11. 11

    针对特定应用将音量调节至100%以上

  12. 12

    我可以在Linux中将音量提高到100%以上吗?

  13. 13

    降低或增加所有输出上的脉冲音频音量

  14. 14

    降低或增加所有输出上的脉冲音频音量

  15. 15

    脉冲音频音量控制忘记设置

  16. 16

    FFmpeg将音频淡入音量

  17. 17

    如何将脉冲音频设备路由到Alsa回送(虚拟麦克风)?

  18. 18

    如何将脉冲音频设备路由到Alsa回送(虚拟麦克风)?

  19. 19

    如何设置音频对象的音量?

  20. 20

    如何通过SQLPlus将SQL脚本附加到bash循环?

  21. 21

    如何通过bash脚本将Ram写入文件

  22. 22

    如何通过cpp程序将参数传递给bash脚本

  23. 23

    如何通过Dockerfile将参数传递给bash脚本

  24. 24

    如何通过bash脚本将DNS插入/ etc / hosts?

  25. 25

    将音量设置为 100% 以上会伤害我的扬声器吗?

  26. 26

    AudioContext:将音量提高x分贝

  27. 27

    在统一控制中心声音(不是脉冲音频)上控制ALSA音量

  28. 28

    如何在Windows中通过python脚本下载YouTube音频

  29. 29

    如何使用Juce加载脉冲响应的音频文件

热门标签

归档