【问题标题】:Coding a GTK+ application without window manager?编写没有窗口管理器的 GTK+ 应用程序?
【发布时间】:2010-06-29 09:06:31
【问题描述】:

我想编码某事。这基本上像 TiVo 一样工作。打开它,您只会看到菜单或输出,因此用户无法直接看到底层操作系统或其他任何东西。

所以我想使用 Linux 作为基础。你能推荐一个好的基础分布吗?

  1. 我可以在没有启动和运行窗口管理器的情况下编写前端代码吗?
  2. 如果是,是否可以使用 java-gnome 或您建议使用哪种语言/gui-framework 组合?
  3. 如果不是,可以处理精美菜单等的最小窗口管理器是什么?
  4. 如何在高清流上创建视频叠加层?是否有一些我应该看看的库?

谢谢

【问题讨论】:

    标签: linux gtk window-managers


    【解决方案1】:
    1. 是的。如果您只有一个窗口,则不需要窗口管理器。使用 X,您可以启动一些应用程序并从命令行设置它的位置和大小(使其成为全屏)。如果这是你想要的,你可能想看看 xinit 。这可能是最简单的为什么要让某些东西正常工作。但另一种选择是跳过 X 并使用DirectFB。另一方面,如果要显示多个窗口,则需要某种窗口管理器来管理它们。

    2. 只要您运行 X,使用 java-gnome 作为框架就没有问题,如果您愿意的话。我猜您并不是要运行普通的 gnome 应用程序,而是自己编写用户可见的所有内容。

    3. 这在很大程度上取决于您对精美菜单的含义。如果您的意思是透明度等,您需要一个复合管理器(如果您不只是在应用程序窗口中自己渲染所有内容)。我不确定这一点,但我认为如果你觉得合适的话,你可以运行独立于窗口管理器的复合管理器。同样,这是如果您运行 X。使用 DirectFB 透明度等以更简单的方式完成。

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

    【讨论】:

      【解决方案2】:

      AwesomeRatpoisonXMonad 这样的简约平铺窗口管理可能作为基础很有用,否则您必须自己管理焦点和窗口大小。使这些对用户不可见通常相当容易。

      【讨论】:

        【解决方案3】:
        1. Absolutely
        2. 我不会指望 Gnome 本身在没有窗口管理器的情况下工作。除此之外……语言无关紧要。
        3. 窗口管理器只做窗口管理。菜单等是小部件工具包的工作。无论如何,Metacity。
        4. ...这个我不知道。

        【讨论】:

        • 您的 #1 具有误导性。您可以在 X11 之外的 DirectFB 上使用 GTK+,这显然回避了这个问题。但是你也可以在没有窗口管理器的情况下在 X11 上使用 GTK+(或者任何工具包)就好了。
        • 当然,但是与 Xorg 本身相比,窗口管理器是。诀窍是摆脱 X,而不是窗口管理器。
        • X也不是很大的资源使用,它使用的大部分都是真正属于客户端的东西(如像素图)至于4,看看GStreamer
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多