如何使用Yocto Project工具更改窗口管理器?

4

我的目的

我拥有一个由BitBake生成的图像,我希望将窗口管理器更改为metacity或类似的东西。

我的过程

我在我的核心配方中添加了require recipes-graphics/images/core-image-x11.bb,这提供了一个简单的Matchbox终端窗口,但似乎没有其他功能。如果我添加matchbox-desktopmatchbox-session-sato,它会增加一些可用性,但不是我想要的。

我在我的核心镜像的IMAGE_INSTALL变量中包含了来自OpenEmbedded Metadata Index的层的metacity_2.34.13.bb配方中的默认软件包。这安装了几个组件,包括/usr/bin中的metacity命令。如果我运行该命令,我会收到以下消息:

GLib-GIO-Message: Using the 'memory' GSettings backend. Your settings will not be saved or shared with other applications

(metacity:1124): GLib-GIO-ERROR **: Settings schema 'org.gnome.metacity' is not installed

Trace/breakpoint trap

我已经导航到 /usr/share/glib-2.0/schemas 并运行了 glib-compile-schemas .,然后运行:

startx
metacity --replace

再试一次。现在,输出结果是:

Window manager error: Unable to open X display

我还没有找到针对我的具体情况适用的清晰解决方案。

更新(2/29):

我可能已经找到了这个错误的解决方案,使用这些命令:

X&
export DISPLAY=:0
metacity&

目前,我似乎正在运行某个 VT 上的某些东西。我可以在该 VT 中运行像 glxgears 这样的演示文稿(glxgears 包含在 mesa-demos 配方中),但我不知道如何创建一个可用的环境。

我的问题:

  1. 我没有使用 meta-openembedded/meta-gnome(仅使用了 metacity)或 meta/recipes-gnomeadwaita-icon-themegnome-desktop3gsettings-desktop-schemasgtk+3),那么我是否缺少自动添加 metacity 的配方?
  2. (如果不是问题 1)我该如何解决窗口管理器错误:无法打开 X 显示
1个回答

4
x11-common 配方添加了一个 X 会话脚本,该脚本将运行 /usr/bin/x-session-manager:它负责启动您的桌面环境。
在 OE-Core 中实现新会话/DE 的方法是使用 "x-session-manager" 的 update-alternatives:请参见 matchbox-session 配方的默认实现和 mini-x-session 配方的替代实现。
mini-x-session 可能可根据您的需求进行修改,因此您无需编写新的配方:像这样的 /etc/mini_x/session 文件可能就可以解决问题:
# start any apps here, e.g. "my-desktop &"
exec metacity

从一个运行的窗口管理器到“可用环境”的转变可能仍需要大量的工作,具体取决于您对可用性的定义。

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