X11 之上的启动器作为窗口管理器

X11 之上的启动器作为窗口管理器

我正在构建一个启动器对于其他应用程序,在X11。要求如下:

  1. 启动器必须随系统一起启动(启动器可以看作是全屏应用程序,就像 Kiosk 一样,使用OpenGL),它确实显示了可以在系统上使用的其他应用程序(它们都使用OpenGL)。
  2. 当用户启动任何应用程序时,启动器会停止渲染并继续启动该应用程序(也是全屏)。
  3. 用户可以选择终止应用程序,然后返回到启动器。

我正在考虑从一个非常基本的窗口管理器开始,以避免装饰并始终将它们全屏放置。

启动器应该是我的窗口管理器吗?

作为一些附加说明,我也在考虑使用 http://www.glfw.org/用于处理输入和事件。编辑:我希望启动器停止渲染,以删除任何可能减慢当前应用程序速度的 OpenGL 调用。此外,应用程序将包括退出方式,所以我不需要装饰。

答案1

如果您正在尝试开发类似公共信息亭的东西,其中用户应该只能打开可用的应用程序并且只能在全屏模式下打开,那么我会说让启动器同时成为窗口管理器是一个有效的策略。另一方面,利用可配置为提供您正在寻找的受限用户界面的现有窗口管理器可能会节省您的时间和精力,因为正确实现窗口管理器有点复杂。

启动器停止渲染

我认为你不需要“停止渲染”。只需打开启动器窗口顶部的应用程序窗口,X11 将处理其余的事情(即它知道哪些窗口被其他窗口覆盖并处理暴露/覆盖的逻辑)。

以避免装饰

我认为避免装饰的主要问题是,如果没有窗口装饰,许多应用程序没有明显的退出方法。应用程序期望窗口管理器提供窗口关闭控件作为装饰,并且这是用户退出应用程序的最明显的方式,也是跨应用程序最一致的方式。您可能需要考虑至少使用带有封闭盒的最少装饰。

相关内容