Skip to content


Repository files navigation


A code breaking game made for elementary OS.

Get it on AppCenter License: GPL v3 Build GitHub release

Default style screenshot Dark style screenshot
Classic game with color blind mode enabled, showcasing the default style Advanced game with an active help tour, showcasing the dark style

What's up with that name?

sage noun: one (such as a profound philosopher) distinguished for wisdom


I guess you need to be a sage in order to master this game. Or you'll turn into a sage by mere act of playing the game? Either way, you are the sage in the end.


  • Inspiration for this game came form @colinkiama's Challenge #2: Tabletop over at r/vala subreddit. Kudos to Colin for energizing the Vala community over on Reddit, it makes app development in the ecosystem exciting!
  • Next, I was heavily influenced by @igordsm's recent blog posts on reactive programming in Vala. Kudos to Igor for thinking through and eloquently elaborating on this design pattern!
  • Lastly, elementary app development wouldn't be possible without the elementary team. So kudos to Danielle and Cassidy for running the show and the entire team for making elementary OS such a nice platform to develop for!

How to install

Sage is packaged with Flatpak and published on elementary OS AppCenter. If you are running some other Linux distribution you can download the flatpakref file from elementary repo and install it either using a graphical package manager, or from terminal with:

flatpak install --from ./hr.from.josipantolis.sage.flatpakref

How to build from source

If you want to you can build Sage locally, from source. You can find detailed instructions for setting up local environment in elementary developer docs.

Build it with meson

You can meet all dependencies by installing elementary SDK:

sudo apt install elementary-sdk

For a full list of dependencies check out the file.

Run meson build to configure build environment. Change into the build directory and run ninja to build

meson build --prefix=/usr
cd build

To install, use ninja install, then execute with hr.from.josipantolis.sage

ninja install

Build it with flatpak

You may need to install elementary flatpak runtime first. You can do that with:

flatpak install --user io.elementary.Sdk//7

To install Sage use flatpak-builder, from project root directory run:

flatpak-builder build hr.from.josipantolis.sage.yml --user --install --force-clean

then execute with:

flatpak run hr.from.josipantolis.sage

Translate it?!

To generate translation files execute

ninja hr.from.josipantolis.sage-pot
ninja hr.from.josipantolis.sage-update-po



Copyright © 2022 Josip Antoliš,