7c8941a764
This update makes using flake (self or external) modules and overlays more explicit, by setting nixpkgs options directly in the config, instead of the flake. To help import your own overlays and modules, the `outputs` attribute is now available on your configs.
78 lines
2.5 KiB
Nix
78 lines
2.5 KiB
Nix
{
|
|
description = "Your new nix config";
|
|
|
|
inputs = {
|
|
# Nixpkgs
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
|
|
# Home manager
|
|
home-manager.url = "github:nix-community/home-manager";
|
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
# TODO: Add any other flake you might need
|
|
hardware.url = "github:nixos/nixos-hardware";
|
|
|
|
# Shameless plug: looking for a way to nixify your themes and make
|
|
# everything match nicely? Try nix-colors!
|
|
# nix-colors.url = "github:misterio77/nix-colors";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, home-manager, ... }@inputs:
|
|
let
|
|
inherit (self) outputs;
|
|
forAllSystems = nixpkgs.lib.genAttrs [
|
|
"aarch64-linux"
|
|
"i686-linux"
|
|
"x86_64-linux"
|
|
"aarch64-darwin"
|
|
"x86_64-darwin"
|
|
];
|
|
in
|
|
rec {
|
|
# Your custom packages
|
|
# Acessible through 'nix build', 'nix shell', etc
|
|
packages = forAllSystems (system:
|
|
let pkgs = nixpkgs.legacyPackages.${system};
|
|
in import ./pkgs { inherit pkgs; }
|
|
);
|
|
# Devshell for bootstrapping
|
|
# Acessible through 'nix develop' or 'nix-shell' (legacy)
|
|
devShells = forAllSystems (system:
|
|
let pkgs = nixpkgs.legacyPackages.${system};
|
|
in import ./shell.nix { inherit pkgs; }
|
|
);
|
|
|
|
# Your custom packages and modifications, exported as overlays
|
|
overlays = import ./overlays;
|
|
# Reusable nixos modules you might want to export
|
|
# These are usually stuff you would upstream into nixpkgs
|
|
nixosModules = import ./modules/nixos;
|
|
# Reusable home-manager modules you might want to export
|
|
# These are usually stuff you would upstream into home-manager
|
|
homeManagerModules = import ./modules/home-manager;
|
|
|
|
nixosConfigurations = {
|
|
# FIXME replace with your hostname
|
|
your-hostname = nixpkgs.lib.nixosSystem {
|
|
specialArgs = { inherit inputs outputs; };
|
|
modules = [
|
|
# > Our main nixos configuration file <
|
|
./nixos/configuration.nix
|
|
];
|
|
};
|
|
};
|
|
|
|
homeConfigurations = {
|
|
# FIXME replace with your username@hostname
|
|
"your-username@your-hostname" = home-manager.lib.homeManagerConfiguration {
|
|
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
|
extraSpecialArgs = { inherit inputs outputs; };
|
|
modules = [
|
|
# > Our main home-manager configuration file <
|
|
./home-manager/home.nix
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|