144 lines
3.9 KiB
Nix
144 lines
3.9 KiB
Nix
{
|
|
description = "My NixOS Flake Configuration";
|
|
|
|
nixConfig = {
|
|
extra-substituters = [
|
|
"https://nrdxp.cachix.org"
|
|
"https://nix-community.cachix.org"
|
|
];
|
|
extra-trusted-public-keys = [
|
|
"nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4="
|
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
];
|
|
};
|
|
|
|
inputs = {
|
|
flake-compat = {
|
|
url = "github:edolstra/flake-compat";
|
|
flake = false;
|
|
};
|
|
|
|
nixos.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
stable.url = "github:nixos/nixpkgs/nixos-22.11";
|
|
|
|
digga.url = "github:divnix/digga";
|
|
digga.inputs.nixpkgs.follows = "nixos";
|
|
digga.inputs.nixlib.follows = "nixos";
|
|
digga.inputs.home-manager.follows = "home";
|
|
|
|
home.url = "github:nix-community/home-manager";
|
|
home.inputs.nixpkgs.follows = "nixos";
|
|
|
|
hyprland.url = "github:hyprwm/hyprland";
|
|
hyprland-contrib.url = "github:hyprwm/contrib";
|
|
|
|
swayfx.url = "github:WillPower3309/swayfx";
|
|
|
|
impermanence.url = "github:nix-community/impermanence";
|
|
|
|
emacs-overlay.url = "github:nix-community/emacs-overlay";
|
|
emacs-overlay.inputs.nixpkgs.follows = "nixos";
|
|
|
|
# nixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";
|
|
# nixpkgs-wayland.inputs.nixpkgs.follows = "nixos";
|
|
|
|
spicetify-nix.url = "github:the-argus/spicetify-nix";
|
|
nix-gaming.url = "github:fufexan/nix-gaming";
|
|
|
|
nil.url = "github:oxalica/nil";
|
|
nur.url = "github:nix-community/NUR";
|
|
nix-colors.url = "github:misterio77/nix-colors";
|
|
nixos-wsl.url = "github:nix-community/nixos-wsl";
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
digga,
|
|
nixos,
|
|
home,
|
|
hyprland,
|
|
impermanence,
|
|
nur,
|
|
...
|
|
} @ inputs:
|
|
digga.lib.mkFlake
|
|
{
|
|
inherit self inputs;
|
|
|
|
channelsConfig = {
|
|
allowUnfree = true;
|
|
allowBroken = true;
|
|
};
|
|
|
|
channels = {
|
|
nixos = {
|
|
imports = [(digga.lib.importOverlays ./overlays)];
|
|
overlays = [];
|
|
};
|
|
};
|
|
|
|
lib = import ./lib {lib = digga.lib // nixos.lib;};
|
|
|
|
sharedOverlays = [
|
|
(_final: prev: {
|
|
__dontExport = true;
|
|
lib = prev.lib.extend (_lfinal: _lprev: {
|
|
our = self.lib;
|
|
});
|
|
})
|
|
nur.overlay
|
|
(import ./pkgs)
|
|
];
|
|
|
|
nixos = {
|
|
hostDefaults = {
|
|
system = "x86_64-linux";
|
|
channelName = "nixos";
|
|
imports = [(digga.lib.importExportableModules ./modules)];
|
|
modules = [
|
|
{lib.our = self.lib;}
|
|
digga.nixosModules.bootstrapIso
|
|
digga.nixosModules.nixConfig
|
|
home.nixosModules.home-manager
|
|
nur.nixosModules.nur
|
|
];
|
|
};
|
|
|
|
imports = [(digga.lib.importHosts ./hosts)];
|
|
hosts = {
|
|
sforza = {
|
|
modules = [
|
|
# nixos-hardware.nixosModules.common-pc-laptop-ssd
|
|
hyprland.nixosModules.default
|
|
impermanence.nixosModules.impermanence
|
|
];
|
|
};
|
|
duchy = {
|
|
modules = [
|
|
inputs.nixos-wsl.nixosModules.wsl
|
|
];
|
|
};
|
|
};
|
|
importables = rec {
|
|
profiles = digga.lib.rakeLeaves ./profiles;
|
|
suites = with builtins; let
|
|
explodeAttrs = set: map (a: getAttr a set) (attrNames set);
|
|
in
|
|
with profiles; rec {
|
|
base = (explodeAttrs core) ++ (explodeAttrs editor) ++ (explodeAttrs virtualisation) ++ [security vars];
|
|
desktop = base ++ (explodeAttrs graphical) ++ (explodeAttrs browser);
|
|
|
|
hyprland = desktop ++ [windowManager.hyprland];
|
|
sway = desktop ++ [windowManager.sway];
|
|
};
|
|
};
|
|
};
|
|
|
|
home.modules = [inputs.hyprland.homeManagerModules.default];
|
|
|
|
devshell = ./shell;
|
|
|
|
homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations;
|
|
};
|
|
}
|