dotfiles/flake.nix
2022-06-04 10:29:36 -04:00

71 lines
2.1 KiB
Nix

{
description = "My system";
# Other flakes that we want to pull from
inputs = {
# Used for system packages
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
# Used for user packages
home-manager = {
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows =
"nixpkgs"; # Use system packages list where available
};
# Community packages; used for Firefox extensions
nur.url = "github:nix-community/nur";
};
outputs = { self, nixpkgs, home-manager, nur }:
let
# Global configuration for my systems
globals = {
user = "noah";
fullName = "Noah Masur";
passwordHash =
"$6$PZYiMGmJIIHAepTM$Wx5EqTQ5GApzXx58nvi8azh16pdxrN6Qrv1wunDlzveOgawitWzcIxuj76X9V868fsPi/NOIEO8yVXqwzS9UF.";
gitEmail = "7386960+nmasur@users.noreply.github.com";
mailServer = "noahmasur.com";
dotfilesRepo = "https://github.com/nmasur/dotfiles";
gui = {
colorscheme = (import ./modules/colorscheme/gruvbox);
wallpaper = ./media/wallpaper/road.jpg;
gtk.theme = { name = "Adwaita-dark"; };
};
};
# 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;
in {
# Define my systems
# You can load it from an empty system with:
# nix-shell -p nixFlakes
# sudo nixos-rebuild switch --flake github:nmasur/dotfiles#desktop
nixosConfigurations = {
desktop =
import ./hosts/desktop { inherit nixpkgs home-manager nur globals; };
};
# Used to run commands and edit files in this repo
devShells = forAllSystems (system:
let pkgs = import nixpkgs { inherit system; };
in {
default = pkgs.mkShell {
buildInputs = with pkgs; [ git stylua nixfmt shfmt shellcheck ];
};
});
};
}