nixos-config/flake.nix

177 lines
5.2 KiB
Nix
Raw Normal View History

2022-06-10 00:22:53 -03:00
{
description = "My system config";
inputs = {
2023-11-26 15:40:18 -03:00
nixpkgs.url = "nixpkgs/nixos-23.11";
home-manager.url = "github:nix-community/home-manager/release-23.11";
2022-06-10 00:22:53 -03:00
home-manager.inputs.nixpkgs.follows = "nixpkgs";
2022-08-05 11:20:13 -03:00
nix-index-database = {
url = "github:Mic92/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
2022-08-20 17:46:03 -03:00
hyprland = {
url = "github:hyprwm/Hyprland";
2023-07-27 01:20:31 -03:00
inputs.nixpkgs.follows = "nixpkgs";
2022-08-20 17:46:03 -03:00
};
2022-10-24 23:04:34 -03:00
ranger-icons.url = "github:alexanderjeurissen/ranger_devicons";
ranger-icons.flake = false;
2022-08-11 11:53:39 -03:00
material-wifi-icons.url = "github:dcousens/material-wifi-icons";
material-wifi-icons.flake = false;
2022-12-14 01:05:27 -03:00
plymouth-themes.url = "github:adi1090x/plymouth-themes";
plymouth-themes.flake = false;
2023-02-13 11:02:55 -03:00
lipsum.url = "github:hannenz/lipsum";
lipsum.flake = false;
2023-06-02 22:42:56 -03:00
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
};
2022-12-23 11:22:58 -03:00
2023-06-02 22:42:56 -03:00
dzgui-nix = {
url = "github:lelgenio/dzgui-nix";
};
2023-01-19 19:52:34 -03:00
2023-06-02 22:42:56 -03:00
tlauncher = {
url = "github:lelgenio/tlauncher-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
2023-05-19 17:53:08 -03:00
2022-08-01 20:15:26 -03:00
# my stuff
2023-06-02 22:42:56 -03:00
dhist = {
url = "github:lelgenio/dhist";
inputs.nixpkgs.follows = "nixpkgs";
};
demoji = {
url = "github:lelgenio/demoji";
inputs.nixpkgs.follows = "nixpkgs";
};
maildir-notify-daemon = {
url = "github:lelgenio/maildir-notify-daemon";
inputs.nixpkgs.follows = "nixpkgs";
};
wl-crosshair = {
url = "github:lelgenio/wl-crosshair";
inputs.nixpkgs.follows = "nixpkgs";
};
2023-06-02 17:55:54 -03:00
# gnome stuff
nixos-conf-editor.url = "github:vlinkz/nixos-conf-editor";
nix-software-center.url = "github:vlinkz/nix-software-center";
2022-06-10 00:22:53 -03:00
};
outputs = inputs:
2022-06-10 00:22:53 -03:00
let
nixpkgsConfig = {
2022-06-10 00:22:53 -03:00
inherit system;
config = { allowUnfree = true; };
overlays = old_overlays.all;
2022-06-10 00:22:53 -03:00
};
bootstrapPkgs = import inputs.nixpkgs nixpkgsConfig;
nixpkgs = bootstrapPkgs.applyPatches {
name = "patched-nixpkgs";
src = inputs.nixpkgs;
patches = lib.mapAttrsToList (k: v: ./patches/nixpkgs/${k})
(builtins.readDir ./patches/nixpkgs);
};
inherit (import ./user/variables.nix) desktop;
system = "x86_64-linux";
pkgs = import nixpkgs nixpkgsConfig;
lib = inputs.nixpkgs.lib;
2023-01-19 01:02:32 -03:00
packages = import ./pkgs { inherit pkgs inputs; };
2023-01-29 13:50:23 -03:00
old_overlays = (import ./overlays { inherit packages inputs; });
2023-01-19 01:02:32 -03:00
2022-11-17 15:12:27 -03:00
specialArgs = { inherit inputs; };
2022-07-16 02:12:18 -03:00
common_modules = [
{ nixpkgs.pkgs = pkgs; }
2022-07-16 02:12:18 -03:00
./system/configuration.nix
2022-12-23 11:22:58 -03:00
./system/secrets.nix
2023-01-23 00:36:05 -03:00
./system/specialisation.nix
2024-01-20 21:42:07 -03:00
./system/greetd.nix
{ login-manager.greetd.enable = desktop == "sway" || desktop == "hyprland"; }
2023-02-07 20:03:04 -03:00
inputs.agenix.nixosModules.default
2022-08-20 17:46:03 -03:00
inputs.hyprland.nixosModules.default
2023-05-17 23:51:14 -03:00
inputs.dzgui-nix.nixosModules.default
{ programs.hyprland.enable = (desktop == "hyprland"); }
inputs.home-manager.nixosModules.home-manager
2022-07-16 02:12:18 -03:00
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.lelgenio = import ./user/home.nix;
home-manager.backupFileExtension = "bkp";
2022-07-16 02:12:18 -03:00
# Optionally, use home-manager.extraSpecialArgs to pass
# arguments to home.nix
2022-08-23 23:42:36 -03:00
home-manager.extraSpecialArgs = { inherit inputs; };
2022-07-16 02:12:18 -03:00
}
2024-01-20 21:42:07 -03:00
]
2023-01-22 18:12:04 -03:00
++ lib.optional (desktop == "gnome") ./system/gnome.nix
++ lib.optional (desktop == "kde") ./system/kde.nix;
in
{
2022-06-10 00:22:53 -03:00
nixosConfigurations = {
i15 = lib.nixosSystem {
2022-11-17 15:12:27 -03:00
inherit system specialArgs;
2022-08-07 23:58:05 -03:00
modules = [ ./hosts/i15.nix ] ++ common_modules;
2022-07-16 02:12:18 -03:00
};
2022-07-11 21:34:04 -03:00
monolith = lib.nixosSystem {
2022-11-17 15:12:27 -03:00
inherit system specialArgs;
2022-12-01 23:13:00 -03:00
modules = [
./hosts/monolith.nix
2023-01-12 15:10:10 -03:00
./system/monolith-gitlab-runner.nix
2023-01-23 19:51:24 -03:00
./system/nix-serve.nix
./system/steam.nix
2022-12-01 23:13:00 -03:00
] ++ common_modules;
2022-06-10 00:22:53 -03:00
};
2022-10-25 21:18:53 -03:00
rainbow = lib.nixosSystem {
2022-11-17 15:12:27 -03:00
inherit system specialArgs;
2023-01-12 15:10:10 -03:00
modules = [
./hosts/rainbow.nix
./system/rainbow-gitlab-runner.nix
] ++ common_modules;
2022-10-25 21:18:53 -03:00
};
2023-10-26 15:11:21 -03:00
double-rainbow = lib.nixosSystem {
inherit system specialArgs;
modules = [
./hosts/double-rainbow.nix
2023-12-07 13:58:34 -03:00
./system/rainbow-gitlab-runner.nix
2023-10-26 15:11:21 -03:00
] ++ common_modules;
};
2022-10-22 00:03:28 -03:00
pixie = lib.nixosSystem {
2022-11-17 15:12:27 -03:00
inherit system specialArgs;
2022-10-24 20:18:24 -03:00
modules = [ ./hosts/pixie.nix ] ++ common_modules ++ [{
packages.media-packages.enable = lib.mkOverride 0 false;
programs.steam.enable = lib.mkOverride 0 false;
services.flatpak.enable = lib.mkOverride 0 false;
}];
2022-10-22 00:03:28 -03:00
};
2023-10-14 16:30:51 -03:00
ghost = lib.nixosSystem {
inherit system specialArgs;
2023-10-26 11:27:09 -03:00
modules = [ ./hosts/ghost ];
2023-10-14 16:30:51 -03:00
};
2022-06-10 00:22:53 -03:00
};
homeConfigurations.lelgenio = inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs;
2023-06-02 11:14:27 -03:00
extraSpecialArgs = {
2023-06-02 17:55:54 -03:00
inherit inputs;
osConfig = { };
2023-06-02 11:14:27 -03:00
};
modules = [ ./user/home.nix ];
};
2023-05-17 23:51:14 -03:00
packages.${system} = pkgs // packages;
2023-05-07 22:20:10 -03:00
formatter.${system} = pkgs.nixpkgs-fmt;
2022-06-10 00:22:53 -03:00
};
2022-07-21 00:32:09 -03:00
}