Expandir o controle de volume da roda do mouse para todo o painel

1

Existe um aplicativo que eu perdi no Windows e é Volumouse . Simples, mas eficaz aplicativo que permite controlar o volume de toda a barra de tarefas (painel), não apenas do ícone do indicador. Especialmente se você usar mouse sem fio, você apreciará como é prático. Como não há solução semelhante para o Ubuntu, seria bom ter um script que o cobre.

    
por VRR 07.06.2015 / 12:56

2 respostas

1

Os dispositivos modernos de mouse têm mais de um id quando você executa a consulta xinput list . Este script irá cobrir esses dispositivos também, mas o primeiro id deve ser determinado. A seleção é baseada na diferença entre as saídas do comando xinput query-state <id> e a suposição de que um id terá alguma chave 245 na saída, daí a linha:

moid0=$(xinput query-state $moid1 | grep 245)

Para o seu dispositivo, a diferença entre as saídas pode variar, mas você pode usar outra palavra-chave que não seja 245 e alterar a linha.
Então o script é assim:

#!/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

Ele permitirá o controle de volume com a roda do mouse enquanto passa o mouse sobre o painel.

    
por VRR 07.06.2015 / 12:56
0

Além disso, você pode usar este script python para controlar o volume com a roda do mouse em qualquer lugar da tela. Apenas edite o código como quiser. link

    
por mnrl 10.09.2017 / 02:25