任何方式使用快捷方式从Windows栏打开窗口

有没有办法使用快捷方式从Windows栏打开窗口? 例如,打开左侧第一个窗口Ctrl + 1,打开左侧第二个窗口Ctrl + 2。

我现在使用的是xfce4,但如果xfce4不可能,是否有其他桌面环境允许这样做?

由于我为同一个应用程序打开了几个窗口,因此我不会搜索与应用程序相关的排序,但正如我在下面所说的那样。

在您的系统上使用一个小脚本和一个小手术,它可以完全按照您的描述进行排列。

配料

  1. wmctrl ; 它可能需要安装。
  2. 下面的脚本
  3. xprop ,获取窗口属性。 这已经安装在您的系统上。
  4. xfce面板设置中的设置更改
  5. 其他键盘快捷键

如何设置

  • 安装wmctrl

     sudo apt-get install wmctrl 
  • 创建一个目录~/bin/home//bin )。 将下面的脚本复制到一个空文件中,将其保存为~/bin panel_navigate (无扩展名)并使其可执行

  • 更改面板设置:
    转到设置管理器>“面板”>“项目”(选项卡)>“窗口按钮”>

    • “排序顺序”>选择: 时间戳
    • “窗口分组”>选择:“从不”
    • 确保选中“显示所有工作空间或视口中的窗口”

    在此处输入图像描述

  • 添加键盘快捷键:
    转到设置管理器>“键盘”>“应用程序快捷方式”,选择“添加”。 添加命令:

     panel_navigate 1 

    将其设置为组合键Ctrl + 1

    在此处输入图像描述

  • 现在您可以选择:

    • 重复此过程以在Ctrl + 2下添加panel_navigate 2 2 ,依此类推(直到9)

    (保存选项) (如果您不害怕手动编辑配置文件):

    • 你可以编辑文件:

       ~/.config/xfce4/xfconf/xfce-perchanel-xml/xfce4-keyboard-shortcuts.xml 

      其中存储了键盘快捷键(在xfce )。 使用mousepad打开文件,然后查找如下行:

        

      复制该行,将其粘贴到下一行(插入)并将两次出现的更改为2,这样您将获得:

         

    等等..

    确保缩进完全相同。 重复该过程直到9。

退出并重新登录,它应该工作:

Ctrl + 1

在此处输入图像描述

Ctrl + 3

在此处输入图像描述

等等…

剧本

 #!/usr/bin/env python3 import subprocess import sys def get_value(command): return subprocess.check_output(["/bin/bash", "-c", command]).decode("utf-8").strip() def run_command(command): subprocess.Popen(["/bin/bash", "-c", command]) current_workspace = [l for l in get_value("wmctrl -d").splitlines() if l.split(" ")[2] == "*"][0][0] wlist_ids = [item.split()[0:4] for item in get_value("wmctrl -l").splitlines()] relevant = [item for item in wlist_ids if item[1] == current_workspace] panel = [] for item in relevant: data = get_value("xprop -id "+item[0]) if ("_TYPE_NORMAL" in data, "TYPE_DIALOG" in data).count(True) == 1: panel.append(item) try: window = panel[int(sys.argv[1])-1][0] run_command("wmctrl -ia "+window) except IndexError: pass 

说明

解决方案是机会主义的解决方案。 在我看来,由命令wmcrl -l调用的窗口列表按窗口的年龄排序。 通过使xfce面板执行相同的操作(设置),两个订单都完美对应。 脚本的作用是创建一个窗口列表,过滤掉“真实的”可见窗口(使用xprop )并通过命令panel_navigate切换到所选窗口,窗口编号(从左到右)为agrument。

问题

我注意到一个例外:IDLE(python解释器)窗口有pid 0, xprop不能“研究”它们的属性。 窗口没有出现在窗口列表中,脚本会跳过这些窗口。

注意

虽然组合键Ctrl + 在测试时没有引发任何错误,但它可能与某些应用程序冲突。 选择(例如) Ctrl + Alt + 1可能更安全

不确定相同的应用程序 ,但在Unity您可以使用super+number切换应用程序,例如, super + 1 =启动器上的第一项, super + 2 =启动器的第二项, super + n =第n项发射器的项目。 这也有助于打开放置在启动器上的任何项目,如果nautilus是启动器的第一项, super + 1将打开nautilus文件管理器。