2021-07-11 04:19:34 -06:00
|
|
|
{
|
|
|
|
inputs = {
|
2023-06-17 10:27:47 -06:00
|
|
|
nixos-hardware = { url = github:NixOS/nixos-hardware; };
|
|
|
|
|
2023-06-28 21:30:23 -06:00
|
|
|
nixpkgs = { url = github:NixOS/nixpkgs/nixos-unstable; };
|
2023-06-17 10:27:47 -06:00
|
|
|
|
2021-07-17 15:23:13 -06:00
|
|
|
home-manager = {
|
2023-06-17 10:27:47 -06:00
|
|
|
url = github:nix-community/home-manager;
|
2021-07-17 15:47:04 -06:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
2021-07-11 04:19:34 -06:00
|
|
|
};
|
2023-06-17 10:27:47 -06:00
|
|
|
|
2021-07-11 04:19:34 -06:00
|
|
|
xmonad-contrib = {
|
2023-04-11 20:56:05 -06:00
|
|
|
url = github:IvanMalison/xmonad-contrib/withMyChanges;
|
2023-06-17 10:27:47 -06:00
|
|
|
inputs = {
|
|
|
|
nixpkgs.follows = "nixpkgs";
|
|
|
|
flake-utils.follows = "flake-utils";
|
|
|
|
git-ignore-nix.follows = "git-ignore-nix";
|
|
|
|
xmonad.follows = "xmonad";
|
|
|
|
};
|
2021-07-11 04:19:34 -06:00
|
|
|
};
|
2023-06-17 10:27:47 -06:00
|
|
|
|
2021-07-11 04:19:34 -06:00
|
|
|
xmonad = {
|
2023-06-13 22:19:09 -06:00
|
|
|
url = path:../dotfiles/config/xmonad/xmonad;
|
2023-06-17 10:27:47 -06:00
|
|
|
inputs = {
|
|
|
|
nixpkgs.follows = "nixpkgs";
|
|
|
|
flake-utils.follows = "flake-utils";
|
|
|
|
git-ignore-nix.follows = "git-ignore-nix";
|
|
|
|
};
|
2021-07-11 04:19:34 -06:00
|
|
|
};
|
2023-06-17 10:27:47 -06:00
|
|
|
|
2021-07-17 15:23:13 -06:00
|
|
|
taffybar = {
|
2023-05-17 14:09:41 -06:00
|
|
|
url = path:../dotfiles/config/taffybar/taffybar;
|
2023-06-17 10:27:47 -06:00
|
|
|
inputs = {
|
|
|
|
nixpkgs.follows = "nixpkgs";
|
|
|
|
flake-utils.follows = "flake-utils";
|
|
|
|
git-ignore-nix.follows = "git-ignore-nix";
|
|
|
|
xmonad.follows = "xmonad";
|
|
|
|
gtk-sni-tray.follows = "gtk-sni-tray";
|
|
|
|
gtk-strut.follows = "gtk-strut";
|
|
|
|
};
|
2023-05-17 14:09:41 -06:00
|
|
|
};
|
2023-06-17 10:27:47 -06:00
|
|
|
|
2023-05-17 14:09:41 -06:00
|
|
|
imalison-taffybar = {
|
|
|
|
url = path:../dotfiles/config/taffybar;
|
2023-06-17 10:27:47 -06:00
|
|
|
inputs = {
|
|
|
|
nixpkgs.follows = "nixpkgs";
|
|
|
|
flake-utils.follows = "flake-utils";
|
|
|
|
xmonad.follows = "xmonad";
|
|
|
|
taffybar.follows = "taffybar";
|
|
|
|
};
|
2021-07-13 03:37:03 -06:00
|
|
|
};
|
2023-06-17 10:27:47 -06:00
|
|
|
|
2021-07-19 19:38:04 -06:00
|
|
|
notifications-tray-icon = {
|
2023-06-17 10:27:47 -06:00
|
|
|
url = github:IvanMalison/notifications-tray-icon;
|
|
|
|
inputs.flake-utils.follows = "flake-utils";
|
|
|
|
inputs.git-ignore-nix.follows = "git-ignore-nix";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
2021-07-19 19:38:04 -06:00
|
|
|
};
|
2023-06-17 10:27:47 -06:00
|
|
|
|
2022-10-07 18:42:34 -06:00
|
|
|
nix = {
|
2023-06-17 10:27:47 -06:00
|
|
|
url = github:IvanMalison/nix;
|
2023-06-13 22:19:09 -06:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
2022-10-07 18:42:34 -06:00
|
|
|
};
|
2023-06-17 10:27:47 -06:00
|
|
|
|
|
|
|
flake-utils = {
|
|
|
|
url = github:numtide/flake-utils;
|
|
|
|
inputs.systems.follows = "systems";
|
|
|
|
};
|
|
|
|
|
|
|
|
systems = { url = github:nix-systems/default; };
|
|
|
|
|
|
|
|
git-ignore-nix = {
|
|
|
|
url = github:hercules-ci/gitignore.nix;
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
|
|
|
|
|
|
|
gtk-sni-tray = {
|
|
|
|
url = github:taffybar/gtk-sni-tray;
|
|
|
|
inputs = {
|
|
|
|
nixpkgs.follows = "nixpkgs";
|
|
|
|
flake-utils.follows = "flake-utils";
|
|
|
|
git-ignore-nix.follows = "git-ignore-nix";
|
|
|
|
status-notifier-item.follows = "status-notifier-item";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
status-notifier-item = {
|
|
|
|
url = github:taffybar/status-notifier-item;
|
|
|
|
inputs = {
|
|
|
|
nixpkgs.follows = "nixpkgs";
|
|
|
|
flake-utils.follows = "flake-utils";
|
|
|
|
git-ignore-nix.follows = "git-ignore-nix";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
gtk-strut = {
|
|
|
|
url = github:taffybar/gtk-strut;
|
|
|
|
inputs = {
|
|
|
|
nixpkgs.follows = "nixpkgs";
|
|
|
|
flake-utils.follows = "flake-utils";
|
|
|
|
git-ignore-nix.follows = "git-ignore-nix";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
nixpkgs-regression = { url = github:NixOS/nixpkgs; };
|
2021-07-11 04:19:34 -06:00
|
|
|
};
|
2023-06-17 10:27:47 -06:00
|
|
|
|
2021-08-20 14:45:29 -06:00
|
|
|
outputs = inputs@{
|
2022-09-16 16:28:56 -06:00
|
|
|
self, nixpkgs, nixos-hardware, home-manager, taffybar, xmonad,
|
2023-06-17 10:27:47 -06:00
|
|
|
xmonad-contrib, notifications-tray-icon, nix, imalison-taffybar, ...
|
2021-07-17 15:23:13 -06:00
|
|
|
}:
|
2021-08-20 19:28:51 -06:00
|
|
|
let
|
|
|
|
mkConfig =
|
|
|
|
args@
|
|
|
|
{ system ? "x86_64-linux"
|
|
|
|
, baseModules ? []
|
|
|
|
, modules ? []
|
|
|
|
, specialArgs ? {}
|
|
|
|
, ...
|
|
|
|
}:
|
|
|
|
nixpkgs.lib.nixosSystem (args // {
|
|
|
|
inherit system;
|
|
|
|
modules = baseModules ++ modules;
|
2023-06-28 21:43:55 -06:00
|
|
|
specialArgs = {
|
|
|
|
inherit inputs;
|
|
|
|
myPackages = {
|
|
|
|
taffybar = inputs.imalison-taffybar.defaultPackage."${system}";
|
|
|
|
};
|
|
|
|
} // specialArgs;
|
2021-08-20 19:28:51 -06:00
|
|
|
});
|
2023-06-29 01:11:43 -06:00
|
|
|
machinesFilepath = ./machines;
|
|
|
|
machineFilenames = builtins.attrNames (builtins.readDir machinesFilepath);
|
2021-08-20 19:28:51 -06:00
|
|
|
machineNameFromFilename = filename: builtins.head (builtins.split "\\." filename);
|
|
|
|
mkConfigurationParams = filename: {
|
|
|
|
name = machineNameFromFilename filename;
|
|
|
|
value = {
|
2023-06-29 01:11:43 -06:00
|
|
|
modules = [ (machinesFilepath + ("/" + filename)) ./base.nix ];
|
2021-08-20 19:28:51 -06:00
|
|
|
};
|
2021-08-20 19:19:50 -06:00
|
|
|
};
|
2021-08-20 19:28:51 -06:00
|
|
|
defaultConfigurationParams =
|
|
|
|
builtins.listToAttrs (map mkConfigurationParams machineFilenames);
|
2023-06-28 21:43:55 -06:00
|
|
|
customParams = {
|
|
|
|
biskcomp = {
|
|
|
|
system = "aarch64-linux";
|
2021-08-20 19:28:51 -06:00
|
|
|
};
|
2023-06-28 21:43:55 -06:00
|
|
|
air-gapped-pi = {
|
|
|
|
system = "aarch64-linux";
|
|
|
|
};
|
|
|
|
};
|
2021-07-11 04:19:34 -06:00
|
|
|
in
|
|
|
|
{
|
2021-08-20 19:19:50 -06:00
|
|
|
nixosConfigurations = builtins.mapAttrs (machineName: params:
|
|
|
|
let machineParams =
|
|
|
|
if builtins.hasAttr machineName customParams
|
|
|
|
then (builtins.getAttr machineName customParams)
|
|
|
|
else {};
|
|
|
|
in mkConfig (params // machineParams)
|
|
|
|
) defaultConfigurationParams;
|
2021-07-11 04:19:34 -06:00
|
|
|
};
|
|
|
|
}
|