Here are all the Alpine spinners, animated:
Alpine spinners are coded in the source file alpine/busy.c:
63 } spinners[] = {
64 {4, 4, {"<|> ", "> ", "<-> ", "<\\> "}},
65 {11, 4, {"--|-(o)-|--", "--/-(o)-\\--", "----(o)----", "--\\-(o)-/--"}},
66 {6, 7, {"\\____/", "_\\__/_", "__\\/__", "__/\\__",
67 "_/__\\_", "/____\\", "|____|"}},
68 {4, 4, {"<|> ", "<\\> ", "<-> ", "> "}},
...
Each spinner is defined as a series of fixed-width strings displayed as frames in an animation. I've taken these spinners out of the source, and written a Python script to produce a shell script to produce GIF animations of each spinner with the help of ImageMagick.
The spinners, reduced to a simple syntax, spinners.txt:
"<|> ""> ""<-> ""<\\> " "--|-(o)-|--""--/-(o)-\\--""----(o)----""--\\-(o)-/--" "\\____/""_\\__/_""__\\/__""__/\\__""_/__\\_""/____\\""|____|" "<|> ""<\\> ""<-> ""> " ...
The Python script, spinners.py:
import re
f = open("spinners.txt")
i = 0
for l in f.readlines():
l = l.strip()
m = re.findall('"([^"]+)"', l)
frame = 0
for item in m:
name = "spinner-%02d-%02d.png" % (i, frame)
cmd = """convert -size 200x20 xc:black -fill white -font "DejaVu-Sans-Mono-Bold" -draw "text 8,16 '[Working %s ]'" %s""" % (item, name)
print cmd
frame += 1
print "echo spinner-%02d.gif" % i
print "convert -delay 10 -loop 0 spinner-%02d-*.png spinner-%02d.gif" % (i, i)
print "rm spinner-%02d-*.png" % i
i += 1
f.close()
An example output:
convert -size 200x20 xc:black -fill white -font "DejaVu-Sans-Mono-Bold" -draw "text 8,16 '[Working <|> ]'" spinner-00-00.png convert -size 200x20 xc:black -fill white -font "DejaVu-Sans-Mono-Bold" -draw "text 8,16 '[Working </> ]'" spinner-00-01.png convert -size 200x20 xc:black -fill white -font "DejaVu-Sans-Mono-Bold" -draw "text 8,16 '[Working <-> ]'" spinner-00-02.png convert -size 200x20 xc:black -fill white -font "DejaVu-Sans-Mono-Bold" -draw "text 8,16 '[Working <\\> ]'" spinner-00-03.png echo spinner-00.gif convert -delay 10 -loop 0 spinner-00-*.png spinner-00.gif rm spinner-00-*.png convert -size 200x20 xc:black -fill white -font "DejaVu-Sans-Mono-Bold" -draw "text 8,16 '[Working --|-(o)-|-- ]'" spinner-01-00.png convert -size 200x20 xc:black -fill white -font "DejaVu-Sans-Mono-Bold" -draw "text 8,16 '[Working --/-(o)-\\-- ]'" spinner-01-01.png convert -size 200x20 xc:black -fill white -font "DejaVu-Sans-Mono-Bold" -draw "text 8,16 '[Working ----(o)---- ]'" spinner-01-02.png convert -size 200x20 xc:black -fill white -font "DejaVu-Sans-Mono-Bold" -draw "text 8,16 '[Working --\\-(o)-/-- ]'" spinner-01-03.png echo spinner-01.gif convert -delay 10 -loop 0 spinner-01-*.png spinner-01.gif rm spinner-01-*.png convert -size 200x20 xc:black -fill white -font "DejaVu-Sans-Mono-Bold" -draw "text 8,16 '[Working \\____/ ]'" spinner-02-00.png convert -size 200x20 xc:black -fill white -font "DejaVu-Sans-Mono-Bold" -draw "text 8,16 '[Working _\\__/_ ]'" spinner-02-01.png ...
The script can be run with python spinners.py | sh -e.
https://michal.guerquin.com/alpine-spinners.html, updated 2008-11-10 01:53 EST