dotfiles/flake.nix

100 lines
2.7 KiB
Nix
Raw Normal View History

2022-04-27 01:36:16 +00:00
{
description = "My system";
2022-05-08 20:02:13 +00:00
# Other flakes that we want to pull from
2022-04-27 01:36:16 +00:00
inputs = {
2022-05-08 20:02:13 +00:00
# Used for system packages
2022-04-27 01:36:16 +00:00
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
2022-05-08 20:02:13 +00:00
2022-06-12 21:46:26 +00:00
# Used for MacOS system config
darwin = {
url = "github:/lnl7/nix-darwin/master";
inputs.nixpkgs.follows = "nixpkgs";
};
2022-05-08 20:02:13 +00:00
# Used for user packages
2022-04-27 01:36:16 +00:00
home-manager = {
url = "github:nix-community/home-manager/master";
2022-05-08 20:02:13 +00:00
inputs.nixpkgs.follows =
"nixpkgs"; # Use system packages list where available
2022-04-27 01:36:16 +00:00
};
2022-05-08 20:02:13 +00:00
# Community packages; used for Firefox extensions
2022-05-07 18:24:00 +00:00
nur.url = "github:nix-community/nur";
2022-04-27 01:36:16 +00:00
# Wallpapers
wallpapers = {
url = "gitlab:exorcist365/wallpapers";
flake = false;
};
2022-04-27 01:36:16 +00:00
};
outputs = { self, nixpkgs, darwin, home-manager, nur, wallpapers }:
2022-05-16 00:46:17 +00:00
2022-04-27 01:36:16 +00:00
let
2022-05-08 20:02:13 +00:00
# Global configuration for my systems
globals = {
2022-04-30 16:07:58 +00:00
user = "noah";
fullName = "Noah Masur";
2022-04-30 16:07:58 +00:00
gitEmail = "7386960+nmasur@users.noreply.github.com";
2022-05-11 03:45:50 +00:00
mailServer = "noahmasur.com";
2022-06-04 14:29:36 +00:00
dotfilesRepo = "https://github.com/nmasur/dotfiles";
2022-04-29 00:54:37 +00:00
};
2022-05-08 20:02:13 +00:00
2022-05-16 00:46:17 +00:00
# System types to support.
supportedSystems =
[ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
# Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'.
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
2022-04-27 01:36:16 +00:00
in {
2022-05-08 20:02:13 +00:00
2022-06-05 13:24:46 +00:00
# You can load it from any NixOS system with:
2022-05-10 02:55:10 +00:00
# nix-shell -p nixFlakes
# sudo nixos-rebuild switch --flake github:nmasur/dotfiles#desktop
2022-04-27 01:36:16 +00:00
nixosConfigurations = {
2022-06-20 03:44:29 +00:00
desktop = import ./hosts/desktop {
inherit nixpkgs home-manager nur globals wallpapers;
};
2022-04-27 01:36:16 +00:00
};
2022-05-08 20:02:13 +00:00
2022-06-12 21:46:26 +00:00
darwinConfigurations = {
macbook = import ./hosts/macbook {
inherit nixpkgs darwin home-manager nur globals;
};
};
# You can partition, format, and install from a live disk with:
2022-06-05 13:24:46 +00:00
# nix-shell -p nixFlakes
# nix run github:nmasur/dotfiles#installer -- nvme0n1 desktop
# Will erase drives; use at your own risk!
apps = forAllSystems (system:
let pkgs = import nixpkgs { inherit system; };
in {
installer = import ./modules/system/installer.nix { inherit pkgs; };
});
2022-05-19 12:48:23 +00:00
# Used to run commands and edit files in this repo
2022-05-16 00:46:17 +00:00
devShells = forAllSystems (system:
let pkgs = import nixpkgs { inherit system; };
2022-05-01 15:16:48 +00:00
in {
default = pkgs.mkShell {
2022-05-06 12:58:44 +00:00
buildInputs = with pkgs; [ git stylua nixfmt shfmt shellcheck ];
2022-05-01 15:16:48 +00:00
};
2022-05-16 00:46:17 +00:00
});
2022-04-27 13:23:26 +00:00
2022-06-21 03:34:24 +00:00
# Templates for starting other projects quickly
templates = {
poetry = {
path = ./templates/poetry;
description = "Poetry template";
};
};
2022-04-27 01:36:16 +00:00
};
}