在lubuntu中切换lxpanelctrl菜单?

我希望我的Windows键(或super_l)切换lubuntu菜单。 我可以在从下面的问题中添加键绑定后使用Windows键打开它,但到目前为止,我还没有找到通过再次按相同键来关闭它的方法。 这个问题的评论在2011年11月询问了同样的事情,但谷歌搜索后我还没有找到解决方案。 有谁知道这是否可能?

将Windows键绑定到Lubuntu开始菜单

切换菜单的替代方法

这个答案只是这里发布的答案的“一半”。 由于这个问题是关于Gnome ,并且同样被标记,我认为在这里发布一个略微编辑的版本来覆盖Lubuntulxde )或任何其他窗口管理器是合理的。

我在Lubuntu 14.04上进行了测试,并且(正如预期的那样)完成了应该做的事情。

该解决方案实际上是一个脚本,您可以轻松设置为自动(虚拟)单击屏幕上的任何位置,包括菜单。 由于单击菜单一次将打开它,再次单击它将关闭它,将命令放在您的键下,就像您一样,将完成您所追求的。

剧本

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

关于脚本; 如何设置

  1. 该脚本需要xdotool

     sudo apt-get install xdotool 
  2. 将上面的脚本复制到一个空文件中,将其另存为click_menu.py

  3. 现在你需要让脚本记住菜单位置(虚拟)点击:

    该脚本需要使用选项-set运行,鼠标处于适当位置:

    • 打开终端窗口,输入命令:

       sleep 5 && python3 /path/to/click_menu.py -set 
    • immediatley将鼠标放在菜单上方(不要点击)

    • 经过5秒后,菜单位置被“记住”。 该位置被写入一个不可见的文件,因此您只需要执行一次。
  4. 使用该命令测试是否一切正常:

     python3 /path/to/click_menu.py -run 

    在此处输入图像描述

    菜单应该打开,如上图所示。

  5. 如果一切正常,请添加命令:

     python3 /path/to/click_menu.py -run 

    关键,就像你在问题中提到的其他命令一样。 现在按下键应该切换菜单。