aboutsummaryrefslogtreecommitdiffstats
path: root/flake
diff options
context:
space:
mode:
authorene <ene@sils.li>2023-02-20 08:45:56 +0100
committerene <ene@sils.li>2023-02-20 10:40:41 +0100
commit3ee8467b9a6382641543e2ac485d5c2623e9b0c4 (patch)
treec121a13230b36557eb76890a1f920cfd667efe29 /flake
parentFeat(bootstrap): Add a script for quick activation (diff)
downloadnixos-config-3ee8467b9a6382641543e2ac485d5c2623e9b0c4.zip
Feat(flake): Move the in and outputs to separate files
Diffstat (limited to 'flake')
-rw-r--r--flake/inputs/default.nix37
-rw-r--r--flake/nixosConfigurations/default.nix78
2 files changed, 115 insertions, 0 deletions
diff --git a/flake/inputs/default.nix b/flake/inputs/default.nix
new file mode 100644
index 00000000..d3300cad
--- /dev/null
+++ b/flake/inputs/default.nix
@@ -0,0 +1,37 @@
+{_}: {
+ nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+ home-manager = {
+ url = "github:nix-community/home-manager/master";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
+ agenix = {
+ url = "github:ryantm/agenix";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ impermanence = {
+ url = "github:nix-community/impermanence";
+ };
+
+ neovim_config = {
+ url = "git+https://codeberg.org/ene/neovim-config.git";
+ flake = false;
+ };
+
+ strip_js_comments = {
+ url = "git+https://codeberg.org/ene/strip_js_comments.git";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ shell-library = {
+ url = "git+https://git.sils.li/ene/lib-sh.git";
+ flake = false;
+ };
+ user_js = {
+ url = "github:arkenfox/user.js";
+ flake = false;
+ };
+ snap-sync = {
+ url = "github:qubidt/snap-sync";
+ flake = false;
+ };
+}
diff --git a/flake/nixosConfigurations/default.nix b/flake/nixosConfigurations/default.nix
new file mode 100644
index 00000000..e5aa8020
--- /dev/null
+++ b/flake/nixosConfigurations/default.nix
@@ -0,0 +1,78 @@
+# vim: ts=2
+{
+ system,
+ inputs,
+ ...
+}: let
+ sysLib = import ../../lib {
+ inherit pkgs;
+ inherit (inputs) shell-library;
+ };
+ lib = inputs.nixpkgs.lib.extend (_: _: {
+ inherit (sysLib) makeShellScriptWithLibrary;
+ });
+
+ inherit (inputs.nixpkgs.lib) nixosSystem;
+
+ pkgs = import inputs.nixpkgs {
+ inherit system;
+ config = {
+ allowUnfreePredicate = pkg:
+ builtins.elem (lib.getName pkg) [
+ "steam"
+ "steam-original"
+ ];
+ };
+ };
+ homeManagerConfig = {
+ home-manager = {
+ useGlobalPkgs = true;
+ useUserPackages = true;
+ users.soispha = import ./home-manager;
+ extraSpecialArgs = {
+ inherit pkgs;
+ inherit
+ (inputs)
+ user_js
+ system
+ neovim_config
+ impermanence
+ snap-sync
+ ;
+ };
+ };
+ };
+ defaultModules = [
+ inputs.agenix.nixosModules.default
+
+ inputs.home-manager.nixosModules.home-manager
+ homeManagerConfig
+ ];
+in {
+ # full systems
+ tiamat = nixosSystem {
+ inherit system;
+ specialArgs = {inherit inputs pkgs;};
+ modules =
+ [
+ ./hosts/tiamat/configuration.nix
+ ]
+ ++ defaultModules;
+ };
+ mammun = nixosSystem {
+ inherit system;
+ specialArgs = {inherit inputs pkgs;};
+ modules =
+ [
+ ./hosts/mammun/configuration.nix
+ ]
+ ++ defaultModules;
+ };
+
+ # minimal ones
+ spawn = nixosSystem {
+ inherit system;
+ specialArgs = inputs;
+ modules = [./hosts/spawn/configuration.nix];
+ };
+}