在 lubuntu 中切换 lxpanelctrl 菜单?

在 lubuntu 中切换 lxpanelctrl 菜单?

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

将 Windows 键绑定到 Lubuntu 开始菜单

答案1

切换菜单的另一种方法

这个答案只是发布答案的“一半”这里。由于该问题出现在 上Gnome,并且带有类似标签,我认为有必要在此发布一个略加修改的版本,以涵盖Lubuntu( lxde) 或任何其他窗口管理器。

我在 上对它进行了测试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
      
    • 立即将鼠标置于菜单上方(不要单击)

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

    python3 /path/to/click_menu.py -run
    

    在此处输入图片描述

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

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

    python3 /path/to/click_menu.py -run
    

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

相关内容