I have been hearing a lot about Nix and NixOS for the last 2 years. I have been meaning to learn the specifics of Nix for a while now.
Recently I got some time to start with https://nixos.org/learn/ . Especially while progressing into Nix language, I discovered that the Nix language is of “functional paradigm” which took me back to times with ML, LISP and Scheme.
The Nix system is VERY powerful. While, the learning curve is steep, you can move very fast if you are familiar and comfortable with functional programming languages and the paradigm.
One another reason that I prioritised playing with Nix package manager is that, my beloved mind-mapping app Freeplane ‘s latest release was not available via apt
or snap
.
This post aims to document how I did the Freeplane installation using Nix package manager.
Step 1: Install Nix
$ sh <(curl -L https://nixos.org/nix/install) --daemon
While you can use the Nix binaries provided by your Linux distro, I prefer the latest via the Nix installation page.
Step 2: Install Freeplane
Freeplane is already available from the Nixpkgs collection. Here, we use the nix-env
command:
$ nix-env -iA nixpkgs.freeplane
Step 3: Start Freeplane
Unlike snaps, you can issue the command freeplane
from terminal.
$ freeplane
Step 4: Create a Desktop Entry
Create file ~/.local/share/applications/freeplane.desktop
using your favourite text editor with content below:
[Desktop Entry]
Version=1.0
Type=Application
Name=Freeplane
Comment=Freeplane Mind Mapping Tool
Exec=freeplane
Icon=freeplane
Terminal=false
Categories=Office;Education;
After you save the file, you can find the Freeplane launcher in your Linux GUI, but you may notice that it does not have the proper icon. That is because that the specified “freeplane” icon not being available on the system.
I preferred to get the image file for the icon from Freeplane GitHub, and have put it under ~/.local/share/
directory. That sorted out the icon problem.
Step for future: Updating Freeplane to Latest
First refresh your Nix channels:
$ nix-channel --update
and then, update Freeplane:
$ nix-env -u freeplane
Hope that helps.. Take care..