Start rewriting with easy-hosts

This commit is contained in:
Christopher Mühl 2026-01-05 10:58:37 +01:00
parent 8f7f650b54
commit 3cce82ce03
No known key found for this signature in database
GPG key ID: 925AC7D69955293F
9 changed files with 308 additions and 271 deletions

View file

@ -1,12 +1,10 @@
{ {...}: {
lib, programs.niri.settings.spawn-at-startup = [
pkgs, # this is a funny fix for xdg environment not properly being set and thus
... # xdg-open not working properly
}: { {argv = ["systemctl --user restart xdg-desktop-portal"];}
programs.niri.settings.spawn-at-startup = with lib._elements; [
# {argv = ["awww-daemon"];}
# {argv = ["awww" "img" "${fixture "wallpapers/cat-vibes.webp"}"];}
{argv = ["kitty"];} # open fastfetch by default
{argv = ["kitty --title 'fastfetch' sh -c 'fastfetch; read'"];}
]; ];
} }

View file

@ -13,6 +13,5 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
fuzzel fuzzel
inputs.awww.packages.${pkgs.stdenv.hostPlatform.system}.awww
]; ];
} }

View file

@ -41,8 +41,14 @@ in {
block-out-from = "screencast"; block-out-from = "screencast";
} }
{ {
matches = [{app-id = "kitty";}]; matches = [{title = "fastfetch";}];
opacity = 0.97; open-floating = true;
opacity = 1.0;
min-width = 400; # 115 x 26 columns
max-width = 400;
min-height = 400;
max-height = 400;
} }
{ {
matches = [{title = "ld.toph.so";}]; matches = [{title = "ld.toph.so";}];
@ -57,6 +63,10 @@ in {
block-out-from = "screencast"; block-out-from = "screencast";
} }
{
matches = [{app-id = "kitty";}];
opacity = 0.97;
}
{ {
matches = [ matches = [
{app-id = "org.zealdocs.zeal";} {app-id = "org.zealdocs.zeal";}

289
flake.lock generated
View file

@ -73,26 +73,6 @@
"type": "github" "type": "github"
} }
}, },
"awww": {
"inputs": {
"flake-compat": "flake-compat_4",
"nixpkgs": "nixpkgs_4",
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1765147877,
"narHash": "sha256-SoSUY44s2nmg/SGriAIvXGSuVJBUvXlox5jhH1IeB9k=",
"ref": "refs/heads/main",
"rev": "45f9ad2ba04f2bb5656053bc1f285e060d571d79",
"revCount": 1322,
"type": "git",
"url": "https://codeberg.org/LGFae/awww"
},
"original": {
"type": "git",
"url": "https://codeberg.org/LGFae/awww"
}
},
"base16": { "base16": {
"inputs": { "inputs": {
"fromYaml": "fromYaml" "fromYaml": "fromYaml"
@ -164,7 +144,7 @@
"community-solid-server": { "community-solid-server": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_3", "flake-parts": "flake-parts_3",
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1767157894, "lastModified": 1767157894,
@ -223,6 +203,26 @@
"type": "github" "type": "github"
} }
}, },
"deploy-rs": {
"inputs": {
"flake-compat": "flake-compat_4",
"nixpkgs": "nixpkgs_5",
"utils": "utils"
},
"locked": {
"lastModified": 1766051518,
"narHash": "sha256-znKOwPXQnt3o7lDb3hdf19oDo0BLP4MfBOYiWkEHoik=",
"owner": "serokell",
"repo": "deploy-rs",
"rev": "d5eff7f948535b9c723d60cd8239f8f11ddc90fa",
"type": "github"
},
"original": {
"owner": "serokell",
"repo": "deploy-rs",
"type": "github"
}
},
"devshell": { "devshell": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -251,11 +251,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1753140376, "lastModified": 1766150702,
"narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=", "narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c", "rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -264,6 +264,21 @@
"type": "github" "type": "github"
} }
}, },
"easy-hosts": {
"locked": {
"lastModified": 1755470564,
"narHash": "sha256-KB1ZryVDoQcbIsItOf4WtxkHhh3ppj+XwMpSnt/2QHc=",
"owner": "tgirlcloud",
"repo": "easy-hosts",
"rev": "d0422bc7b3db26268982aa15d07e60370e76ee1d",
"type": "github"
},
"original": {
"owner": "tgirlcloud",
"repo": "easy-hosts",
"type": "github"
}
},
"elemental-wine-source": { "elemental-wine-source": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -347,27 +362,11 @@
"flake-compat_4": { "flake-compat_4": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1761588595, "lastModified": 1733328505,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_5": {
"flake": false,
"locked": {
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -434,6 +433,24 @@
} }
}, },
"flake-parts_4": { "flake-parts_4": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_3"
},
"locked": {
"lastModified": 1767602221,
"narHash": "sha256-wl3P4WioICNY9SEvClT4JLAWFtItk3CbFNm/FmeeWlI=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "1e34f377e37de05071735d373b481da2508dd625",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_5": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nur", "nur",
@ -454,7 +471,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_5": { "flake-parts_6": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"stylix", "stylix",
@ -475,9 +492,9 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_6": { "flake-parts_7": {
"inputs": { "inputs": {
"nixpkgs-lib": "nixpkgs-lib_3" "nixpkgs-lib": "nixpkgs-lib_4"
}, },
"locked": { "locked": {
"lastModified": 1765835352, "lastModified": 1765835352,
@ -494,43 +511,6 @@
} }
}, },
"flake-utils": { "flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils-plus": {
"inputs": {
"flake-utils": "flake-utils_3"
},
"locked": {
"lastModified": 1715533576,
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
"type": "github"
},
"original": {
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
"type": "github"
}
},
"flake-utils_2": {
"inputs": { "inputs": {
"systems": "systems_3" "systems": "systems_3"
}, },
@ -548,16 +528,16 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_3": { "flake-utils_2": {
"inputs": { "inputs": {
"systems": "systems_4" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1694529238, "lastModified": 1731533236,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -892,6 +872,21 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib_4": {
"locked": {
"lastModified": 1765674936,
"narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1764831616, "lastModified": 1764831616,
@ -957,22 +952,6 @@
} }
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": {
"lastModified": 1763934636,
"narHash": "sha256-9glbI7f1uU+yzQCq5LwLgdZqx6svOhZWkd4JRY265fc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ee09932cedcef15aaf476f9343d1dea2cb77e261",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1767051569, "lastModified": 1767051569,
"narHash": "sha256-0MnuWoN+n1UYaGBIpqpPs9I9ZHW4kynits4mrnh1Pk4=", "narHash": "sha256-0MnuWoN+n1UYaGBIpqpPs9I9ZHW4kynits4mrnh1Pk4=",
@ -988,6 +967,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": {
"locked": {
"lastModified": 1743014863,
"narHash": "sha256-jAIUqsiN2r3hCuHji80U7NNEafpIMBXiwKlSrjWMlpg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "bd3bac8bfb542dbde7ffffb6987a1a1f9d41699f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1766309749, "lastModified": 1766309749,
@ -1074,7 +1069,7 @@
}, },
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_4", "flake-parts": "flake-parts_5",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]
@ -1189,30 +1184,17 @@
"type": "github" "type": "github"
} }
}, },
"quadlet": {
"locked": {
"lastModified": 1754008153,
"narHash": "sha256-MYT1mDtSkiVg343agxgBFsnuNU3xS8vRy399JXX1Vw0=",
"owner": "SEIAROTg",
"repo": "quadlet-nix",
"rev": "1b2d27d460d8c7e4da5ba44ede463b427160b5c4",
"type": "github"
},
"original": {
"owner": "SEIAROTg",
"repo": "quadlet-nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"affinity-nix": "affinity-nix", "affinity-nix": "affinity-nix",
"agenix": "agenix", "agenix": "agenix",
"agenix-rekey": "agenix-rekey", "agenix-rekey": "agenix-rekey",
"awww": "awww",
"community-solid-server": "community-solid-server", "community-solid-server": "community-solid-server",
"darwin": "darwin_2", "darwin": "darwin_2",
"deploy-rs": "deploy-rs",
"disko": "disko", "disko": "disko",
"easy-hosts": "easy-hosts",
"flake-parts": "flake-parts_4",
"flatpak": "flatpak", "flatpak": "flatpak",
"git-global-log": "git-global-log", "git-global-log": "git-global-log",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
@ -1223,56 +1205,11 @@
"noctalia": "noctalia", "noctalia": "noctalia",
"nur": "nur", "nur": "nur",
"ovos": "ovos", "ovos": "ovos",
"quadlet": "quadlet",
"snowfall": "snowfall",
"stylix": "stylix", "stylix": "stylix",
"unstable": "unstable", "unstable": "unstable",
"waka-victoriametrics": "waka-victoriametrics" "waka-victoriametrics": "waka-victoriametrics"
} }
}, },
"rust-overlay": {
"inputs": {
"nixpkgs": [
"awww",
"nixpkgs"
]
},
"locked": {
"lastModified": 1764038373,
"narHash": "sha256-M6w2wNBRelcavoDAyFL2iO4NeWknD40ASkH1S3C0YGM=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "ab3536fe850211a96673c6ffb2cb88aab8071cc9",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"snowfall": {
"inputs": {
"flake-compat": "flake-compat_5",
"flake-utils-plus": "flake-utils-plus",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1765361626,
"narHash": "sha256-kX0Dp/kYSRbQ+yd9e3lmmUWdNbipufvKfL2IzbrSpnY=",
"owner": "snowfallorg",
"repo": "lib",
"rev": "c566ad8b7352c30ec3763435de7c8f1c46ebb357",
"type": "github"
},
"original": {
"owner": "snowfallorg",
"repo": "lib",
"type": "github"
}
},
"stylix": { "stylix": {
"inputs": { "inputs": {
"base16": "base16", "base16": "base16",
@ -1280,7 +1217,7 @@
"base16-helix": "base16-helix", "base16-helix": "base16-helix",
"base16-vim": "base16-vim", "base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_5", "flake-parts": "flake-parts_6",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
@ -1518,9 +1455,27 @@
"type": "github" "type": "github"
} }
}, },
"utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"waka-victoriametrics": { "waka-victoriametrics": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_6", "flake-parts": "flake-parts_7",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
] ]

