From 3cce82ce039bd6ced0afa3592845f27353748e5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20M=C3=BChl?= Date: Mon, 5 Jan 2026 10:58:37 +0100 Subject: [PATCH] Start rewriting with easy-hosts --- .../home/toph@endurance/niri/autostart.nix | 16 +- .../home/toph@endurance/niri/default.nix | 1 - .../home/toph@endurance/niri/window-rules.nix | 14 +- flake.lock | 289 ++++++++---------- flake.nix | 178 ++++++----- modules/flake/args.nix | 18 ++ modules/flake/default.nix | 7 + modules/flake/formatter.nix | 36 +++ modules/flake/hosts.nix | 20 ++ 9 files changed, 308 insertions(+), 271 deletions(-) create mode 100644 modules/flake/args.nix create mode 100644 modules/flake/default.nix create mode 100644 modules/flake/formatter.nix create mode 100644 modules/flake/hosts.nix diff --git a/configurations/home/toph@endurance/niri/autostart.nix b/configurations/home/toph@endurance/niri/autostart.nix index 7eb07d7..c018a6f 100644 --- a/configurations/home/toph@endurance/niri/autostart.nix +++ b/configurations/home/toph@endurance/niri/autostart.nix @@ -1,12 +1,10 @@ -{ - lib, - pkgs, - ... -}: { - programs.niri.settings.spawn-at-startup = with lib._elements; [ - # {argv = ["awww-daemon"];} - # {argv = ["awww" "img" "${fixture "wallpapers/cat-vibes.webp"}"];} +{...}: { + programs.niri.settings.spawn-at-startup = [ + # 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"];} - {argv = ["kitty"];} + # open fastfetch by default + {argv = ["kitty --title 'fastfetch' sh -c 'fastfetch; read'"];} ]; } diff --git a/configurations/home/toph@endurance/niri/default.nix b/configurations/home/toph@endurance/niri/default.nix index 7797f95..7627ff6 100644 --- a/configurations/home/toph@endurance/niri/default.nix +++ b/configurations/home/toph@endurance/niri/default.nix @@ -13,6 +13,5 @@ home.packages = with pkgs; [ fuzzel - inputs.awww.packages.${pkgs.stdenv.hostPlatform.system}.awww ]; } diff --git a/configurations/home/toph@endurance/niri/window-rules.nix b/configurations/home/toph@endurance/niri/window-rules.nix index 197a86d..87dee0e 100644 --- a/configurations/home/toph@endurance/niri/window-rules.nix +++ b/configurations/home/toph@endurance/niri/window-rules.nix @@ -41,8 +41,14 @@ in { block-out-from = "screencast"; } { - matches = [{app-id = "kitty";}]; - opacity = 0.97; + matches = [{title = "fastfetch";}]; + 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";}]; @@ -57,6 +63,10 @@ in { block-out-from = "screencast"; } + { + matches = [{app-id = "kitty";}]; + opacity = 0.97; + } { matches = [ {app-id = "org.zealdocs.zeal";} diff --git a/flake.lock b/flake.lock index ca24d53..1500f59 100644 --- a/flake.lock +++ b/flake.lock @@ -73,26 +73,6 @@ "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": { "inputs": { "fromYaml": "fromYaml" @@ -164,7 +144,7 @@ "community-solid-server": { "inputs": { "flake-parts": "flake-parts_3", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1767157894, @@ -223,6 +203,26 @@ "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": { "inputs": { "nixpkgs": [ @@ -251,11 +251,11 @@ ] }, "locked": { - "lastModified": 1753140376, - "narHash": "sha256-7lrVrE0jSvZHrxEzvnfHFE/Wkk9DDqb+mYCodI5uuB8=", + "lastModified": 1766150702, + "narHash": "sha256-P0kM+5o+DKnB6raXgFEk3azw8Wqg5FL6wyl9jD+G5a4=", "owner": "nix-community", "repo": "disko", - "rev": "545aba02960caa78a31bd9a8709a0ad4b6320a5c", + "rev": "916506443ecd0d0b4a0f4cf9d40a3c22ce39b378", "type": "github" }, "original": { @@ -264,6 +264,21 @@ "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": { "flake": false, "locked": { @@ -347,27 +362,11 @@ "flake-compat_4": { "flake": false, "locked": { - "lastModified": 1761588595, - "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", - "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", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "type": "github" }, "original": { @@ -434,6 +433,24 @@ } }, "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": { "nixpkgs-lib": [ "nur", @@ -454,7 +471,7 @@ "type": "github" } }, - "flake-parts_5": { + "flake-parts_6": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -475,9 +492,9 @@ "type": "github" } }, - "flake-parts_6": { + "flake-parts_7": { "inputs": { - "nixpkgs-lib": "nixpkgs-lib_3" + "nixpkgs-lib": "nixpkgs-lib_4" }, "locked": { "lastModified": 1765835352, @@ -494,43 +511,6 @@ } }, "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": { "systems": "systems_3" }, @@ -548,16 +528,16 @@ "type": "github" } }, - "flake-utils_3": { + "flake-utils_2": { "inputs": { "systems": "systems_4" }, "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -892,6 +872,21 @@ "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": { "locked": { "lastModified": 1764831616, @@ -957,22 +952,6 @@ } }, "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": { "lastModified": 1767051569, "narHash": "sha256-0MnuWoN+n1UYaGBIpqpPs9I9ZHW4kynits4mrnh1Pk4=", @@ -988,6 +967,22 @@ "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": { "locked": { "lastModified": 1766309749, @@ -1074,7 +1069,7 @@ }, "nur": { "inputs": { - "flake-parts": "flake-parts_4", + "flake-parts": "flake-parts_5", "nixpkgs": [ "nixpkgs" ] @@ -1189,30 +1184,17 @@ "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": { "inputs": { "affinity-nix": "affinity-nix", "agenix": "agenix", "agenix-rekey": "agenix-rekey", - "awww": "awww", "community-solid-server": "community-solid-server", "darwin": "darwin_2", + "deploy-rs": "deploy-rs", "disko": "disko", + "easy-hosts": "easy-hosts", + "flake-parts": "flake-parts_4", "flatpak": "flatpak", "git-global-log": "git-global-log", "home-manager": "home-manager_2", @@ -1223,56 +1205,11 @@ "noctalia": "noctalia", "nur": "nur", "ovos": "ovos", - "quadlet": "quadlet", - "snowfall": "snowfall", "stylix": "stylix", "unstable": "unstable", "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": { "inputs": { "base16": "base16", @@ -1280,7 +1217,7 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts_5", + "flake-parts": "flake-parts_6", "gnome-shell": "gnome-shell", "nixpkgs": [ "nixpkgs" @@ -1518,9 +1455,27 @@ "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": { "inputs": { - "flake-parts": "flake-parts_6", + "flake-parts": "flake-parts_7", "nixpkgs": [ "nixpkgs" ] diff --git a/flake.nix b/flake.nix index 06f9fee..4e63392 100644 --- a/flake.nix +++ b/flake.nix @@ -8,12 +8,9 @@ master.url = "github:NixOS/nixpkgs/master"; # Flake framework - # flake-parts.url = "github:hercules-ci/flake-parts"; - # nixos-unified.url = "github:srid/nixos-unified"; - snowfall = { - url = "github:snowfallorg/lib"; - inputs.nixpkgs.follows = "nixpkgs"; - }; + flake-parts.url = "github:hercules-ci/flake-parts"; + easy-hosts.url = "github:tgirlcloud/easy-hosts"; + deploy-rs.url = "github:serokell/deploy-rs"; # System management home-manager = { @@ -24,8 +21,6 @@ url = "github:lnl7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; - - # Infrastructure disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; @@ -41,18 +36,20 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - # Styling + # Desktop usage stylix = { url = "github:nix-community/stylix"; 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"; - quadlet.url = "github:SEIAROTg/quadlet-nix"; musnix.url = "github:musnix/musnix"; - niri.url = "github:sodiboo/niri-flake"; 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"; nur = { url = "github:nix-community/NUR"; @@ -61,10 +58,6 @@ community-solid-server = { url = "github:tophcodes/CommunitySolidServer.nix/main"; }; - noctalia = { - url = "github:noctalia-dev/noctalia-shell"; - inputs.nixpkgs.follows = "unstable"; - }; # Custom ovos = { @@ -77,82 +70,83 @@ }; }; - outputs = {self, ...} @ inputs: - (inputs.snowfall.mkFlake { - inherit inputs; - src = ./.; - - # Exposes all internal libs and packages as `lib._elements` or `pkgs._elements` respectively - snowfall.namespace = "_elements"; - - # Global system modules to be included for all systems - systems.modules = with inputs; { - nixos = [ - disko.nixosModules.default - agenix.nixosModules.default - 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; [ - quadlet.homeManagerModules.quadlet - ]; - }; - - # Configure nixpkgs when instantiating the package set - # TODO: This is already specified elsewhere. Still needed here? - channels-config = { - allowUnfree = true; - permittedInsecurePackages = []; - }; - - overlays = with inputs; [ - niri.overlays.niri - nur.overlays.default - ovos.overlays.default - (final: prev: { - waka-victoriametrics = waka-victoriametrics.packages.${final.system}.default; - }) + outputs = inputs @ {flake-parts, ...}: + flake-parts.lib.mkFlake {inherit inputs;} (top @ { + config, + 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 = ./.; - 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; - }; - }; + # # Exposes all internal libs and packages as `lib._elements` or `pkgs._elements` respectively + # snowfall.namespace = "_elements"; + + # # Global system modules to be included for all systems + # systems.modules = with inputs; { + # nixos = [ + # disko.nixosModules.default + # ./modules/common + # ]; + # darwin = [ + # 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 + # ]; + # }; + + # homes.users = { + # # TODO: For some reason this needs to be toggled for agenix to work? + # # "christopher@cobalt".modules = with inputs; [ + # # niri.homeModules.niri + # # ]; + # }; + + # # Configure nixpkgs when instantiating the package set + # # TODO: This is already specified elsewhere. Still needed here? + # channels-config = { + # allowUnfree = true; + # permittedInsecurePackages = []; + # }; + + # overlays = with inputs; [ + # 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; + # }; + # }; + # } } diff --git a/modules/flake/args.nix b/modules/flake/args.nix new file mode 100644 index 0000000..77f6d9c --- /dev/null +++ b/modules/flake/args.nix @@ -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 = []; + }; + }; +} diff --git a/modules/flake/default.nix b/modules/flake/default.nix new file mode 100644 index 0000000..dd20145 --- /dev/null +++ b/modules/flake/default.nix @@ -0,0 +1,7 @@ +{...}: { + imports = [ + ./hosts.nix + ./args.nix + ./formatter.nix + ]; +} diff --git a/modules/flake/formatter.nix b/modules/flake/formatter.nix new file mode 100644 index 0000000..54c9e99 --- /dev/null +++ b/modules/flake/formatter.nix @@ -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"]; + }; + }; + }; + }; + }; +} diff --git a/modules/flake/hosts.nix b/modules/flake/hosts.nix new file mode 100644 index 0000000..8708955 --- /dev/null +++ b/modules/flake/hosts.nix @@ -0,0 +1,20 @@ +{ + self, + inputs, + ... +}: { + imports = [inputs.easy-hosts.flakeModule]; + + config.easy-hosts = { + hosts = { + endurance = {}; + + vasa = { + arch = "aarch64"; + class = "darwin"; + }; + + aepplet = {}; + }; + }; +}