Shareni@programming.dev to linuxmemes@lemmy.world · 6 months agoThe genesis of a nixOS userprogramming.devimagemessage-square24fedilinkarrow-up1149arrow-down113file-text
arrow-up1136arrow-down1imageThe genesis of a nixOS userprogramming.devShareni@programming.dev to linuxmemes@lemmy.world · 6 months agomessage-square24fedilinkfile-text
minus-squareShareni@programming.devOPlinkfedilinkarrow-up3arrow-down1·6 months agoIt’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; }; }; }; }; }
It’s pretty easy for home-manager use, but still really useful. You can:
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; }; }; }; }; }