如何重新编译 libgnome-shell.so

如何重新编译 libgnome-shell.so

如何重新编译libgnome-shell.so

getShell脚本从中提取资源lib-gnome-shell.so并将其放入$HOME/GNOME_SHELL

获取Shell

#!/bin/bash
# found this script and modified it a bit, original:
# https://blogs.gnome.org/mclasen/2014/03/24/keeping-gnome-shell-approachable/

gs=/usr/lib/gnome-shell/libgnome-shell.so

mkdir $HOME/GNOME_SHELL

cd $HOME/GNOME_SHELL

mkdir -p ui/components ui/status misc perf extensionPerfs gdm portalHelper

for r in `gresource list $gs`; do
  gresource extract $gs $r > ${r/#\/org\/gnome\/shell/.}
done

现在我可以编辑libgnome-shell.so资源,但如何将其重新组合起来?

尝试了以下操作。

构建Shell

#!/bin/bash
# found this script and modified it a bit, orginal:
# https://github.com/devpytech/scripts/tree/master/gresource-extract/build.sh

FILES=$(find "$HOME/GNOME_SHELL" -type f -printf "%P\n" | xargs -i echo "    <file>{}</file>")

cat <<EOF >"$HOME/GNOME_SHELL/libgnome-shell.so.xml"
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
  <gresource prefix="/org/gnome/shell">
$FILES
  </gresource>
</gresources>
EOF

(
  cd "$HOME/GNOME_SHELL"
  glib-compile-resources --target=libgnome-shell.so libgnome-shell.so.xml
)

当我将新创建的内容移动libgnome-shell.so/usr/lib/gnome-shell/并重新启动时,我的系统在启动显示管理器之前卡住了。

不确定这是否是重新编译的正确方法libgnome-shell.so,但必须尝试一下。

发现有几个问题/答案建议不要重新编译它,而是使用G_RESOURCE_OVERLAYSGNOME_SHELL_JS变量链接到提取的(已编辑的)资源。请参阅超级用户问题@grawity 回答。试过了,但对我不起作用。

系统:带有 Ubuntu 服务器 18.04、gdm3 和 gnome-session 的虚拟机。

相关内容