解决方案 1

解决方案 1

我使用的是 Ubuntu Gnome 15.10,我的 gdm 版本是 3.16.2。我知道这里有几个不同的帖子,其他网站上也有关于自定义 Ubuntu 旧版本登录屏幕的文章,但是我尝试了几乎所有方法后,仍然无法更改我的登录屏幕背景。有人能帮帮我吗

答案1

(免责声明:在 Ubuntu Gnome Shell 16.04+ 上测试,希望它也能在 15.10 上运行)

两种方法。如果你想知道你到底在做什么,请按照解决方案 #1。如果您希望一个脚本为您完成所有工作,请遵循解决方案 #2(它所做的一切都是自动化解决方案 #1)

解决方案 1

背景信息:Gnome 登录背景不是您可以直接更改的参数(奇怪!)。它存在于 Gnome Shell CSS 文件中,该文件存在于二进制文件中。因此,您必须提取二进制文件,对其进行修改,然后用旧文件替换新二进制文件。

步骤 1:提取 Gnome shell 二进制文件

运行以下脚本extractgst.sh将 Gnome shell 主题提取到~/shell-theme目录

#!/bin/sh

workdir=${HOME}/shell-theme
if [ ! -d ${workdir}/theme ]; then
  mkdir -p ${workdir}/theme
fi
gst=/usr/share/gnome-shell/gnome-shell-theme.gresource

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

Step2:修改内容

  • 将您的背景图像复制到此文件夹~/shell-theme/theme
  • 编辑~/shell-theme/theme/gnome-shell-theme.gresource.xml转到行<file>logged-in-indicator.svg</file>并添加另一行<file>filename</file>,其中文件名是您的背景图像文件名
  • 现在,打开gnome-shell.css目录中的文件并更改定义#lockDialogGroup如下:

    #lockDialogGroup {
      background: #2e3436 url(filename);
      background-size: [WIDTH]px [HEIGHT]px;
      background-repeat: no-repeat;
    }
    

将文件名设置为背景图像的名称,并将背景大小设置为您的分辨率。

步骤3:创建新的二进制文件并替换现有的

在主题目录中,运行

glib-compile-resources gnome-shell-theme.gresource.xml

您将获得一个名为的二进制文件gnome-shell-theme.gresource。将其复制到

/usr/share/gnome-shell

现在使用以下命令重新启动 GDM

service gdm restart

如果它不起作用或卡住了,请重新启动计算机以查看新的登录壁纸:))

解决方案 2

好的,正如承诺的那样,有一种更简单的方法可以自动化所有这些。只需将此脚本保存为login-background.sh

WORKDIR=~/tmp/gdm-login-background
GST=/usr/share/gnome-shell/gnome-shell-theme.gresource
GSTRES=$(basename $GST)

mkdir -p $WORKDIR
cd $WORKDIR
mkdir theme

for r in `gresource list $GST`; do
  gresource extract $GST $r >$WORKDIR$(echo $r | sed -e 's/^\/org\/gnome\/shell\//\//g')
done

cd theme
cp "$IMAGE" ./

echo "
#lockDialogGroup {
  background: #2e3436 url(resource:///org/gnome/shell/theme/$(basename $IMAGE));
  background-size: cover;
  background-repeat: no-repeat;
}" >>gnome-shell.css

echo '<?xml version="1.0" encoding="UTF-8"?>
<gresources>
  <gresource prefix="/org/gnome/shell/theme">' >"${GSTRES}.xml"
for r in `ls *.*`; do
  echo "    <file>$r</file>" >>"${GSTRES}.xml"
done
echo '  </gresource>
</gresources>' >>"${GSTRES}.xml"

glib-compile-resources "${GSTRES}.xml"

sudo mv "/usr/share/gnome-shell/$GSTRES" "/usr/share/gnome-shell/${GSTRES}.backup"
sudo mv "$GSTRES" /usr/share/gnome-shell/

rm -r $WORKDIR

if [ "$CREATED_TMP" = "1" ]; then
  rm -r ~/tmp
fi

使用运行脚本

IMAGE=~/Bat.jpg sh login-background.sh

现在使用重新启动 gdmservice gdm restart或重新启动笔记本电脑以获取新的登录背景 :))

参考: https://wiki.archlinux.org/index.php/GDM

https://bbs.archlinux.org/viewtopic.php?id=197036

相关内容