diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..005a801 --- /dev/null +++ b/.envrc @@ -0,0 +1,2 @@ +use flake +watch_file flake.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a71e2bf --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +# build artifacts +result + +# dev shell +.pre-commit-config.yaml +.direnv/ diff --git a/common.nix b/common.nix index 3dc91d1..a4ac2e2 100644 --- a/common.nix +++ b/common.nix @@ -131,8 +131,6 @@ in { pavucontrol obs-studio mpv - vscode - nil glfw-wayland-minecraft (prismlauncher.override { jdks = [temurin-bin-17]; @@ -146,7 +144,6 @@ in { ragenix.packages.${system}.default getchvim.packages.${system}.default nix-your-shell - neovide ]; services = { diff --git a/flake.nix b/flake.nix index d224bc3..b4180a2 100644 --- a/flake.nix +++ b/flake.nix @@ -37,32 +37,53 @@ }; outputs = { + flake-parts, nixpkgs, ragenix, lanzaboote, home-manager, ... - } @ inputs: let - mkSystem = name: - nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - ./common.nix + } @ inputs: + flake-parts.lib.mkFlake {inherit inputs;} { + systems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"]; - ./${name} - ./${name}/hardware-configuration.nix + flake = let + mkSystem = name: + nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./common.nix - {networking.hostName = name;} + ./${name} + ./${name}/hardware-configuration.nix - ragenix.nixosModules.default - lanzaboote.nixosModules.lanzaboote - home-manager.nixosModules.home-manager - ]; - specialArgs = inputs; + {networking.hostName = name;} + + ragenix.nixosModules.default + lanzaboote.nixosModules.lanzaboote + home-manager.nixosModules.home-manager + ]; + specialArgs = inputs; + }; + in { + nixosConfigurations = nixpkgs.lib.genAttrs ["fuji" "kilimandjaro"] mkSystem; }; - in { - nixosConfigurations = nixpkgs.lib.genAttrs ["fuji" "kilimandjaro"] mkSystem; - formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra; - }; + perSystem = {system, ...}: let + pkgs = import nixpkgs { + inherit system; + }; + in { + devShells.default = pkgs.mkShell { + packages = with pkgs; [ + alejandra + fzf + just + nil + ]; + }; + + formatter = pkgs.alejandra; + }; + }; } diff --git a/justfile b/justfile new file mode 100644 index 0000000..d63b954 --- /dev/null +++ b/justfile @@ -0,0 +1,28 @@ +# Shamelessly taken from https://github.com/getchoo/flake/blob/d80d49cc7652ea84810c4688212c48277dfc71be/justfile + +alias b := build +alias c := check +alias s := switch +alias t := test + +default: + @just --choose + +[linux] +build *args: + nixos-rebuild build --flake . {{ args }} + nix run n#nvd -- diff /run/current-system/ result/ + +check: + nix flake check + +[linux] +switch *args: + sudo nixos-rebuild switch --flake . --keep-going {{ args }} + +[linux] +test: + sudo nixos-rebuild test --flake . + +update: (switch "--recreate-lock-file") + nix-index