-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflake.nix
138 lines (123 loc) · 5.29 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
{
# Description
description = "Yo Flake";
# Inputs
inputs = {
# System Inputs
# NixOS (AutoUpgrade)
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
# Home-Manager (AutoUpgrade)
home-manager.url = "github:nix-community/home-manager/release-24.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
# Plasma-Manager (AutoUpgrade)
plasma-manager.url = "github:nix-community/plasma-manager";
plasma-manager.inputs.nixpkgs.follows = "nixpkgs";
plasma-manager.inputs.home-manager.follows = "home-manager";
# Agenix (AutoUpgrade)
agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs";
# Stylix (AutoUpgrade)
stylix.url = "github:danth/stylix/release-24.11";
stylix.inputs.nixpkgs.follows = "nixpkgs";
stylix.inputs.home-manager.follows = "home-manager";
# Package Inputs
# Stable Packages (AutoUpgrade)
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.11";
# Unstable Packages (AutoUpgrade)
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
# Unstable Packages (Manual Upgrade)
nixpkgs-unstable-fixed.url = "github:NixOS/nixpkgs/nixos-unstable";
# Extra Inputs
# Unstable Unfree Packages (AutoUpgrade)
nixpkgs-unfree-unstable.url = "github:numtide/nixpkgs-unfree/nixos-unstable";
# Firefox Addons (AutoUpgrade)
nurpkgs-firefox-addons.url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
nurpkgs-firefox-addons.inputs.nixpkgs.follows = "nixpkgs-unfree-unstable"; # Some extensions are unfree
# Firefox: FX-AutoConfig (Manual Fetch)
fx-autoconfig.url = "github:MrOtherGuy/fx-autoconfig/fe783f2c72388f64fd7ea0ee67617c6fd32f2261";
fx-autoconfig.flake = false;
# NixOS Artwork (Manual Fetch)
nixos-artwork.url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/refs/heads/master/wallpapers/nix-wallpaper-simple-blue.png";
nixos-artwork.flake = false;
# Plasma/Plasmoid: TiledMenu (Manual Fetch)
tiledmenu.url = "github:Zren/plasma-applet-tiledmenu/73e03bd9ff523b01abb31a7c72901ba25918f9d8";
tiledmenu.flake = false;
# Plasma/Icons: Papirus Colors (Manual Fetch)
papirus-colors-icons.url = "github:varlesh/papirus-colors/ae694e120110ab30ead27c66abc68e74dfd4e4f5";
papirus-colors-icons.flake = false;
# MPV Scripts: InputEvent (Manual Fetch)
mpv-input-event.url = "github:natural-harmonia-gropius/input-event/refs/tags/v1.3";
#mpv-input-event.url = "https://github.com/natural-harmonia-gropius/input-event/releases/download/v1.3/inputevent.lua";
mpv-input-event.flake = false;
# My Utilities
# PowerShell Prompt (Manual Fetch)
powershell-prompt.url = "github:Eryoneta/powershell-prompt";
powershell-prompt.flake = false;
# Git Tools (Manual Fetch)
git-tools.url = "github:Eryoneta/git-tools";
git-tools.flake = false;
# Firefox Scripts (Manual Fetch)
firefox-scripts.url = "github:Eryoneta/Firefox-Scripts";
firefox-scripts.flake = false;
};
# Outputs
outputs = { self, ... }@extraArgs: (
let
# Imports
user-host-scheme = (import ./modules/flake-modules/user-host-scheme.nix self.outPath);
buildConfiguration = (import ./configurationBuilder.nix extraArgs self.outPath);
# System_Label ([a-zA-Z0-9:_.-]*)
# I change it at every rebuild. Very convenient for naming generations!
systemLabel = (
let
filePath = ./NIXOS_LABEL.txt;
in if (builtins.pathExists filePath) then (
builtins.readFile filePath
) else "Initial Configuration: Requires private-config to be complete"
);
# Hosts
LiCo = user-host-scheme.buildHost {
hostname = "lico";
name = "LiCo";
system.label = systemLabel;
};
NeLiCo = user-host-scheme.buildHost {
hostname = "nelico";
name = "NeLiCo";
system.label = systemLabel;
};
HyperV_VM = user-host-scheme.buildHost {
hostname = "hyper-v_vm";
name = "HyperV_VM";
system.label = systemLabel;
};
# Users
Yo = user-host-scheme.buildUser {
username = "yo";
name = "Yo";
configFolder = "/home/yo/Personal/System_Utilities/system-configuration/nixos-config";
configDevFolder = "/home/yo/Personal/System_Utilities/system-configuration/nixos-config-dev"; # Dev folder
};
Eryoneta = user-host-scheme.buildUser {
username = "eryoneta";
name = "Eryoneta";
configFolder = "/home/eryoneta/.nixos-config";
};
in {
# NixOS + Home-Manager(+ Plasma-Manager + Agenix) + Agenix
nixosConfigurations = {
"Yo@LiCo" = (buildConfiguration Yo LiCo).nixosSystemConfig;
"Yo@HyperV_VM" = (buildConfiguration Yo HyperV_VM).nixosSystemConfig;
"Yo@NeLiCo" = (buildConfiguration Yo NeLiCo).nixosSystemConfig;
#"Eryoneta@NeLiCo" = (buildConfiguration Eryoneta NeLiCo).nixosSystemConfig;
};
# Home-Manager + Plasma-Manager + Agenix
homeConfigurations = {
"Yo@LiCo" = (buildConfiguration Yo LiCo).homeManagerConfig;
"Yo@HyperV_VM" = (buildConfiguration Yo HyperV_VM).homeManagerConfig;
"Yo@NeLiCo" = (buildConfiguration Yo NeLiCo).homeManagerConfig;
#"Eryoneta@NeLiCo" = (buildConfiguration Eryoneta NeLiCo).homeManagerConfig;
};
}
);
}