Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
tutoriel:changer_arriere_plan_gdm [Le 07/07/2019, 20:15] zococo [Un script pour automatiser la modification de l'écran de connexion] |
tutoriel:changer_arriere_plan_gdm [Le 04/02/2020, 01:43] 84.101.133.214 [Un script pour automatiser la modification de l'écran de connexion] |
||
---|---|---|---|
Ligne 80: | Ligne 80: | ||
==== Un script pour automatiser la modification de l'écran de connexion ==== | ==== Un script pour automatiser la modification de l'écran de connexion ==== | ||
Un ubuntero belge propose sur son [[http://c-nergy.be/blog/?p=11556|site]] en anglais un script permettant d'automatiser ces modifications en mode graphique. Le script utilise le paquet [[:yad|yad]] pour fonctionner. | Un ubuntero belge propose sur son [[http://c-nergy.be/blog/?p=11556|site]] en anglais un script permettant d'automatiser ces modifications en mode graphique. Le script utilise le paquet [[:yad|yad]] pour fonctionner. | ||
- | <code> | + | <note warning>je n'aime pas ce script : |
+ | * il est loooong ; | ||
+ | * il est mal écrit (il y a des déclarations de variables un peu partout, des commandes obsolètes/peu pratiques, l'ouverture d'une fenêtre yad pour indiquer qu'il faut installer ...yad 8O , etc.) ; | ||
+ | * il mélange des sorties console et l'emploi de yad (je ne comprends pas l'utilité de yad : quand on est dans la console, on utilise la console.); | ||
+ | * à cause de la préparation des belles fenêtres, la lecture des instructions est rendue plus ardue, et | ||
+ | cela masque l'objectif réel du script : modifier l'image de fond de GDM3. | ||
+ | </note> | ||
+ | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
lesFichiersCss=( "/etc/alternatives/gdm3.css" "/usr/share/gnome-shell/theme/gdm3.css" "/usr/share/gnome-shell/theme/Yaru/gnome-shell.css" "/usr/share/gnome-shell/theme/gnome-shell.css" ) | lesFichiersCss=( "/etc/alternatives/gdm3.css" "/usr/share/gnome-shell/theme/gdm3.css" "/usr/share/gnome-shell/theme/Yaru/gnome-shell.css" "/usr/share/gnome-shell/theme/gnome-shell.css" ) | ||
Ligne 115: | Ligne 122: | ||
# Étape 1 - Vérification de la présence du paquet yad (zenity utilisé dans le script initial, yad est un "fork" plus puissant) | # Étape 1 - Vérification de la présence du paquet yad (zenity utilisé dans le script initial, yad est un "fork" plus puissant) | ||
#---------------------------------------------------# | #---------------------------------------------------# | ||
- | if [[ $(dpkg -s yad 2>/dev/null | grep Status | cut -d' ' -f4) != "installed" ]]; then | + | ## ce n'est pas possible ## |
+ | ## si yad n'est pas installé, | ||
+ | if [[ $(dpkg -s yad 2>/dev/null | grep Status | cut -d' ' -f4) != "installed" ]] | ||
+ | then | ||
+ | ## alors il n'est pas possible de l'utiliser pour envoyer un message ! | ||
yad --image=error --title="Installez le paquet yad" --text="Le paquet <b>yad</b> est nécessaire au bon fonctionnement de ce script.\n\nInstallez le paquet par <b>sudo apt-get install yad</b>\n\nArrêt du traitement. Erreur 10." | yad --image=error --title="Installez le paquet yad" --text="Le paquet <b>yad</b> est nécessaire au bon fonctionnement de ce script.\n\nInstallez le paquet par <b>sudo apt-get install yad</b>\n\nArrêt du traitement. Erreur 10." | ||
Ligne 357: | Ligne 368: | ||
Pour extraire le thème par défaut, vous pouvez utiliser le script ''extractgst.sh'' suivant : | Pour extraire le thème par défaut, vous pouvez utiliser le script ''extractgst.sh'' suivant : | ||
- | <file bash>#!/bin/sh | + | <code bash>#!/bin/bash |
+ | |||
+ | rsrc='gnome-shell-theme.gresource' | ||
+ | gst="/usr/share/gnome-shell/$rsrc" | ||
- | workdir=${HOME}/shell-theme | + | workdir="$HOME/shell-theme/theme" |
- | if [ ! -d ${workdir}/theme ]; then | + | xmlFile="$workdir/$rsrc.xml" |
- | mkdir -p ${workdir}/theme | + | |
- | fi | + | |
- | gst=/usr/share/gnome-shell/gnome-shell-theme.gresource | + | |
- | for r in `gresource list $gst`; do | + | test -d "$workdir" || mkdir -p "$workdir" |
- | gresource extract $gst $r >$workdir/${r#\/org\/gnome\/shell/} | + | |
- | done</file> | + | cat <<eof >"$xmlFile" |
+ | <?xml version="1.0" encoding="UTF-8"?> | ||
+ | <gresources> | ||
+ | <gresource prefix="/org/gnome/shell/theme"> | ||
+ | eof | ||
+ | |||
+ | while read -r file | ||
+ | do | ||
+ | filename="${file##*/}" | ||
+ | echo " <file>$filename</file>" >>"$xmlFile" | ||
+ | gresource extract "$gst" "$file" >"$workdir/$filename" | ||
+ | done < <(gresource list "$gst") | ||
+ | |||
+ | cat <<eof >>"$xmlFile" | ||
+ | </gresource> | ||
+ | </gresources> | ||
+ | eof | ||
+ | </code> | ||
Exécutez ce script. | Exécutez ce script. | ||
Ligne 381: | Ligne 409: | ||
=== Le fichier XML === | === Le fichier XML === | ||
- | Ensuite vous devez créer, toujours dans ce répertoire, le fichier ''gnome-shell-theme.gresource.xml'' avec le contenu suivant : | + | Ensuite, toujours dans ce répertoire, vous pouvez vérifier que le fichier ''gnome-shell-theme.gresource.xml'' correspond au contenu suivant : |
<code><?xml version="1.0" encoding="UTF-8"?> | <code><?xml version="1.0" encoding="UTF-8"?> | ||
Ligne 442: | Ligne 470: | ||
=== Compiler === | === Compiler === | ||
- | Enfin, ouvrez un terminal pour recompiler votre thème avec les commandes suivantes : | + | Enfin, ouvrez un terminal pour recompiler votre thème avec les commandes suivantes (libglib2.0-dev doit être installé) : |
<code>cd ~/shell-theme/theme/ | <code>cd ~/shell-theme/theme/ | ||
glib-compile-resources gnome-shell-theme.gresource.xml</code> | glib-compile-resources gnome-shell-theme.gresource.xml</code> |