Você pode escrever um script bash para fazer isso por você. Baseado no tutorial do xplanet (para definir o papel de parede, é algum gconf-magic;)) e este tópico para escrever o texto usando imagemagick.
Algo parecido com isto:
#!/bin/bash
convert -font "./verdana.ttf" -fill "#101411" -pointsize 33 -gravity "West" -draw "text 1,0 'foobar'" bg.png text.png
gconftool -t str -s /desktop/gnome/background/picture_filename text.png
Aqui vamos nós, um cheio de recursos 'crie um papel de parede com uma citação aleatória sobre ele', que pode até ser modificado para 'escolher um papel de parede aleatório para imprimir uma citação aleatória sobre ele'. ;)
Uso: Basta olhar para a seção de conf. Divirta-se!
#!/bin/bash
# This is a script which prints random quotes (gathered from files) on to
# a defined wallpaper.
# Some ideas are coming from the xplanet-script located at: http://rbrusu.com/xplanet-desktop-wallpape.html
# Written by Robert 'Bobby' Zenz ([email protected])
# Written for UK at Superuser.com
# Config-Section
# --------------
quote=~/quotes.txt # Set this to a folder, for picking random files, or set
# set it to a file, to pick random lines
wallpaper=~/wallpapers/ # Set it to a fixed wallpaper, or to a folder to pick
# a random one inside that
tempPic=tempWall.png # The name of the temporary file
textSize=33 # The size of the text
textColor="#555555" # The color of the text (watch the quotation marks!)
sleep=3m # Set how long the script will pause before
# picking a new wallpaper/quote
#---------------
# Global variable, please ignore this...
pickedFile=GlobalyDefined
pickedQuote=GlobalyDefined
pickedWallpaper=GlobalyDefined
function getRandomLine {
pickedQuote=$(shuf -n 1 $1)
}
function getRandomFile {
cd $1
set -- *
length=$#
random_num=$(( $RANDOM % ($length + 1) ))
pickedFile=${!random_num}
while [ ! -e $pickedFile ]; do
pickedFile=${!random_num}
done
pickedFile=$(pwd)/$pickedFile
cd -
}
function main {
if [ -d $quote ]; then
getRandomFile $quote
pickedQuote=$(cat $pickedFile)
fi
if [ -f $quote ]; then
getRandomLine $quote
fi
if [ -d $wallpaper ]; then
getRandomFile $wallpaper
pickedWallpaper=$pickedFile
fi
if [ -f $wallpaper ]; then
pickedWallpaper=$wallpaper
fi
convert -fill "$textColor" -pointsize $textSize -gravity "Center" -draw "text 1,0 '$pickedQuote'" $pickedWallpaper $tempPic
gconftool -t str -s /desktop/gnome/background/picture_filename $tempPic
sleep $sleep
exec $0
}
main
Esse script agora tem uma casa no GitHub .