0
0
Fork 0
flake/flake.nix
2025-01-02 17:26:51 -08:00

223 lines
6.2 KiB
Nix

{
description = "The nix flake for all my systems";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
apple-fonts.url = "github:Lyndeno/apple-fonts.nix";
apple-fonts.inputs.nixpkgs.follows = "nixpkgs";
catppuccin.url = "github:catppuccin/nix";
catppuccin.inputs.nixpkgs.follows = "nixpkgs";
alejandra.url = "github:kamadorueda/alejandra";
alejandra.inputs.nixpkgs.follows = "nixpkgs";
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
};
outputs = inputs @ {
self,
nixpkgs,
home-manager,
nixos-facter-modules,
catppuccin,
alejandra,
nix-flatpak,
...
}: let
modules = {
hardware = {
boot = {
grub = [
./hardware/boot/grub.nix
];
};
devices = {
wahnix = [
./hardware/devices/wahnix.nix
];
};
drivers = {
controllers = {
xbox = [
./hardware/drivers/controllers/xbox.nix
];
};
cpu = {
intel = [
./hardware/drivers/cpu/intel.nix
];
};
video = {
base = [
./hardware/drivers/video/base.nix
];
intel = [
./hardware/drivers/video/intel.nix
];
nvidia = [
./hardware/drivers/video/nvidia.nix
];
};
};
};
nixos = {
base = [
./system/nix.nix
];
desktops = {
apps = [
./system/desktop/apps.nix
];
displaymanagers = {
tuigreet = [
./system/desktop/displaymanagers/tuigreet.nix
];
};
environments = {
hyprland = [
./system/desktop/environments/hyprland.nix
];
};
};
security = {
sudo = [
./system/security/sudo.nix
];
};
services = {
bluetooth = [
./system/services/bluetooth.nix
];
flatpak = [
./system/services/flatpak.nix
];
networkmanager = [
./system/services/networkmanager.nix
];
openssh = [
./system/services/openssh.nix
];
pipewire = [
./system/services/pipewire.nix
];
};
users = {
relms = [
./system/users/relms.nix
];
};
};
home = {
apps = {
audio = {
pulseaudio = [
./home/modules/apps/audio/pulesaudio.nix
];
};
browsers = {
firefox = [
./home/modules/apps/browsers/firefox.nix
];
};
terminals = {
kitty = [
./home/modules/apps/terminals/kitty.nix
];
};
flatpak = [
./home/modules/apps/flatpak.nix
];
};
cli = {
development = [
./home/modules/cli/development.nix
./home/modules/cli/neovim.nix
];
shell = [
./home/modules/cli/shell.nix
];
};
desktop = {
environments = {
hyprland = [
./home/modules/desktop/environments/hyprland.nix
];
};
};
users = {
relms = [
./home/users/relms.nix
];
};
};
};
in {
packages.x86_64-linux.nerd-fonts-sf-mono-ligatures = nixpkgs.legacyPackages.x86_64-linux.callPackage ./pkgs/fonts/nerd-fonts-sf-mono-ligatures.nix {};
nixosConfigurations = {
wahnix = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit inputs;
};
modules =
modules.nixos.base
++ modules.nixos.desktops.apps
++ modules.nixos.desktops.displaymanagers.tuigreet
++ modules.nixos.desktops.environments.hyprland
++ modules.nixos.security.sudo
++ modules.nixos.services.bluetooth
++ modules.nixos.services.flatpak
++ modules.nixos.services.networkmanager
++ modules.nixos.services.openssh
++ modules.nixos.services.pipewire
++ modules.nixos.users.relms
++ modules.hardware.boot.grub
++ modules.hardware.devices.wahnix
++ modules.hardware.drivers.controllers.xbox
++ modules.hardware.drivers.cpu.intel
++ modules.hardware.drivers.video.base
++ modules.hardware.drivers.video.intel
++ modules.hardware.drivers.video.nvidia
++ [
nix-flatpak.nixosModules.nix-flatpak
catppuccin.nixosModules.catppuccin
nixos-facter-modules.nixosModules.facter
{config.facter.reportPath = ./wahnix-facter.json;}
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit self;
inherit inputs;
};
home-manager.users.relms = {
imports =
modules.home.users.relms
++ modules.home.apps.audio.pulseaudio
++ modules.home.apps.browsers.firefox
++ modules.home.apps.terminals.kitty
++ modules.home.apps.flatpak
++ modules.home.cli.development
++ modules.home.cli.shell
++ modules.home.desktop.environments.hyprland
++ [
catppuccin.homeManagerModules.catppuccin
nix-flatpak.homeManagerModules.nix-flatpak
];
};
}
];
};
};
formatter.aarch64-linux = alejandra.defaultPackage.aarch64-linux;
formatter.x86_64-linux = alejandra.defaultPackage.x86_64-linux;
};
}