没有窗口管理器如何编写GTK+应用程序?

3
我想编写一个类似于TiVo的程序。启动后,用户只能看到菜单或输出界面,不能直接看到底层操作系统或其他内容。
因此,我想以Linux为基础。你能推荐一个好的基础发行版吗?
1. 我能否在没有运行窗口管理器的情况下编写前端?
2. 如果可以,是否可以使用java-gnome或者其他语言/gui框架组合实现?
3. 如果不行,有哪些最小化的窗口管理器可以处理菜单等复杂界面?
4. 如何在高清视频流上创建视频覆盖图层?有哪些库可以参考?
谢谢!
3个回答

5
  1. 是的。如果您只有一个窗口,您不需要窗口管理器。使用X,您可以从命令行启动一些应用程序并设置它的位置和大小(使其全屏)。如果这是您想要的,请查看xinit。这可能是最容易实现的方法。但另一种选择是跳过X并使用DirectFB。另一方面,如果您想显示多个窗口,则需要某种窗口管理器来管理它们。

  2. 只要您运行X,使用java-gnome作为框架就没有问题,如果您对此感到舒适。我猜您并不打算运行股票gnome应用程序,而是自己编写用户可见的所有代码。

  3. 这在很大程度上取决于您所说的花哨菜单的含义。如果您指的是透明度之类的东西,您需要一个复合管理器(如果您不仅在应用程序窗口内自己渲染所有内容)。我不确定这一点,但我认为您可以独立于窗口管理器运行复合管理器,如果您觉得适合的话。同样,这是如果您运行X的情况下。使用DirectFB,透明度等以更简单的方式完成。

  4. 如果您打算编写自己的媒体播放器,应该查看GStreamer。它可以流式传输,解码和显示视频,并添加视频叠加层(以及其他内容),并且非常易于使用。


2

最简化的平铺窗口管理,类似于 AwesomeRatpoisonXMonad 可用作基础。否则,您需要自己管理焦点和窗口大小调整。通常很容易将这些对用户隐藏起来。


1
  1. 绝对没问题
  2. 我不会指望 Gnome 自身在没有窗口管理器的情况下工作。除此之外……语言无关紧要。
  3. 窗口管理器只负责窗口管理。菜单等方面是小部件工具包的工作。无论如何,Metacity。
  4. ……这个我一点头绪都没有。

1
你的#1是误导性的。你可以在X11之外使用DirectFB上的GTK+,这显然可以避开这个问题。但是你也可以在没有窗口管理器的情况下,在X11上很好地使用GTK+(或者可能是任何工具包)。 - Ken
当然,但与Xorg本身相比,窗口管理器非常小。诀窍在于摆脱X,而不是窗口管理器。 - Ignacio Vazquez-Abrams
X 也不是一个大量使用资源的东西,它使用的大部分资源都属于客户端(如像素图),至于第四点,请看 GStreamer。 - Spudd86

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接