【问题标题】:What window manager should I use as example?我应该使用什么窗口管理器作为示例?
【发布时间】:2012-03-30 14:41:49
【问题描述】:

我想为仅支持以下操作的演示文稿(非用户可控)实现一个简单的专用窗口管理器:

  1. 移动和调整窗口大小
  2. 切换桌面
  3. 在不破坏当前图像的情况下启动不在当前桌面(在后台)的应用程序。

我不需要任何用户输入、按钮/标题……

我应该使用什么现有的窗口管理器作为示例?有很多小的“hello world”窗口管理器,但它们通常不支持桌面切换。

【问题讨论】:

    标签: linux window-managers


    【解决方案1】:

    您不需要重新实现轮子。

    • openbox 会做你提到的一切,除此之外。

      只需编辑rc.xml 即可禁用根菜单,然后重新启动。

      Openbox 还允许per app setting,以便某些应用程序可以默认在特定桌面上打开,或以特定大小打开,或隐藏打开。

      它还支持在窗口选择中使用通配符,以便设置可以应用到所有窗口。

    • devilspie2 是一个窗口匹配实用程序,可以在窗口打开时执行操作。

      它是高度可破解的,代码是available on github。当它们打开时,它将按名称/类/等匹配窗口,并对它们执行操作。 (包括匹配所有窗口并将它们移动到不同的桌面。它适用于大多数窗口管理器。

      基于原始的devilspie,它没有 Lua 脚本,而是使用 s-exprs 进行配置。

    • xdotool 还允许您在 Windows 上执行复杂的操作,而无需破解任何代码。如果您需要,它甚至会伪造用户输入(鼠标/kbd)。

    【讨论】:

    • 好的,将尝试 openbox。要点是控制在哪个桌面上显示新窗口(而不是通过窗口类/名称)。启动的应用程序必须在后台准备好它们的东西。
    • Openbox 允许在 rc.xml 文件中根据其 X 属性在特定桌面上打开窗口。
    • 我需要它在桌面 N 上打开 所有 个窗口。然后切换到桌面 N 并在桌面 M 上打开 所有 个新窗口。可能是我最终会使用打过补丁的 openbox(或 awesome 或其他不臃肿的 WM)。
    • 查看更新。还有一个独立的实用程序可以完全按照您的要求进行操作,但名称让我无法理解。
    • 这个实用程序叫做devilspie
    【解决方案2】:

    有一些用 Python 编写的窗口管理器可能是很好的起点。 Qtilewhimsy 都将自己描述为可黑客攻击。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 1970-01-01
      • 2016-10-30
      • 1970-01-01
      相关资源
      最近更新 更多