通过命令行调整音量,以便弹出音量通知

通过命令行调整音量,以便弹出音量通知

有没有办法通过命令行调整系统音量,以便仍然显示默认音量弹出窗口(按下笔记本电脑上的媒体键时弹出的窗口)。

我的远程控制需要这个。它将使用 lircrc 文件和 irexec 运行。

答案1

安装工具包,并尝试发出

xdotool key XF86AudioLowerVolume

xdotool key XF86AudioRaiseVolume

答案2

你可以将快捷方式绑定到我找到的这个脚本在 Arch 论坛中(需要包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 中似乎运行良好。

答案3

控制音量

您可以使用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了解更多信息。

答案4

我安装了 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

相关内容