Je conserve tous mes documents sur un lecteur distinct de mon installation d'ubuntu, et j'ai un dossier plein de fonds d'écran Nice sur ce lecteur. Comment puis-je faire en sorte que Ubuntu recherche automatiquement ce répertoire afin que les fonds d’écran apparaissent dans la boîte de dialogue du changement de fond d’écran, accessible par un clic droit sur le bureau et en sélectionnant Changer le fond d’écran?
Edit: J'ai essayé de mettre un lien symbolique dans le dossier / usr/share/backgrounds sur l'autre lecteur et cela n'a pas fonctionné.
* EDIT - Deuxième essai - et des excuses immédiatement pour tout le travail terminal - j'espère que cela devrait simplement être un copier-coller des entrées en surbrillance *
le dossier contenant les détails des fonds d'écran gnome s'appelle /usr/share/gnome-background-properties/ubuntu-wallpapers.xml.
Vous pouvez éditer ce fichier comme fond d'écran .../sous-sections de papier peint pointant vers votre nouveau dossier et les fichiers de papier peint
Ci-dessous se trouve un script modifié à partir de ce forum entrée qui régénérera automatiquement le fichier ubuntu-wallpapers.xml pour un dossier contenant les fichiers .png et .jpg.
copier et coller le contenu dans un nouveau fichier texte appelé "ubuntu-wallpaper-generator"
Puis exécutez le fichier avec la syntaxe
sh ubuntu-wallpaper-generator <path to new wallpaper folder>
Cela générera un fichier appelé ubuntu-wallpapers.xml dans le même dossier que celui où vous exécutez ce script.
Sauvegardez votre fichier xml actuel en toute sécurité, i.e.
Sudo cp /usr/share/gnome-background-properties/ubuntu-wallpapers.xml /usr/share/gnome-background-properties/ubuntu-wallpapers.xml.backup
la copie dans le fichier nouvellement généré
Sudo cp ubuntu-wallpapers.xml /usr/share/gnome-background-properties/ubuntu-wallpapers.xml
Voici le fichier de script auquel j'ai fait référence:
#!/bin/bash
#
# This script will take all wallpapers in a given folder and
# make them available as "default" background in the "Change Background" gui
# frontend in Ubuntu.
#
################################################################################
#CONFIG_DIR="/usr/share/gnome-background-properties"
CONFIG_DIR="./"
XML_FILE="$CONFIG_DIR/ubuntu-wallpapers.xml"
if [ $# -ne 1 ]; then
echo "*** syntax ubuntu-wallpaper-generator <path to wallpaper folder> ***"
echo "*** for example ***"
echo "*** ubuntu-wallpaper-generator /usr/share/backgrounds ***"
exit 1
else
WALLPAPER_DIR=$1
echo "*** parameters passed: $1 ***"
fi
#### First check if we have write permissions to the share dirctory. ####
touch $CONFIG_DIR/testfile >/dev/null 2>/dev/null
if [ $? -ne 0 ]; then
echo "**** No permissions to the desktop share directory. ****"
echo "**** $CONFIG_DIR ****"
echo "**** Procedure Terminated. ****"
exit 1
else
rm $CONFIG_DIR/testfile 2>/dev/null
fi
#### Show the script description message. ###
cat <<EOF
################################################################################
This script makes all pictures in the $WALLPAPER_DIR
directory available to all users defined on this system as their
system-wide GNOME wallpapers.
################################################################################
EOF
#### Fail if the wallpaper directory does not exist. ####
if [ ! -d $WALLPAPER_DIR ]; then
echo "**** The wallpaper directory \"$WALLPAPER_DIR\" does not exist. ****"
echo "**** Precedure Terminated. ****"
exit 1
fi
#### Count the number of jpg/jpeg/png images. ####
numfiles=`ls -1 $WALLPAPER_DIR/*.jpg WALLPAPER_DIR/*.jpeg WALLPAPER_DIR/*.png 2>/dev/null | wc -l`
#### If there are no image files there then exit. ####
if [ $numfiles -eq 0 ]; then
echo "**** The wallpaper directory \"$WALLPAPER_DIR\" has no images. ****"
echo "**** Precedure Terminated. ****"
exit 1
fi
#### Now we create the XML file containing the images for backgrounds. ####
#### Start by creating the header in the XML file. ####
cat <<EOF > $XML_FILE
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
EOF
#### Add each file to the XML file. ####
#### Doing it this way makes sure files with spaces in their names are ####
#### handled properly. (ls .... | while read fname; do) ####
ls -1 $WALLPAPER_DIR/*.jpg $WALLPAPER_DIR/*.png $WALLPAPER_DIR/*.jpeg 2> /dev/null |
while read image_name; do
echo " Adding: `basename "$image_name"`."
fname=`basename "$image_name"`
fname="${fname%%\.*}"
echo " <wallpaper>" >> $XML_FILE
echo " <name>$fname</name>" >> $XML_FILE
echo " <filename>$image_name</filename>" >> $XML_FILE
echo " <options>stretched</options>" >> $XML_FILE
echo " <pcolor>#c58357</pcolor>" >> $XML_FILE
echo " <scolor>#c58357</scolor>" >> $XML_FILE
echo " <shade_type>solid</shade_type>" >> $XML_FILE
echo " </wallpaper>" >> $XML_FILE
done
#### Create the footer for the XML file. ####
echo "</wallpapers>" >> $XML_FILE
cat <<EOF
################################################################################
You're almost done. copy the generated file ubuntu-wallpapers.xml to the
folder /usr/shared/gnome-background-properties
REMEMBER to backup the current ubuntu-wallpaper.xml in that folder first!
################################################################################
EOF
J'ai rencontré le même problème et j'ai écrit un script python pour modifier un fichier XML personnalisé pouvant être placé dans /usr/share/gnome-background-properties/my-backgrounds.xml
. C'est sur GitHub .
Exemple d'utilisation:
Pour ajouter space_galaxy.jpeg
et fuzz_dog.png
au fichier XML:
python my-backgrounds.py -a space_galaxy.jpeg fuzzy_dog.png -n "Cool Galaxy" "Cute Dog"
Notez que le fichier XML par défaut est à /usr/share/gnome-background-properties/my-backgrounds.xml
(c'est ici que GNOME surveille les fichiers XML). Pour spécifier un autre fichier XML, utilisez l'option -x
:
python my-backgrounds.py -a space_galaxy.jpeg -x ~/my-backgrounds.xml
Pour supprimer des entrées du fichier XML, utilisez l'option -r
:
python my-backgrounds.py -r "Cool Galaxy" fuzzy_dog.png
Cela fonctionne avec GNOME 3.6 et Python 3.3
Avec CreBS (Create Background Slideshow), vous pouvez créer les fichiers XML pour les diaporamas de fond d'écran. Les chemins d'accès complets aux images sont stockés dans le fichier XML, ce qui évite de déplacer les fichiers.
voici une mise à jour:
#!/bin/bash
################################################################################
# This script will take all wallpapers in a given folder and
# make them available as options in the "change desktop background" OR "system->pref->apperances"
# dialog boxes.
# for ubuntu or debian
# wallpapers are in /usr/share/pixmaps/backgrounds/gnome OR /usr/share/backgrounds
# config file(s) for the dialog are in /usr/share/gnome-background-properties
# --that will make them system wide.
#
#ToDo:
# paths with spaces.
################################################################################
# put the output in the same directory as this script
OutDirectory="$( cd "$( dirname "$0" )" && pwd )"
OutFile="$OutDirectory/gnome-added.xml"
# options
options="zoom" #zoom is best but stretch,center,scale,tile,span
shade_type="solid" #horizontal-gradient, vertical-gradient
pcolor="#000000"
scolor="#000000"
if [ $# -ne 1 ]; then
echo "*** need path to directory containing files to include."
echo "*** for example: /usr/share/backgrounds"
exit 1
else
ScanDirectory=$1
fi
#------need to strip and trailing "/" or this writes incorrect file names.
# not if [ "$lastchr" -eq "/" ]
# lastchr=`expr substr $ScanDirectory ${#ScanDirectory} 1` #--OR:
lastchr=${ScanDirectory#${ScanDirectory%?}}
if [ "${lastchr}" = "/" ]; then
ScanDirectory=${ScanDirectory%?}
fi
#--operating in same directory as the script? set full path for the xml file
if [ ${#ScanDirectory} -le 1 ]; then
ScanDirectory=$OutDirectory
fi
# ---does directory exist
if [ ! -d $ScanDirectory ]; then
echo "**** The wallpaper directory \"$ScanDirectory\" does not exist. ****"
echo "**** Precedure Terminated. ****"
exit 1
fi
# ----can we write to it?
# touch $OutDirectory/testfile >/dev/null 2>/dev/null
# if [ $? -ne 0 ]; then
if [ ! -w $OutDirectory ]; then
echo "**** No permissions to the desktop share directory. ****"
echo "**** $OutDirectory ****"
echo "**** Procedure Terminated. ****"
exit 1
fi
#### Count the number of jpg/jpeg/png/svg [tif(f)] images. ####
numfiles=`ls -1 $ScanDirectory/*.jpg ScanDirectory/*.jpeg ScanDirectory/*.png ScanDirectory/*.svg 2>/dev/null | wc -l`
#### If there are no image files there then exit. ####
if [ $numfiles -eq 0 ]; then
echo "**** The wallpaper directory \"$ScanDirectory\" has no images. ****"
echo "**** Precedure Terminated. ****"
exit 1
fi
#### Now we create the XML file containing the images for backgrounds. ####
#### Start by creating the header in the XML file. ####
cat <<EOF > $OutFile
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
EOF
#### Add each file to the XML file. ####
#### Doing it this way makes sure files with spaces in their names are ####
#### handled properly. (ls .... | while read fname; do) ####
ls -1 $ScanDirectory/*.jpg $ScanDirectory/*.png $ScanDirectory/*.jpeg $ScanDirectory/*.svg 2> /dev/null |
while read image_name; do
fname=`basename "$image_name"`
echo " Adding: $fname."
echo " <wallpaper deleted=\"false\">" >> $OutFile
echo " <name>$fname</name>" >> $OutFile
echo " <filename>$image_name</filename>" >> $OutFile
echo " <options>$options</options>" >> $OutFile
echo " <pcolor>$pcolor</pcolor>" >> $OutFile
echo " <scolor>$scolor</scolor>" >> $OutFile
echo " <shade_type>$shade_type</shade_type>" >> $OutFile
echo " </wallpaper>" >> $OutFile
done
#### Create the footer for the XML file. ####
echo "</wallpapers>" >> $OutFile
C'est comme ça que je le fais.
Cliquez avec le bouton droit sur le bureau> Changer d'arrière-plan.
Cliquez sur Ajouter dans l'onglet Arrière-plan.
Allez dans le dossier et sélectionnez tous les fonds d'écran en cliquant dessus et en appuyant sur Ctrl + A.
Ils devraient maintenant être affichés dans le sélecteur. J'essaie également de trouver une petite application que j'avais utilisée pour changer automatiquement le fond d'écran. Ill post quand je le trouve.
J'en ai trouvé un qui s'appelle Wally et il est fortement recommandé, mais je me souviens que je ne l'avais pas utilisé. Quoi qu’il en soit, vous pouvez l’installer en tapant
Sudo apt-get install wally
dans un terminal.
Pour afficher les fonds d'écran dans le sélecteur, sans avoir à mettre à jour manuellement le dossier, vous devrez les ajouter à /usr/share/backgrounds
.
J'ai également pu lister les fonds d'écran dans le sélecteur, en créant un lien symbolique dans le dossier.
$ cd /usr/share/backgrounds $ ln -s /path/to/wallpapers
Cela pourrait être utile, car il ne serait pas toujours pratique d’ajouter des fonds d’écran à un dossier appartenant à root à chaque fois.