Toggle menu lxpanelctrl no lubuntu?

5

Eu quero que minha chave do Windows (ou super_l) alterne o menu lubuntu. Eu sou capaz de abri-lo com a chave do windows depois de adicionar a chave de ligação da questão abaixo, mas até agora eu não encontrei uma maneira de fechá-lo pressionando a mesma tecla novamente. Um comentário na pergunta aqui perguntado sobre a mesma coisa em novembro de 2011, mas depois de googling eu não encontrei uma solução. Alguém sabe se é possível?

Ligue a tecla Windows ao menu Iniciar do Lubuntu

    
por L42 15.08.2015 / 12:19

1 resposta

3

Alternativa para alternar o menu

Esta resposta é apenas "metade" da resposta que foi postada aqui . Como essa pergunta estava em Gnome e marcada da mesma forma, acho que é legítimo publicar uma versão levemente editada aqui para cobrir Lubuntu ( lxde ) ou qualquer outro gerenciador de janelas.

Eu testei em Lubuntu 14.04 e (como esperado) fiz exatamente o que deveria fazer.

A solução é, na verdade, um script que você pode facilmente configurar para automaticamente (virtualmente) clicar em qualquer posição na tela, incluindo o menu. Já que clicar no menu uma vez irá abri-lo, clicando nele novamente irá fechá-lo, colocando o comando sob a sua chave, como você fez, fará exatamente o que você está procurando.

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()))

Sobre o roteiro; como configurar

  1. O script precisa de xdotool :

    sudo apt-get install xdotool
    
  2. Copie o script acima em um arquivo vazio, salve-o como click_menu.py

  3. Agora você precisa fazer o script lembrar a posição do menu para clicar (virtualmente):

    O script precisa ser executado com a opção -set , com o mouse na posição:

    • abra uma janela de terminal, digite o comando:

      sleep 5 && python3 /path/to/click_menu.py -set
      
    • posicione o mouse imediatamente acima do menu (não clique)

    • após os 5 segundos terem passado, a posição do menu é "lembrada". A posição é gravada em um arquivo invisível, então você só precisará fazer isso uma vez.
  4. Teste se tudo funciona bem com o comando:

    python3 /path/to/click_menu.py -run
    

    O menu deve abrir, conforme mostrado na imagem acima.

  5. Se tudo funcionar, adicione o comando:

    python3 /path/to/click_menu.py -run
    

    para a chave, como você fez com o outro comando que você mencionou na sua pergunta. Agora, pressionar a tecla deve alternar o menu.

por Jacob Vlijm 15.08.2015 / 14:45

Tags