如何在Debian中自定义Gnome登录屏幕


11

在过去的一周中,我第一次使用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


我是否缺少明显的东西?如果只想更改背景图像,则应进行设置。(尽管我无法测试它,因为我正在使用较新的GNOME版本)
lw1.at

Answers:


5

(在Ubuntu Gnome Shell 16.04+上测试)

两种方式。如果您想确切地知道自己在做什么,请按照解决方案#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

步骤2:修改

  • 将背景图像复制到此文件夹~/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; }

将filename设置为背景图像的名称,并将background-size设置为您的分辨率。

第三步:创建新的Gnome Shell主题二进制文件并替换现有的

在主题目录内,运行

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

您将获得一个二进制文件。复制到

/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

现在,使用service gdm restart新的登录背景重新启动gdm 或重新启动笔记本电脑:))

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

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


我没有收到gnome-shell-theme.gresource.xml文件,而其余的都在那里...为什么?我有Gnome 3.22。
71GA

4

经过一些研究和以后的测试,我终于改变了我的登录背景,这些是我遵循的步骤:

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

(background.png是我的实际背景图片)

3)为了重新生成配置,我运行了“ dpkg-reconfigure gdm3”和“ dpkg-reconfigure gdebi-core”


1
这使我的X会话在启动时崩溃了,尽管通过撤消控制台中的更改来解决它:)
Maarten

警告!该解决方案将造成系统崩溃regardles如果是正式的Debian维基描述:wiki.debian.org/GDM 评价:它看起来像Debian有一个很难保持自己的Wiki是最新的。如果Debian希望成为最好的GNU / Linux操作系统(我认为已经是最好的),则只需重新设计它的Wiki,使其对用户更加友好(HTML5 / CSS 3.0 /数据库)。对于新用户来说,永远不会发生正式描述的解决方案使他们的系统崩溃的情况。这很关键,因为它将使他们远离Linux……而我们不希望那样……
71GA,2017年


0

在另一个系统(SL7.4)上进行的一些测试显示了问题。

“ extractgst.sh”不会生成“ gnome-shell-theme.gresource.xml”,应在解决方案1的步骤2中对其进行编辑。如果添加解决方案2的“ .xml”文件生成,则将具有检查所需的“ xml”文件。

解决方案2脚本使用从未定义的“ $ CREATED_TMP”。请删除完整的“如果”陈述。

在脚本中使用sudo时要小心。使用“ / bin / su-”更改为root并运行,似乎首先需要手动执行脚本。

现在出现SL7(Centos / RHEL7克隆)的特殊问题。SL7使用SELinux及其审核部分来生成系统安全性。如果此处的系统文件是通过脚本更改的,则SELinux不知道这些文件,并禁止使用这些文件,它不提供有关登录时黑色背景的信息。可以通过对该目录递归使用“ restorecon”命令来更正此问题。注销后,您将获得所需的登录屏幕背景。

补充:应该对“ / usr / share / gnome-shell”执行restorecon,因为这是资源目录。如果仍然存在问题,则可以为用户的gnome目录执行restorecon。但是对我而言,目前一切运转良好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.