Comment personnaliser l'écran de connexion Gnome dans Debian

11

J'ai utilisé Debian pour la première fois la semaine dernière, et j'ai réussi à configurer certaines options de bureau avec les outils gnome-tweak, mais je suis coincé à essayer de personnaliser l'écran de connexion.

Au cours des recherches que j'ai faites, j'ai trouvé beaucoup d'informations sur la façon de faire ces choses dans Ubuntu, Linux Mint ou Arch Linux, mais pas beaucoup d'informations sur la «manière Debian».

Je pense que Gnome utilise la configuration de l'utilisateur Debian-gdm pour l'écran de connexion, mais je ne sais pas comment le changer réellement, j'ai essayé de le changer avec gnome-tweak-tools, comme n'importe quel autre utilisateur, et j'ai essayé également de modifier la configuration du fichier "/etc/gdm3/greeter.dconf-defaults", ajoutez le chemin d'accès au fichier que je veux comme arrière-plan dans la ligne "picture-uri". "picture-options_'none '" semble également ne rien faire.

Quelle est la façon la plus simple de le personnaliser?

J'utilise gnome-shell version 3.14.4 et debian version 8.6

lunix
la source
Suis-je en train de manquer quelque chose d'évident? Si vous souhaitez simplement modifier l'image d'arrière-plan, il doit y avoir un paramètre . (Bien que je ne puisse pas le tester car j'utilise une nouvelle version de GNOME)
lw1.at

Réponses:

5

(Testé sur Ubuntu Gnome Shell 16.04+)

Deux manières. Si vous voulez savoir exactement ce que vous faites, suivez la solution n ° 1 . Si vous voulez qu'un seul script fasse tout pour vous, suivez la solution n ° 2 (tout cela automatise la solution n ° 1)

Solution 1

Informations générales: Gnome Login Background n'est pas un paramètre que vous pouvez modifier directement (bizarre!). Il est présent dans le fichier CSS Gnome Shell qui est présent dans le fichier binaire. Par conséquent, vous devez extraire le fichier binaire, le modifier et remplacer le nouveau binaire par l'ancien fichier.

Étape 1: Extraire le fichier binaire du shell Gnome

Exécutez le script suivant extractgst.shpour extraire le thème du shell Gnome dans le ~/shell-themerépertoire

#!/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

Étape 2: le modifier

  • Copiez votre image d'arrière-plan dans ce dossier ~/shell-theme/theme.
  • Créer un fichier ~/shell-theme/theme/gnome-shell-theme.gresource.xmlavec du contenu
  • Remplacez le nom de fichier par le nom de fichier de votre image d'arrière-plan
  • Maintenant, ouvrez le gnome-shell.cssfichier dans le répertoire et modifiez la #lockDialogGroupdéfinition comme suit:

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

Définissez le nom de fichier comme étant le nom de l'image d'arrière-plan et la taille de l'arrière-plan à votre résolution.

Étape 3: Créer un nouveau binaire de thème de shell Gnome et remplacer l'existant

Dans le répertoire du thème, exécutez

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

Vous obtiendrez un fichier binaire. Copiez-le dans

/usr/share/gnome-shell

Redémarrez maintenant GDM en utilisant

service gdm restart

Si cela ne fonctionne pas ou est bloqué, redémarrez votre ordinateur pour voir votre nouveau fond d'écran de connexion :))

Solution 2

D'accord, comme promis, il existe un moyen plus simple d'automatiser tout cela. Enregistrez simplement ce script sous 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

Exécutez le script en utilisant

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

Redémarrez maintenant gdm en utilisant service gdm restartou redémarrez l'ordinateur portable pour votre nouveau fond de connexion :))

Références: https://wiki.archlinux.org/index.php/GDM

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

Mac
la source
Je n'ai pas de gnome-shell-theme.gresource.xmlfichier pendant que tous les autres sont là ... Pourquoi? J'ai Gnome 3.22.
71GA
4

Après quelques recherches supplémentaires et quelques tests plus tard, j'ai finalement changé mon arrière-plan de connexion, voici les étapes que j'ai suivies:

1) J'ai placé le fichier que je voulais en arrière-plan dans le répertoire / usr / share / pictures (j'ai créé ce répertoire moi-même)

2) J'ai entré le terminal et, en tant qu'utilisateur root, j'ai édité le fichier /etc/gdm3/greeter.dconf-defaults afin de ressembler à ceci:

[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 est mon image de fond réelle)

3) Afin de régénérer la configuration, j'ai exécuté "dpkg-reconfigure gdm3" et "dpkg-reconfigure gdebi-core"

lunix
la source
1
Cela a planté ma session X au démarrage, l'a corrigé en annulant les changements dans une console bien :)
Maarten
Avertissement! Cette solution plantera votre système si elle est officiellement décrite sur un wiki Debian: wiki.debian.org/GDM Evaluation: Il semble que Debian ait du mal à garder son Wiki à jour. Si Debian veut devenir le meilleur système d'exploitation GNU / Linux (ce qui, à mon avis, l'est déjà), il lui suffit de repenser son wiki pour être plus convivial (HTML5 / CSS 3.0 / bases de données). Pour les nouveaux utilisateurs, il ne doit jamais arriver que la solution officiellement décrite plante leur système. C'est crucial car cela les détournera de Linux ... Et nous ne voulons pas de cela ...
71GA
1

La solution la plus simple consiste probablement à utiliser l'application suivante: https://github.com/juhaku/loginized . REMARQUE: je suis l'auteur de cette application.

C'est le gestionnaire de thèmes de connexion GNOME GDM qui vous permet également de changer le thème de connexion et l'image d'arrière-plan. Il pourrait également y avoir plus de fonctionnalités à venir à l'application.

Juha Kukkonen
la source
0

Certains tests sur un autre système (SL7.4) ont montré des problèmes.

"extractgst.sh" ne génère pas "gnome-shell-theme.gresource.xml", qui doit être modifié à l'étape 2 de la solution 1. Si vous ajoutez la génération de fichier ".xml" de la solution 2, vous aurez le Fichier "xml" nécessaire pour l'inspection.

Le script de la solution 2 utilise "$ CREATED_TMP", qui n'a jamais été défini. Veuillez supprimer la déclaration "si" complète.

Soyez prudent avec l'utilisation de sudo avec les scripts. Passez à root avec "/ bin / su -" et lancez, ce qui semble être nécessaire pour le script à la main en premier.

Viennent maintenant les problèmes particuliers avec SL7 (clone Centos / RHEL7). SL7 utilise SELinux avec sa partie audit pour générer la sécurité du système. Si les fichiers système comme ici sont modifiés par un script, SELinux ne les connaît pas et interdit l'utilisation de ces fichiers, il n'a aucune information sur ce qui se traduit par un fond noir lors de la connexion. Cela peut être corrigé en utilisant la commande "restorecon" récursivement pour ce répertoire. Après vous être déconnecté, vous obtiendrez le fond d'écran de connexion souhaité.

Ajouté: restorecon devrait être fait pour "/ usr / share / gnome-shell", car il s'agit du répertoire des ressources. Il se peut, il soit logique d'exécuter la restauration des répertoires gnome pour l'utilisateur, si des problèmes persistent. Mais pour moi, tout fonctionne bien pour l'instant.

SL7-HT
la source