Как автоматически создавать и устанавливать обои на основе случайных цитат?
Я очень люблю цитаты и хотел бы отображать их на рабочем столе в качестве обоев.
Печатная цитата на середине простого изображения в качестве обоев для рабочего стола.
Есть ли программное обеспечение для этой работы? Я знаю, что существует множество программ для отображения случайных изображений в качестве обоев, но этот должен генерировать изображения с текстом и отображать его в качестве обоев.
1 ответ
Вы можете написать скрипт bash, чтобы сделать это для вас. Основан на учебнике по xplanet (для настройки обоев, это немного gconf-magic;)) и этой ветке для написания текста с помощью imagemagick.
Что-то вроде этого:
#!/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
Здесь мы представляем полнофункциональный вариант "создать обои со случайной цитатой на нем", который можно даже изменить на "выбрать случайные обои для печати случайной цитаты на нем".;)
Использование: Просто посмотрите на конф. Повеселись!
#!/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 (Robert.Zenz@gmx.at)
# Written for UK at Usersuper.ru
# 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
У этого скрипта теперь есть дом на GitHub.