Aaron's Blog

Unstable software in NixOS

Keeping the system stable with unstable packages

[ nixos  22.05  ] 2 min read

Installing newer software

Recently I ran into this bug with the stable (22.05 at this writing) of the ProtonVPN software in NixOS. A way to work around it was use the unstable version of the software which had the fix. I did a bit of Googling to find how to do that so I wanted to share what I found, this is the file that I use:

{ config, pkgs, ...}:

let
  unstable = import
    (builtins.fetchTarball https://github.com/nixos/nixpkgs/tarball/master)
    # reuse the current configuration
    { config = config.nixpkgs.config; };
in
{
  environment.systemPackages = with pkgs; [
    unstable.protonvpn-cli
    unstable.protonvpn-gui
  ];
}

Now I made this in a file like this /etc/nixos/unstable-programs.nix and then edit my /etc/nixos/configuration.nix file to import it like this:

    [
        ./hardware-configuration.nix
        ./plasma.nix
        ./programs.nix
        ./unstable-programs.nix
    ];

That way I can comment it out once the fix is released or if I want to remove it for some reason. Once I made these edits to those two files I would rebuild and switch with this command sudo nixos-rebuild switch now if you want to test it just for the next reboot in case you are worried you can run this command instead sudo nixos-rebuild test. Now when you reboot it boots into that generation but if it doesn’t work just reboot and you’ll be in the previous generation without the change.