Chave para expandir o menu Application no Gnome-Classic para 14.04?

3
  1. No Gnome-Classic (metacity) em 14.04,

    • há uma chave para invocar o menu Aplicativos?
    • existe uma chave para alternar entre os itens no painel superior, como o menu Aplicativos, Locais, ícone sem fio, bateria, hora, menu de desligamento / suspensão / logout / bloqueio, ...?
  2. Se possível, como devo adicionar a chave para o menu do aplicativo?

    Para adicionar uma chave para trazer o menu do aplicativo, qual é o comando para fazer isso?

  3. Ao contrário do link , não há chave para o Menu de aplicativos no meu caso.

    Meu 14.04 vem com o compiz + unity e, em seguida, instalo metacity + gnomeclassic. Eles compartilham as mesmas configurações de teclado? É que a razão pela qual eu não tenho chave para o menu do aplicativo?

Obrigado!

    
por Tim 04.04.2015 / 15:21

1 resposta

3

Com uma solução alternativa, isso pode ser feito muito bem. Usando xdotool , você pode mover o mouse até a posição do menu Aplicativos, abri-lo e voltar automaticamente para sua posição original.

Como tudo acontece muito rapidamente e o mouse é movido de volta para sua posição original, você não notará isso.

OscriptassumequeomenuAplicativosestánocantosuperioresquerdo,comonaimagemacima.Senãoforesseocaso,ascoordenadasemcmd1devemseralteradas.

#!/usr/bin/env python3 import subprocess import time cursordata = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split() loc = [d.split(":")[1] for d in cursordata[:2]] cmd1 = "xdotool mousemove 10 5"; cmd2 = "xdotool click 1"; cmd3 = "xdotool mousemove "+(" ").join(loc) for cmd in [cmd1, cmd2, cmd3]: subprocess.Popen(["/bin/bash", "-c", cmd]) time.sleep(0.05)

Em detalhes:

busque a posição atual do mouse:

cursordata = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()

Analise a saída (x / y) em coordenadas:

loc = [d.split(":")[1] for d in cursordata[:2]]

Execute os comandos [cmd1, cmd2, cmd3] para subsequentemente:

  • mova o mouse para o menu "Aplicativos"
  • clique em
  • mova o mouse de volta para onde quer que esteja
for cmd in [cmd1, cmd2, cmd3]:
    subprocess.Popen(["/bin/bash", "-c", cmd])
    time.sleep(0.05)

Como usar o script

  1. Instale xdotool :

    sudo apt-get install xdotool
    
  2. Cole o script em um arquivo vazio, salve-o como open_appmenu.py

  3. Teste-o com o comando:

    python3 /path/to/open_appmenu.py
    
  4. Se tudo funcionar bem, adicione-o a uma tecla de atalho: escolha: Configurações do sistema > "Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione o comando:

    python3 /path/to/open_appmenu.py
    

Mover para os outros itens

Depois de abrir o menu Aplicativos, basta alternar para o próximo item com as teclas de seta.

Editar: versão generalizada

Abaixo, uma versão do script que pode ser usada de forma flexível, para clicar na tela em qualquer posição, para ser alterada facilmente. O script pode ser executado com duas opções:

  1. para definir (lembrar) a localização atual do mouse:

    run_click -set
    
  2. para clicar na última posição lembrada:

    run_click -run
    

Se nenhuma posição foi definida, uma mensagem de zenity será exibida, convidando para definir uma posição:

Oscriptcriaumarquivooculto;~/.run_clickondearmazenaasúltimascoordenadaslembradas.

Comoteste,colocoosdoiscomandossobascombinaçõesdeteclas:Ctrl+Alt+ReCtrl+Alt+A,facilitandoamudançadaposiçãodocliquenolocal.

Comoconfigurar

  1. comonoprimeiroscript,instalexdotool:

    sudoapt-getinstallxdotool
  2. copieoscriptabaixoemumarquivovazio,salve-ocomorun_click(semextensão)em~/bin(crieodiretório,senecessário)etorneoscriptexecutável.

  3. Sevocêacaboudecriar~/bin,executesource~/.profile.
  4. Testeosdoiscomandos,primeirorun_click-sete,emseguida,run_click-runparaversetudofuncionaconformeoesperado.
  5. Adicioneosdoiscomandosaduascombinaçõesdeteclasdiferentes:escolha:Configuraçõesdosistema>"Teclado" > "Atalhos" > "Atalhos personalizados". Clique no botão "+" e adicione os comandos.

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()))
    
por Jacob Vlijm 25.04.2015 / 11:44