如何重新编译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_OVERLAYS
或GNOME_SHELL_JS
变量链接到提取的(已编辑的)资源。请参阅超级用户问题@grawity 回答。试过了,但对我不起作用。
系统:带有 Ubuntu 服务器 18.04、gdm3 和 gnome-session 的虚拟机。