Co-authored-by: Darragh Elliott <me@delliott.net> Reviewed-on: #3
README
About
Recently the FSFE came up with a new poster design, I believe mainly designed by @mk and @sofiaritz, my sincere apologies if I am leaving anyone out. The poster is essentially a man page about the FSFE's Vision for 2048. The poster can be seen at https://fsfe.org/news/2025/news-20250926-01.html.
During FOSDEM 2026 I was speaking with @floriansnow about the new poster, and he had the very nice idea to actually implement the program, ideally complete with matching man page.
This seemed very entertaining, and I had been looking for a toy Rust project to do for some time. So I whipped up a quick prototype during FOSDEM, polished it on the way back home afterwards, and here we are.
It supports localisation, and has a largely LibreTranslate based German localisation which is almost certainly flawed in ways beyond my German language skills to detect.
For a video of use see the embedded video below.
Help Menu
❯ ./target/debug/vision2048
FSFE's vision for 2048
Usage: vision2048 [OPTIONS]
Options:
-d, --device-neutrality Everyone has the right to remove and install any software on their devices!
-p, --public-code All public funding should be for Free Software only! This principle has been at the hear of our efforts under 'Public Money? Public Code!'.
-r, --regulation All regulatory frameworks should encourage the use and development of Free Software. We want regulatory frameworks to recognise the contributions by Free Software by incentivising its development.
-l, --legal-education Licensing and legal issues are based on facts rather than fear and uncertainty. Free software contributors need not to worry about legal issues.
-y, --young-generation Young people have the opportunity to tinker, experiment, and code with Free Software as the default.
-h, --help Print help (see more with '--help')
-V, --version Print version
Building
The only real dependency of this project is cargo.
This can be installed using your distributions package manager, or through rustup. rustup can be installed from your distributions package manager. The project can then be built using
cargo build
There is a nix devshell for the project that one can use with
nix develop .#
Note that man pages are only generated if the environment variable GEN_ARTIFACTS_DIR is set, and are output to $GEN_ARTIFACTS_DIR/man.
Installing
It is possible to build and install the project without bothering with a clone.
One can simply run
cargo install --git https://git.fsfe.org/fsfe-system-hackers/vision2048
Acknowledgements
- The basic program and the textual descriptions are lifted from/based on the poster found at https://fsfe.org/news/2025/news-20250926-01.html, designed by @mk and @sofiaritz. My sincere apologies if I am leaving anyone out.
- @floriansnow had the original idea to create an implementation of the program for the manpage.
- The project structure and how to use
clap-mangenwas based heavily on https://github.com/0xle0ne/clap-mangen-example - The demo video was recorded using vhs
