223 lines
6.2 KiB
Nix
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;
|
|
};
|
|
}
|