blob: b8fc463b701e36a94b28b84280be51fd9f9c28b2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#!/bin/bash
SCR_WIDTH=1980
SCR_HEIGHT=1080
PADDING=50
FONT_SIZE=20
CURL="curl -s"
function fail() {
if [ -f ~/.bg.png ]; then
feh --bg-max -B white ~/.bg.png
fi
exit -1;
}
# Test internet
timeout 4 wget -q --spider http://texample.net
if [ $? -ne 0 ]; then fail; fi
let "SCR_WIDTH -= 2 * $PADDING"
let "SCR_WIDTH /= 2"
let "SCR_HEIGHT -= 2 * $PADDING"
PAGE=$RANDOM; let "PAGE %= 22"; let "PAGE += 1"
# Fetch list of texamples
cd /tmp
$CURL -o texample.html "http://texample.net/tikz/examples/all/?page=$PAGE"
if [ $? -ne 0 ]; then fail; fi
EXAMPLES="$(grep '^<dl' texample.html | wc -l)"
awk -v n=0 "BEGIN{n=int(rand()*$EXAMPLES)+1} /^<dl/{l++} (l==n){print} END{}" texample.html | sponge texample.html
PDF="$(grep '\/media\/tikz\/examples\/PDF' texample.html | sed "s/.*<a href=\"\([^\"]*\)\">PDF<\/a>.*/\1/")"
TEX="$(grep '\/media\/tikz\/examples\/TEX' texample.html | grep -v overleaf | sed "s/.*<a href=\"\(.*\)\">TEX<\/a>.*/\1/")"
echo $PDF $TEX
$CURL "http://texample.net$PDF" | convert -size "x$SCR_HEIGHT" -density 300 - /tmp/bg.png
$CURL "http://texample.net$TEX" | sed -n '/\\begin{document}/,/\\end{document}/p' | pygmentize -l latex -O font_size=$FONT_SIZE -o /tmp/bg-src.png
montage -geometry "+$PADDING+$PADDING" /tmp/bg-src.png /tmp/bg.png "/tmp/bg-$PAGE.png"
rm /tmp/bg{,-src}.png
if [ $? -ne 0 ]; then fail; fi
feh -B white --bg-max "/tmp/bg-$PAGE.png"
|