Com o script abaixo sob uma tecla de atalho, você pode fazer com que qualquer qualquer item do menu caia, se nenhum atalho existir para ele, incluindo o menu de som:
Naverdade,épraticamenteamesmarespostaquefoipostada
O que faz
O script simula uma movimentação do mouse para o menu ou ícone, clica e, em seguida, retorna o mouse para onde estava. Isso tudo acontece em uma fração de segundo, então você não vai notar nada.
Ele pode ser usado de forma flexível, para clicar na tela em qualquer posição, para ser alterado facilmente. Ele é executado com duas opções:
-
para definir (lembrar) a localização atual do mouse:
run_click -set
-
para clicar na última posição lembrada:
run_click -run
Se nenhuma posição foi definida, aparece uma mensagem zenity, convidando para definir uma posição
O script cria um arquivo oculto; ~/.run_click
onde armazena as últimas coordenadas lembradas.
Como usar
-
Instale
xdotool
sudo apt-get install xdotool
-
Copie o script abaixo em um arquivo vazio, salve-o como
open_menu
(sem extensão) em~/bin
. Crie o diretório, se necessário, e torne o script executável . - Se você acabou de criar
~/bin
, executesource ~/.profile
. - Teste os dois comandos, primeiro
open_menu -set
e, em seguida,open_menu -run
para ver se tudo funciona conforme o esperado. -
Agora crie dois atalhos: um para fazer o script lembrar a posição do seu item de menu, o segundo para realmente abrir o menu. escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione os comandos a duas combinações de teclas de atalho diferentes:
open_menu -set
e
open_menu -run
Agora coloque o mouse no ícone do menu de som e pressione a primeira tecla de atalho. A partir daí, você pode abrir o menu com a segunda tecla de atalho.
O script
#!/usr/bin/env python3
import subprocess
import time
import sys
import os
option = sys.argv[1]
datafile = os.path.join(os.environ["HOME"], ".run_click")
def get_mousepos():
cursordata = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()
return [d.split(":")[1] for d in cursordata[:2]]
if option == "-run":
try:
data = open(datafile).read()
coords = (" ").join([l for l in data.splitlines()])
except FileNotFoundError:
message = "Please run the command: 'run_click -set' first, to set the click position"
subprocess.Popen(["zenity", "--info", "--text", message])
else:
cmd1 = "xdotool mousemove "+coords; cmd2 = "xdotool click 1"; cmd3 = "xdotool mousemove "+(" ").join(get_mousepos())
for cmd in [cmd1, cmd2, cmd3]:
subprocess.Popen(["/bin/bash", "-c", cmd])
time.sleep(0.05)
elif option == "-set":
open(datafile, "wt").write(("\n").join(get_mousepos()))