上周我第一次使用 Debian,我已经设法使用 gnome-tweak-tools 配置了一些桌面选项,但是我在尝试自定义登录屏幕时遇到了困难。
在我所做的研究中,我发现了很多关于在 Ubuntu、Linux Mint 或 Arch Linux 中做这些事情的信息,但没有太多关于“Debian 方式”的信息。
我认为,Gnome 使用 Debian-gdm 用户的登录屏幕配置,但我不知道如何实际更改它,我尝试使用 gnome-tweak-tools 更改它,就像任何其他用户一样,我已经还尝试编辑“/etc/gdm3/greeter.dconf-defaults”文件配置,在“picture-uri”行中添加我想要的文件路径作为背景。"picture-options_'none'" 似乎也什么都不做。
哪种自定义方法最简单?
我使用的是 gnome-shell 版本 3.14.4 和 debian 版本 8.6
(在 Ubuntu Gnome Shell 16.04+ 上测试)
两种方式。如果您想知道自己在做什么,请按照解决方案 #1 进行操作。如果您希望一个脚本为您完成所有工作,请遵循解决方案 #2(它所做的一切都是自动化解决方案 #1)
背景信息: Gnome 登录背景不是您可以直接更改的参数(奇怪!)。它存在于二进制文件中的 Gnome Shell CSS 文件中。因此,您必须提取二进制文件,对其进行修改,然后用旧文件替换新二进制文件。
运行以下脚本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
Run Code Online (Sandbox Code Playgroud)
~/shell-theme/theme。~/shell-theme/theme/gnome-shell-theme.gresource.xml包含内容的文件 现在,打开gnome-shell.css目录中的文件并更改#lockDialogGroup定义如下:
#lockDialogGroup {
background: #2e3436 url(filename);
background-size: [WIDTH]px [HEIGHT]px;
background-repeat: no-repeat;
}
将文件名设置为背景图像的名称,并将背景大小设置为您的分辨率。
在主题目录中,运行
glib-compile-resources gnome-shell-theme.gresource.xml
Run Code Online (Sandbox Code Playgroud)
你会得到一个二进制文件。复制到
/usr/share/gnome-shell
Run Code Online (Sandbox Code Playgroud)
现在使用重新启动 GDM
service gdm restart
如果它不起作用或卡住,请重新启动计算机以查看新的登录壁纸:))
好的,正如承诺的那样,有一种更简单的方法可以自动化所有这些。只需将此脚本保存为 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
Run Code Online (Sandbox Code Playgroud)
运行脚本使用
IMAGE=~/Bat.jpg sh login-background.sh
Run Code Online (Sandbox Code Playgroud)
现在使用service gdm restart或重新启动笔记本电脑为您的新登录背景重新启动 gdm :))
参考资料:https : //wiki.archlinux.org/index.php/GDM
https://bbs.archlinux.org/viewtopic.php?id=197036
经过一些研究和测试后,我终于改变了我的登录背景,这些是我遵循的步骤:
1)我已经将我想要作为背景的文件放在 /usr/share/pictures 目录中(我自己创建了该目录)
2)我已经进入终端,并且作为 root 用户,我编辑了 /etc/gdm3/greeter.dconf-defaults 文件,如下所示:
[org/gnome/desktop/background]
picture-uri='file:///usr/share/Pictures/background.png'
picture-options='zoom'
[org/gnome/login-screen]
logo='/usr/share/icons/gnome/48x48/places/debian-swirl.png'
fallback-logo='/usr/share/icons/gnome/48x48/places/debian-swirl.png'
disable-user-list=true
disable-restart-buttons=true
Run Code Online (Sandbox Code Playgroud)
(background.png是我的实际背景图片)
3)为了重新生成配置,我运行了“dpkg-reconfigure gdm3”和“dpkg-reconfigure gdebi-core”