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

tir*_*fio 5 xfce scripts shortcut-keys 14.04

有什么方法可以使用快捷方式从窗口栏中打开窗口?比如打开左边第一个窗口Ctrl+1,打开左边第二个窗口Ctrl+2。

我此时正在使用 xfce4,但如果无法在 xfce4 下使用,是否还有其他桌面环境允许这样做?

由于我为同一个应用程序打开了多个窗口,因此我没有搜索与该应用程序相关的排序,而是如下所述,搜索窗口。

Jac*_*ijm 5

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

原料

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

如何设置

  • 安装wmctrl

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

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

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

    在此处输入图片说明

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

    panel_navigate 1
    
    Run Code Online (Sandbox Code Playgroud)

    将其设置为组合键Ctrl+1

    在此处输入图片说明

  • 现在您可以选择:

    • 重复此过程以panel_navigate 2Ctrl+下添加2等等(直到 9)

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

    • 您可以编辑文件:

      ~/.config/xfce4/xfconf/xfce-perchanel-xml/xfce4-keyboard-shortcuts.xml
      
      Run Code Online (Sandbox Code Playgroud)

      xfce存储键盘快捷键 (in ) 的位置。打开文件mousepad并查找如下一行:

      <property name="&lt;Primary&gt;1" type="string" value="panel_navigate 1"/>
      
      Run Code Online (Sandbox Code Playgroud)

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

      <property name="&lt;Primary&gt;1" type="string" value="panel_navigate 1"/>
      <property name="&lt;Primary&gt;2" type="string" value="panel_navigate 2"/>
      
      Run Code Online (Sandbox Code Playgroud)

    等等..

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

注销并重新登录,它应该可以工作:

Ctrl+1

在此处输入图片说明

Ctrl+3

在此处输入图片说明

等等...

剧本

sudo apt-get install wmctrl
Run Code Online (Sandbox Code Playgroud)

解释

解决方案是一种机会主义的解决方案。我突然想到,由命令调用的 windowlistwmcrl -l是按 windows 的年龄排序的。通过让 xfce 面板做同样的事情(设置),两个命令完美对应。脚本所做的是创建一个窗口列表,过滤掉“真实”的可见窗口(使用xprop)并通过命令切换到选定的窗口,窗口panel_navigate编号(从左到右)作为参数。

问题

我注意到一个例外:IDLE(python 解释器)窗口的 pid 为 0,并且它们的属性不能被xprop. 这些窗口不会出现在窗口列表中并且会被脚本跳过。

笔记

尽管组合键Ctrl+<number>在测试时没有引发任何错误,但它可能会与某些应用程序发生冲突。选择 (eg) Ctrl+ Alt+可能更安全 1