Me in 2022 ========== ![](https://i.imgur.com/m5rQtBI.gif) The above *.gif* shows a snapshot taken by my computer at 12:00 for a large number of days of the year. The below *.gif* shows a snapshot taken by my computer every five minutes on the 22/02/2022: ![](https://i.imgur.com/Pw1iMSn.gif) ### To create such a *.gif* in Linux **a. Create a script to take a photo from your webcam:** ``` ## Defs panopticonDir="~/.panopticon" selfiesDir="$panopticonDir/selfies" today="$(date +"%Y%m%d")" timeNow="$(date +"%H%M%S")" ## Init mkdir -p "$selfiesDir/$today" ## Selfies selfieFileName="webcam_$timeNow.jpg" /usr/bin/fswebcam -r 1280x720 "$selfiesDir/$today/$selfieFileName" # ^ works with pipewire ``` **b. Call the script from within crontab** Call ``` $ sudo crontab -e ``` and then paste: ``` */5 * * * * /home/loki/.panopticon/shoot.sh ``` **c. Put it all together into a gif** One gif from snapshots taken at 12:00. ``` summary_dir="~/.panopticon/summary-12" mkdir summary_dir for dir in ~/.panopticon/*/ ; do if [[ -d "$dir" && ! -L "$dir" ]]; then echo "Entering $dir"; dirname_raw="$(echo "$dir" | sed 's#/##')" temp_photo_name="$(echo $dirname_raw/webcam_1200*)" echo "$temp_photo_name" cp $temp_photo_name temp.jpg mv temp.jpg $summary_dir/$dirname_raw.jpg fi; done convert -delay 10 -loop 0 $summary_dir/*.jpg 12.gif ``` One for each day with something like: ``` for dir in */ ; do if [[ -d "$dir" && ! -L "$dir" ]]; then echo "Entering $dir"; dirname_raw="$(echo "$dir" | sed 's#/##')" convert -delay 10 -loop 0 $dirname_raw/*.jpg daily-gifs/$dirname_raw.gif echo "Created daily_gifs/$dirname_raw" fi; done ```