我从 Windows 中错过了一个应用程序,它是体积。简单而有效的应用程序,可让您从整个任务栏(面板)控制音量,而不仅仅是指示器图标。特别是如果您使用无线鼠标,您会欣赏它的实用性。由于 Ubuntu 没有类似的解决方案,因此最好有一个涵盖它的脚本。
答案1
现代鼠标设备有多个ID当您运行查询时xinput list
。此脚本也将涵盖这些设备,但首先要正确ID必须确定。选择基于xinput query-state <id>
命令输出之间的差异和假设ID会有一些键 245在输出中,因此有以下行:
moid0=$(xinput query-state $moid1 | grep 245)
对于您的设备,输出之间的差异可能会有所不同,但您可以使用另一个关键字 not245
并更改行。
因此脚本如下所示:
#!/bin/bash
vctrl1 () {
xinput test $mo | while read line
do
eval $(xdotool getmouselocation --shell)
if [ $Y -gt 24 ]; then break
elif [ "$wnn" != "Desktop" ] && [ $sd3 == $wg2 ]; then break
elif [[ $line == "button release 5" ]] ; then
xdotool key XF86AudioLowerVolume
elif [[ $line == "button release 4" ]] ; then
xdotool key XF86AudioRaiseVolume
fi
done
}
sd1=$(xdpyinfo | grep dimensions)
sd2="${sd1#*dimensions: }"
sd3="${sd2%% pixels*}"
while :
do
moid=$(xinput list | grep -iPo 'mouse.*id=\K\d+')
eval $(xdotool getmouselocation --shell)
if [[ $Y -le 24 && ! -z $moid ]]; then
wg1=$(xdotool getactivewindow getwindowgeometry)
wg2="${wg1#*Geometry: }"
wnn=$(xdotool getactivewindow getwindowname)
read moid1 moid2 < <(echo $moid)
moid0=$(xinput query-state $moid1 | grep 245)
if [[ ! -z $moid0 ]]; then mo=$moid2 && vctrl1
else mo=$moid1 && vctrl1
fi
elif [[ -z $moid ]]; then sleep 3
fi
sleep 0.2
done
当鼠标悬停在面板上时,它将允许使用鼠标滚轮控制音量。
答案2
您还可以使用此 Python 脚本从屏幕的任何位置使用鼠标滚轮控制音量。只需根据需要编辑代码即可。 https://github.com/mnural/pyvolume
答案3
如果您想使用鼠标滚轮更改音量,我已经根据您的需要通过配置选项制作了适用于 Linux 的 Volumouse。