将鼠标滚轮音量控制扩展到整个面板

将鼠标滚轮音量控制扩展到整个面板

我从 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。

看这个 : https://github.com/pzim-devdata/volumouse:)

相关内容