在 lubuntu 中切换 lxpanelctrl 菜单?

L42*_*L42 5 lubuntu lxde

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

将 windows 键绑定到 Lubuntu 开始菜单

Jac*_*ijm 3

切换菜单的替代方法

这个答案只是此处发布的答案的“一半” 。由于该问题已在 上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()))
Run Code Online (Sandbox Code Playgroud)

关于剧本;如何设置

  1. 该脚本需要xdotool

    sudo apt-get install xdotool
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将上面的脚本复制到一个空文件中,另存为click_menu.py

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

    该脚本需要使用选项 运行-set,并将鼠标放置在以下位置:

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

      sleep 5 && python3 /path/to/click_menu.py -set
      
      Run Code Online (Sandbox Code Playgroud)
    • 立即将鼠标置于菜单上方(不要单击)

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

    python3 /path/to/click_menu.py -run
    
    Run Code Online (Sandbox Code Playgroud)

    在此输入图像描述

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

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

    python3 /path/to/click_menu.py -run
    
    Run Code Online (Sandbox Code Playgroud)

    到关键,就像您对问题中提到的其他命令所做的那样。现在按下该键应该会切换菜单。