Home | solVItaire


As its name suggests, this is an implementation of the classic solitaire games Klondike, Spider and FreeCell. It has some nice to use vi(1) like keybindings, but can also be played with standard cursor keys, the number pad/row or even the mouse (if your terminal supports that). You can select from three different Unicode character schemes, including a colour one. solVItaire has a very unique join mode (see Keybindings).

You can download the game from git.gir.st:

git clone https://git.gir.st/solVItaire.git
cd solVItaire

See it in action



h / j / k / l (or cursor keys)
move left / down / up / right
lock in selection
pull from stock
undo last move
Join: automagically find the best pile to join to here
directly select a pile
enter ex(1) mode. Commands available are :quit, :new and :restart.

You can double click (or hit the spacebar/number twice) to move the selected card to the foundation (or a free cell in FreeCell).

In Klondike, the numbers 8, 9, and 0 address the stock, waste and foundation, respectively. In FreeCell, 9 and 0 address the free cells and the foundation.


Uses a big-ass two-dimensional function pointer array to select which move to execute. Code could do with some cleanup, but it works.

Apparently, accessing prerequisites with a different file name than the target name with $< in Makefiles is a GNU extension. Who knew?