diff --git a/flake.lock b/flake.lock index 8da7451..b9edaee 100644 --- a/flake.lock +++ b/flake.lock @@ -17,6 +17,27 @@ "type": "github" } }, + "crane": { + "inputs": { + "nixpkgs": [ + "flox-flake", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1703439018, + "narHash": "sha256-VT+06ft/x3eMZ1MJxWzQP3zXFGcrxGo5VR2rB7t88hs=", + "owner": "ipetkov", + "repo": "crane", + "rev": "afdcd41180e3dfe4dac46b5ee396e3b12ccc967a", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "disko": { "inputs": { "nixpkgs": [ @@ -24,11 +45,11 @@ ] }, "locked": { - "lastModified": 1710427903, - "narHash": "sha256-sV0Q5ndvfjK9JfCg/QM/HX/fcittohvtq8dD62isxdM=", + "lastModified": 1710906792, + "narHash": "sha256-kFzpfZcInLhBFWHy452NlvFuzNr0BDEkz3w9Sgg2ypo=", "owner": "nix-community", "repo": "disko", - "rev": "21d89b333ca300bef82c928c856d48b94a9f997c", + "rev": "e9875b969086a53dff5ec4677575ad3156fc875d", "type": "github" }, "original": { @@ -37,10 +58,44 @@ "type": "github" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-utils": { "inputs": { "systems": "systems" }, + "locked": { + "lastModified": 1685518550, + "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, "locked": { "lastModified": 1687709756, "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", @@ -55,6 +110,46 @@ "type": "github" } }, + "flox-flake": { + "inputs": { + "crane": "crane", + "flox-latest": "flox-latest", + "nixpkgs": "nixpkgs", + "nixpkgs-bear": "nixpkgs-bear", + "pre-commit-hooks": "pre-commit-hooks", + "sqlite3pp": "sqlite3pp" + }, + "locked": { + "lastModified": 1710948909, + "narHash": "sha256-kESddzTIzBUGToPgBcM2kFiKt1Njyo2wYwPb8GqAhIM=", + "owner": "flox", + "repo": "flox", + "rev": "21e1a2929eeadfb6e128d6f991f82ae029bf7e07", + "type": "github" + }, + "original": { + "owner": "flox", + "repo": "flox", + "type": "github" + } + }, + "flox-latest": { + "flake": false, + "locked": { + "lastModified": 1710260111, + "narHash": "sha256-UYfalL+kEnHO6GOJzi5GqFlz8lo/vu7BFLBExNG5xXo=", + "ref": "latest", + "rev": "8e5a1c7a38111fddc1ef34052f50919e195151ad", + "revCount": 1108, + "type": "git", + "url": "ssh://git@github.com/flox/flox" + }, + "original": { + "ref": "latest", + "type": "git", + "url": "ssh://git@github.com/flox/flox" + } + }, "genebean-omp-themes": { "flake": false, "locked": { @@ -71,6 +166,28 @@ "type": "github" } }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "flox-flake", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1660459072, + "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -99,11 +216,11 @@ ] }, "locked": { - "lastModified": 1710281379, - "narHash": "sha256-uFo9hxt982L3nFJeweW4Gip2esiGrIQlbvEGrNTh4AY=", + "lastModified": 1710717205, + "narHash": "sha256-Wf3gHh5uV6W1TV/A8X8QJf99a5ypDSugY4sNtdJDe0A=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "d9ea313bc4851670dc99c5cc979cb79750e7d670", + "rev": "bcc8afd06e237df060c85bad6af7128e05fd61a3", "type": "github" }, "original": { @@ -114,7 +231,7 @@ }, "nix-darwin_2": { "inputs": { - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1688307440, @@ -148,9 +265,9 @@ "nix-homebrew": { "inputs": { "brew-src": "brew-src", - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "nix-darwin": "nix-darwin_2", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1705952034, @@ -168,24 +285,59 @@ }, "nixpkgs": { "locked": { - "lastModified": 1687274257, - "narHash": "sha256-TutzPriQcZ8FghDhEolnHcYU2oHIG5XWF+/SUBNnAOE=", - "path": "/nix/store/22qgs3skscd9bmrxv9xv4q5d4wwm5ppx-source", - "rev": "2c9ecd1f0400076a4d6b2193ad468ff0a7e7fdc5", - "type": "path" + "lastModified": 1704300003, + "narHash": "sha256-FRC/OlLVvKkrdm+RtrODQPufD0vVZYA0hpH9RPaHmp4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ab5fd150146dcfe41fda501134e6503932cc8dfd", + "type": "github" }, "original": { - "id": "nixpkgs", - "type": "indirect" + "owner": "NixOS", + "ref": "release-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-bear": { + "locked": { + "lastModified": 1705957679, + "narHash": "sha256-Q8LJaVZGJ9wo33wBafvZSzapYsjOaNjP/pOnSiKVGHY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9a333eaa80901efe01df07eade2c16d183761fa3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "release-23.05", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs-stable": { "locked": { - "lastModified": 1710033658, - "narHash": "sha256-yiZiVKP5Ya813iYLho2+CcFuuHpaqKc/CoxOlANKcqM=", + "lastModified": 1685801374, + "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b17375d3bb7c79ffc52f3538028b2ec06eb79ef8", + "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable_2": { + "locked": { + "lastModified": 1710628718, + "narHash": "sha256-y+l3eH53UlENaYa1lmnCBHusZb1kxBEFd2/c7lDsGpw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "6dc11d9859d6a18ab0c5e5829a5b8e4810658de3", "type": "github" }, "original": { @@ -197,11 +349,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1710408871, - "narHash": "sha256-YpSGYZR96I8g5OK/Fdm0O4+mHLen6YPA1cPanqqNqT0=", + "lastModified": 1710889954, + "narHash": "sha256-Pr6F5Pmd7JnNEMHHmspZ0qVqIBVxyZ13ik1pJtm2QXk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "bd5ddf2c6bfafff031edf80221e1ee94e86ca10a", + "rev": "7872526e9c5332274ea5932a0c3270d6e4724f3b", "type": "github" }, "original": { @@ -212,6 +364,19 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1687274257, + "narHash": "sha256-TutzPriQcZ8FghDhEolnHcYU2oHIG5XWF+/SUBNnAOE=", + "path": "/nix/store/22qgs3skscd9bmrxv9xv4q5d4wwm5ppx-source", + "rev": "2c9ecd1f0400076a4d6b2193ad468ff0a7e7fdc5", + "type": "path" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1688049487, "narHash": "sha256-100g4iaKC9MalDjUW9iN6Jl/OocTDtXdeAj7pEGIRh4=", @@ -227,13 +392,13 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { - "lastModified": 1710460316, - "narHash": "sha256-ZuQieLX3NZ3llphLboK+1SdBUy8/SCONeJNaA18k0E8=", + "lastModified": 1710951922, + "narHash": "sha256-FOOBJ3DQenLpTNdxMHR2CpGZmYuctb92gF0lpiirZ30=", "owner": "nixos", "repo": "nixpkgs", - "rev": "be5f4498d8d800e447b9463bfe6c0369739f705d", + "rev": "f091af045dff8347d66d186a62d42aceff159456", "type": "github" }, "original": { @@ -243,15 +408,41 @@ "type": "github" } }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "gitignore": "gitignore", + "nixpkgs": [ + "flox-flake", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1703939133, + "narHash": "sha256-Gxe+mfOT6bL7wLC/tuT2F+V+Sb44jNr8YsJ3cyIl4Mo=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "9d3d7e18c6bc4473d7520200d4ddab12f8402d38", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "disko": "disko", + "flox-flake": "flox-flake", "genebean-omp-themes": "genebean-omp-themes", "home-manager": "home-manager", "nix-darwin": "nix-darwin", "nix-flatpak": "nix-flatpak", "nix-homebrew": "nix-homebrew", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nixpkgs-unstable": "nixpkgs-unstable", "sops-nix": "sops-nix" } @@ -261,14 +452,14 @@ "nixpkgs": [ "nixpkgs" ], - "nixpkgs-stable": "nixpkgs-stable" + "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1710433464, - "narHash": "sha256-IXlPoWgIRovZ32mYvqqdBgOQln71LouE/HBhbKc1wcw=", + "lastModified": 1710644594, + "narHash": "sha256-RquCuzxfy4Nr8DPbdp3D/AsbYep21JgQzG8aMH9jJ4A=", "owner": "mic92", "repo": "sops-nix", - "rev": "6c32d3b9c7593f4b466ec5404e59fc09a803a090", + "rev": "83b68a0e8c94b72cdd0a6e547a14ca7eb1c03616", "type": "github" }, "original": { @@ -277,6 +468,27 @@ "type": "github" } }, + "sqlite3pp": { + "inputs": { + "nixpkgs": [ + "flox-flake", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1691154329, + "narHash": "sha256-nMtwh/G1/Zt70rl540jn+nFVJuju0NdXJwk2Y3pNB+k=", + "owner": "aakropotkin", + "repo": "sqlite3pp", + "rev": "775e48a6c7a63a51585cd628f6c9816ba634a246", + "type": "github" + }, + "original": { + "owner": "aakropotkin", + "repo": "sqlite3pp", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, @@ -291,6 +503,21 @@ "repo": "default", "type": "github" } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 906eb8a..ac86e3e 100644 --- a/flake.nix +++ b/flake.nix @@ -36,6 +36,12 @@ inputs.nixpkgs.follows ="nixpkgs"; }; + flox-flake = { + url = "github:flox/flox"; + # Setting the line below seems to break things... :( + # inputs.nixpkgs.follows ="nixpkgs"; + }; + # My oh-my-posh theme genebean-omp-themes = { url = "github:genebean/my-oh-my-posh-themes"; @@ -43,7 +49,7 @@ }; }; # end inputs - outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, nix-darwin, home-manager, nix-homebrew, nix-flatpak, disko, sops-nix, genebean-omp-themes, ... }: let + outputs = inputs@{ self, nixpkgs, nixpkgs-unstable, nix-darwin, home-manager, nix-homebrew, nix-flatpak, disko, sops-nix, flox-flake, genebean-omp-themes, ... }: let # creates a macOS system config darwinHostConfig = system: hostname: username: nix-darwin.lib.darwinSystem { @@ -54,7 +60,7 @@ permittedInsecurePackages = [ "python-2.7.18.7" ]; }; }; - specialArgs = { inherit inputs username hostname; }; + specialArgs = { inherit inputs username hostname flox-flake; }; modules = [ nix-homebrew.darwinModules.nix-homebrew { nix-homebrew = { @@ -83,7 +89,7 @@ # creates a nixos system config nixosHostConfig = system: hostname: username: nixpkgs.lib.nixosSystem { - specialArgs = { inherit inputs username hostname; + specialArgs = { inherit inputs username hostname flox-flake; pkgs = import nixpkgs { inherit system; config = { diff --git a/modules/hosts/nixos/rainbow-planet/default.nix b/modules/hosts/nixos/rainbow-planet/default.nix index 340404a..44aae99 100644 --- a/modules/hosts/nixos/rainbow-planet/default.nix +++ b/modules/hosts/nixos/rainbow-planet/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, username, ... }: { +{ config, flox-flake, pkgs, username, ... }: { imports = [ ./hardware-configuration.nix ../../../system/common/linux/flatpaks.nix @@ -18,6 +18,7 @@ # host specific apps boinc brightnessctl + flox-flake.packages.${pkgs.system}.default gnome.gnome-tweaks gnome.nautilus gnomeExtensions.dash-to-panel diff --git a/modules/system/common/all-darwin.nix b/modules/system/common/all-darwin.nix index 5b3020a..ef48e18 100644 --- a/modules/system/common/all-darwin.nix +++ b/modules/system/common/all-darwin.nix @@ -1,4 +1,4 @@ -{ pkgs, hostname, username, ... }: { +{ pkgs, flox-flake, hostname, username, ... }: { environment = { shells = with pkgs; [ bash zsh ]; loginShell = pkgs.zsh; @@ -10,6 +10,7 @@ age bandwhich coreutils + flox-flake.packages.${pkgs.system}.default hugo mas nmap @@ -91,6 +92,12 @@ "nix-command" "repl-flake" ]; + extra-trusted-public-keys = [ + "flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs=" + ]; + extra-trusted-substituters = [ + "https://cache.flox.dev" + ]; trusted-users = [ "@admin" "${username}" ]; }; extraOptions = '' diff --git a/modules/system/common/all-nixos.nix b/modules/system/common/all-nixos.nix index 0495234..c1df1e3 100644 --- a/modules/system/common/all-nixos.nix +++ b/modules/system/common/all-nixos.nix @@ -41,6 +41,12 @@ "flakes" "nix-command" ]; + extra-trusted-public-keys = [ + "flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs=" + ]; + extra-trusted-substituters = [ + "https://cache.flox.dev" + ]; trusted-users = [ "${username}" ]; };