【问题标题】:How to turn a Linux application in C/C++ into a Desktop Environment for a Linux distro?如何将 C/C++ 中的 Linux 应用程序变成 Linux 发行版的桌面环境?
【发布时间】:2017-03-05 18:05:22
【问题描述】:

是否可以用 C/C++ 编写程序,然后将其转换为 Linux 桌面环境? 我想要一个程序,然后能够启动到我的 Linux 发行版并看到它。

假设我有一个 Linux 程序,它是一个在白色背景上包含“Hello World”的窗口。 如何将该程序制作成发行版的 Linux 桌面环境,您可以在其中启动并看到:Hello World,在白色背景上。

有什么想法吗?让我知道这是否没有意义。

编辑:我不是在谈论交叉编译。

【问题讨论】:

  • 我不得不说:“Hello World”桌面环境将是有史以来最糟糕的 UI。 :)
  • 最简单的可能是在 /etc/rc.local 的末尾加载它,或者在您选择的发行版上加载它。这假设您默认情况下不启动其他一些窗口管理器。或者,基于每个用户使用 .xsession 文件并自动登录一个用户。此用户的 .xsession 文件将包含您要加载的内容。
  • 嗯...是吗?!?我高度怀疑 KDE、Gnome、Enlightenment、 等桌面环境通常是用 C 和/或 C++ 编写的。所以这绝对是可能的。但是,如何真正编写自己的内容是一个巨大的主题,可能不太适合这样的论坛......
  • @twalberg 他不一定需要 WM。许多单一用途的机器只需要为每个 X 实例启动一个全屏应用程序。这是一个很容易实现的简单请求,他只是想知道 lightdm/gdm 启动环境需要什么管道(在这种情况下,它只是 /usr/share/Xsessions 中的一个 .desktop 文件)。
  • @NicholasWilson 你很可能是对的,但是,至少对我来说,“Linux 桌面环境”不仅仅是一个独占访问信息亭类型的应用程序,而且几乎没有资格获得这个称号没有(至少)一个窗口管理器。所以,也许这个问题的措辞可以更清楚一点......

标签: c linux unix user-interface


【解决方案1】:

您不想修改 rc 文件。使用发行版的现有机制来控制 lightdm/gdm/other 并启动 X。您希望通过编写 Xsession 文件来创建新的 X 会话类型,以便您的 DE 与 KDE 和 GNOME 一起显示为另一个 DE。将您的脚本放入/usr/share/xsessions(并查看那里的现有示例)。

【讨论】:

    【解决方案2】:

    你要么想要

    • 创建引导加载程序,或
    • 你想替换'shell'。

      这将由每个用户或全局 xinitXsession 文件管理。

    【讨论】:

      【解决方案3】:

      您的要求:在系统启动后自动运行您自己的 GUI 应用程序。我说的对吗?

      这是我对这种要求所做的(我成功地使它在 Slackware 下工作):

      1. 系统启动后允许自动登录
      2. 将可自定义的窗口管理器设置为默认的 WM lauchedby startx(我使用 FVWM)
      3. 将 WM 配置为在应用程序启动后启动它,并禁用不需要的快捷键
      4. 将用户的启动脚本(如 .bashrc 或 .bash_profile)编辑为 startx

      现在,您可以重新启动以查看它是否有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-21
        相关资源
        最近更新 更多