#!/bin/bash #Add the name in the corner on wallpaper #set -x . /home/default LOCKFILE PROGRAMS "convert gimp" TMP_DIR=`mktemp -d` echo $TMP_DIR > /dev/null test -d $TMP_DIR || mkdir -p $TMP_DIR test -f $TMP_DIR/name.png && rm $TMP_DIR/name.png PREVIEW="x240+64+0" WIDTH=1000 LAYOUTS="Indent Shadow Raise Border" . ~/bin/fontlist.txt # LAYOUT : Text Layout {{{ Indent() { convert -size "$WIDTH"x250 xc:transparent -font $FONT -pointsize 72 \ -fill black -annotate +24+154 "$NAME" \ -fill white -annotate +26+156 "$NAME" \ -fill $COLOUR -annotate +25+155 "$NAME" \ $TMP_DIR/name.png } Shadow () { convert -background none -stroke \#5e5e5e -fill $COLOUR \ -font $FONT -pointsize 72 label:"$NAME" -trim \ \( +clone -background black -shadow 80x3+3+3 \) +swap \ -background none -layers merge +repage \ $TMP_DIR/name.png } Raise () { convert -size "$WIDTH"x250 xc:transparent -font $FONT -pointsize 72 \ -fill white -annotate +24+156 "$NAME" \ -fill black -annotate +26+154 "$NAME" \ -fill $COLOUR -annotate +25+155 "$NAME" \ $TMP_DIR/name.png } Border () { convert -size "$WIDTH"x250 xc:transparent -font $FONT -pointsize 72 \ -draw "fill black text 27,157 '$NAME' \ text 25,158 '$NAME' \ text 23,157 '$NAME' \ text 22,155 '$NAME' \ text 23,153 '$NAME' \ text 25,152 '$NAME' \ text 27,153 '$NAME' \ text 28,155 '$NAME' \ fill $COLOUR text 25,155 '$NAME' " \ $TMP_DIR/name.png } # }}} # SPLIT_NAME : Split the name {{{ SPLIT_NAME () { COIN=$RANDOM let "COIN %= 2" # COIN=1 if [ "$COIN" = "1" ] then NAME2=`echo $NAME|awk '{print $NF}'` NAME1=`echo $NAME|awk -F"$NAME2" '{print $1}'` # Last part NAME=$NAME2 $LAYOUT mogrify -trim -bordercolor transparent -border 2 $TMP_DIR/name.png mv $TMP_DIR/name.png $TMP_DIR/name2.png # First part NAME=$NAME1 $LAYOUT mogrify -trim -bordercolor transparent -border 2 $TMP_DIR/name.png mv $TMP_DIR/name.png $TMP_DIR/name1.png montage -label '' $TMP_DIR/name1.png -label '' $TMP_DIR/name2.png -tile 1x2 -mode concatenate \ -background transparent $TMP_DIR/name.png else $LAYOUT fi } # /* }}} */ #{{{ All the rest for FILE in *.jpg do #Get a font FONT=($FONTS) NUM_FONT=${#FONT[*]} FONT=${FONT[$((RANDOM%NUM_FONT))]} echo $FONT >> ~/tmp/fontcounter echo $FONT $FILE #Get the name COLOUR=`convert $FILE -filter Box -resize 1x1 -depth 8 txt:-| \ tail -n 1|awk '{print $NF}'` NAME=`jhead $FILE |grep ^Comment|awk -F": " '{print $NF}'` # Get the random layout LAYOUT=($LAYOUTS) NUM_LAYOUT=${#LAYOUT[*]} LAYOUT=${LAYOUT[$((RANDOM%NUM_LAYOUT))]} SPLIT_NAME #Resize the name nice gimp --batch-interpreter plug-in-script-fu-eval -i -d -b '(script-autocrop "'$TMP_DIR/name.png'")' -b '(gimp-quit 0)' >> /dev/null 2>&1 nice convert -background transparent -splice 50x50 $TMP_DIR/name.png $TMP_DIR/name.png nice convert -gravity southeast -background transparent -splice 0x50 $TMP_DIR/name.png $TMP_DIR/name.png PIC_SIZE=`jhead $FILE|grep ^Res|awk '{print $3}'` NAME_SIZE=`identify $TMP_DIR/name.png|awk '{print $3}'|awk -Fx '{print $1}'` if [ "$NAME_SIZE" -gt "$PIC_SIZE" ] then nice mogrify -resize $PIC_SIZE $TMP_DIR/name.png fi # Place the text PLACINGS="NorthWest SouthWest SouthEast" PLACING=($PLACINGS) NUM_PLACING=${#PLACING[*]} PLACING=${PLACING[$((RANDOM%NUM_PLACING))]} mogrify -trim -bordercolor transparent -border 50 $TMP_DIR/name.png nice composite -gravity $PLACING $TMP_DIR/name.png $FILE $FILE done #killall xv rm $TMP_DIR -rf gqview . #}}}