Sometimes, you need a package that has not yet been merged into the nixpkgs
repository.
This guide demonstrates how to achieve that using Nix package overlays.
See the full article for more details.
# flake.nix
inputs = {
nixpkgs-tabby.url = "github:geodic/nixpkgs/tabby"; # repo where the tabby package is already added
};
# flake.nix
outputs = {
self,
nixpkgs,
...
} @ inputs: let
inherit (self) outputs;
overlay-module = {
nixpkgs.overlays = [
(final: prev: {
tabby = import inputs.nixpkgs-tabby {
config.allowUnfree = true;
localSystem = { inherit (prev) system; };
};
})
];
};
in {
# ...
};
# flake.nix - inside the outputs attribute set
in {
homeConfigurations = {
username = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."${system}";
modules = [ overlay-module ]; # overlay module
};
};
}
# home.nix
home.packages = [ pkgs.tabby.tabby-terminal ];