170
flake.nix
View file

@ -8,12 +8,9 @@
master.url = "github:NixOS/nixpkgs/master"; master.url = "github:NixOS/nixpkgs/master";
# Flake framework # Flake framework
# flake-parts.url = "github:hercules-ci/flake-parts"; flake-parts.url = "github:hercules-ci/flake-parts";
# nixos-unified.url = "github:srid/nixos-unified"; easy-hosts.url = "github:tgirlcloud/easy-hosts";
snowfall = { deploy-rs.url = "github:serokell/deploy-rs";
url = "github:snowfallorg/lib";
inputs.nixpkgs.follows = "nixpkgs";
};
# System management # System management
home-manager = { home-manager = {
@ -24,8 +21,6 @@
url = "github:lnl7/nix-darwin"; url = "github:lnl7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# Infrastructure
disko = { disko = {
url = "github:nix-community/disko"; url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@ -41,18 +36,20 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# Styling # Desktop usage
stylix = { stylix = {
url = "github:nix-community/stylix"; url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
niri.url = "github:sodiboo/niri-flake";
noctalia = {
url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "unstable";
};
affinity-nix.url = "github:mrshmllow/affinity-nix"; affinity-nix.url = "github:mrshmllow/affinity-nix";
quadlet.url = "github:SEIAROTg/quadlet-nix";
musnix.url = "github:musnix/musnix"; musnix.url = "github:musnix/musnix";
niri.url = "github:sodiboo/niri-flake";
flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0"; flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0";
awww.url = "git+https://codeberg.org/LGFae/awww";
git-global-log.url = "github:tophcodes/git-global-log"; git-global-log.url = "github:tophcodes/git-global-log";
nur = { nur = {
url = "github:nix-community/NUR"; url = "github:nix-community/NUR";
@ -61,10 +58,6 @@
community-solid-server = { community-solid-server = {
url = "github:tophcodes/CommunitySolidServer.nix/main"; url = "github:tophcodes/CommunitySolidServer.nix/main";
}; };
noctalia = {
url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "unstable";
};
# Custom # Custom
ovos = { ovos = {
@ -77,82 +70,83 @@
}; };
}; };
outputs = {self, ...} @ inputs: outputs = inputs @ {flake-parts, ...}:
(inputs.snowfall.mkFlake { flake-parts.lib.mkFlake {inherit inputs;} (top @ {
inherit inputs; config,
src = ./.; withSystem,
moduleWithSystem,
...
}: {
imports = [
inputs.agenix-rekey.flakeModule
inputs.disko.flakeModules.default
inputs.home-manager.flakeModules.home-manager
./modules/flake
];
});
# (inputs.snowfall.mkFlake {
# inherit inputs;
# src = ./.;
# Exposes all internal libs and packages as `lib._elements` or `pkgs._elements` respectively # # Exposes all internal libs and packages as `lib._elements` or `pkgs._elements` respectively
snowfall.namespace = "_elements"; # snowfall.namespace = "_elements";
# Global system modules to be included for all systems # # Global system modules to be included for all systems
systems.modules = with inputs; { # systems.modules = with inputs; {
nixos = [ # nixos = [
disko.nixosModules.default # disko.nixosModules.default
agenix.nixosModules.default # ./modules/common
agenix-rekey.nixosModules.default
./modules/common
];
darwin = [
agenix.darwinModules.default
agenix-rekey.nixosModules.default
stylix.darwinModules.stylix
./modules/common
];
};
# Add modules only to specific hosts
systems.hosts = with inputs; {
cobalt.modules = [
niri.nixosModules.niri
stylix.nixosModules.stylix
musnix.nixosModules.default
ovos.nixosModules.default
waka-victoriametrics.nixosModules.default
];
beryllium.modules = [
quadlet.nixosModules.quadlet
];
europium.modules = [
quadlet.nixosModules.quadlet
];
};
homes.users = {
# TODO: For some reason this needs to be toggled for agenix to work?
# "christopher@cobalt".modules = with inputs; [
# niri.homeModules.niri
# ]; # ];
"christopher@beryllium".modules = with inputs; [ # darwin = [
quadlet.homeManagerModules.quadlet # stylix.darwinModules.stylix
]; # ./modules/common
}; # ];
# };
# Configure nixpkgs when instantiating the package set # # Add modules only to specific hosts
# TODO: This is already specified elsewhere. Still needed here? # systems.hosts = with inputs; {
channels-config = { # cobalt.modules = [
allowUnfree = true; # niri.nixosModules.niri
permittedInsecurePackages = []; # stylix.nixosModules.stylix
}; # musnix.nixosModules.default
# ovos.nixosModules.default
# waka-victoriametrics.nixosModules.default
# ];
# };
overlays = with inputs; [ # homes.users = {
niri.overlays.niri # # TODO: For some reason this needs to be toggled for agenix to work?
nur.overlays.default # # "christopher@cobalt".modules = with inputs; [
ovos.overlays.default # # niri.homeModules.niri
(final: prev: { # # ];
waka-victoriametrics = waka-victoriametrics.packages.${final.system}.default; # };
})
];
outputs-builder = channels: { # # Configure nixpkgs when instantiating the package set
formatter = channels.nixpkgs.alejandra; # # TODO: This is already specified elsewhere. Still needed here?
}; # channels-config = {
}) # allowUnfree = true;
// { # permittedInsecurePackages = [];
agenix-rekey = inputs.agenix-rekey.configure { # };
userFlake = inputs.self;
nixosConfigurations = inputs.self.nixosConfigurations // inputs.self.darwinConfigurations; # overlays = with inputs; [
homeConfigurations = inputs.self.homeConfigurations; # niri.overlays.niri
}; # nur.overlays.default
}; # ovos.overlays.default
# (final: prev: {
# waka-victoriametrics = waka-victoriametrics.packages.${final.system}.default;
# })
# ];
# outputs-builder = channels: {
# formatter = channels.nixpkgs.alejandra;
# };
# })
# // {
# agenix-rekey = inputs.agenix-rekey.configure {
# userFlake = inputs.self;
# nixosConfigurations = inputs.self.nixosConfigurations // inputs.self.darwinConfigurations;
# homeConfigurations = inputs.self.homeConfigurations;
# };
# };
# }
} }

18
modules/flake/args.nix Normal file
View file

@ -0,0 +1,18 @@
{inputs, ...}: {
systems = [
"x86_64-linux"
"x86_64-darwin"
];
perSystem = {system, ...}: {
_module.args.pkgs = import inputs.nixpkgs {
inherit system;
config = {
allowUnfree = true;
allowUnsupportedSystem = true;
};
overlays = [];
};
};
}

View file

@ -0,0 +1,7 @@
{...}: {
imports = [
./hosts.nix
./args.nix
./formatter.nix
];
}

View file

@ -0,0 +1,36 @@
{...}: {
perSystem = {pkgs, ...}: {
formatter = pkgs.treefmt.withConfig {
runtimeInputs = with pkgs; [
deadnix # scans for dead code
statix # static code analysis for nix
alejandra # nix formatter
];
settings = {
on-unmatched = "info";
tree-root-file = "flake.nix";
excludes = ["secrets/*"];
formatter = {
deadnix = {
command = "deadnix";
options = ["--edit"];
includes = ["*.nix"];
};
alejandra = {
command = "alejandra";
includes = ["*.nix"];
};
statix = {
command = "statix-fix";
includes = ["*.nix"];
};
};
};
};
};
}

20
modules/flake/hosts.nix Normal file
View file

@ -0,0 +1,20 @@
{
self,
inputs,
...
}: {
imports = [inputs.easy-hosts.flakeModule];
config.easy-hosts = {
hosts = {
endurance = {};
vasa = {
arch = "aarch64";
class = "darwin";
};
aepplet = {};
};
};
}