Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


some dancing gophers in your terminal, my followup to terminalman.. dancing gophers

heres how I make these files.. find a nice image, or animated gif that you want to use in your terminal. download and compile pixterm -->

then find your image, split it into the individual frames (gif2jpeg or whatever tool you want to use)

use pixterm to display a frame in your terminal... where frame.jpg is on of your image frames such as:

./pixterm -s 2 -tc 25 -tr 25 frame.jpg

if it looks good, run

./pixterm -go -s 2 -tc 25 -tr 25 frame1.jpg >> frames.go

./pixterm -go -s 2 -tc 25 -tr 25 frame2.jpg >> frames.go

.. run the command for each frame in your animation, it saves it all in the frames.go file..

the frames.go file, convert the fmt.Printf("") statements to a string array, use your text editors column edit function (shift + right click in sublime) to easily edit the file into this format:

   var animationFrames = []string {

replace the "" with the ansi-escaped Printf strings that pixterm generates.. you should now have a string array of each animation frame.

To figure out your individual frame sizes.. use a helper function such as

   func drawFrameIndex() {
       for i,v := range animationFrames {
          fmt.Printf("%d %v",i,v)

Then run it and it will print out all the frames, with the index values.. figure out the start/end ranges of each frame (I do it by hand but I suppose you could do it programmatically)..

as for the rest.. check out the code to see how it draws the frames based on the counters. It just does a lookup on the initial index and adds the frame length, and draws it at the l,c (line,column or x,y) on the terminal.


some dancing gophers in your terminal



No releases published


No packages published