Welcome to Incremental Social! Learn more about this project here!
Check out lemmyverse to find more communities to join from here!

Shareni OP ,

It's pretty easy for home-manager use, but still really useful. You can:

  • choose which packages to install from stable and which from unstable
  • add packages from repos that have flake.nix in them
  • correctly match nix and home-manager versions, and always update them at the same time
  • allow-unfree without nixpkgs conf, so 1 less directory required in .config (if they accepted the "experimental" features it'd be down to 1)

Here's an example:

flake.nix
{
  description = "home flake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    home-manager.url = "github:nix-community/home-manager/master";
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
    nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11";

    # nixgl.url = "github:guibou/nixGL";
  };

  outputs =
    {
      self,
      nixpkgs,
      nixpkgs-stable,
      home-manager,
      # nixgl,
      ...
    }@inputs:
    let
      system = "x86_64-linux";
      pkgs = import nixpkgs {
        system = system;
        config = {
          allowUnfree = true;
        };
      };
      pkgsStable = import nixpkgs-stable {
        system = system;
        config = {
          allowUnfree = true;
        };
      };
    in
    {
      homeConfigurations = {
        shareni = home-manager.lib.homeManagerConfiguration {
          inherit pkgs;
          modules = [ ./home.nix ];
          extraSpecialArgs = {
            inherit inputs;
            inherit system;

            kmonad = pkgsStable.kmonad;
          };
        };
      };
    };
}
  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • linuxmemes@lemmy.world
  • incremental_games
  • meta
  • All magazines