flake.nix (1918B)
1 { 2 inputs.nixpkgs.url = "nixpkgs/nixos-unstable"; 3 4 outputs = 5 { self, nixpkgs, ... }: 6 let 7 lib = nixpkgs.lib; 8 systems = [ 9 "aarch64-linux" 10 "x86_64-linux" 11 ]; 12 argsFor = system: { 13 inherit system; 14 pkgs = nixpkgs.legacyPackages.${system}.extend self.overlays.default; 15 }; 16 forAllSystems = f: lib.genAttrs systems (system: f (argsFor system)); 17 in 18 { 19 overlays.default = import ./overlay.nix; 20 21 devShells = forAllSystems ( 22 { pkgs, ... }: 23 { 24 default = pkgs.mkShell { 25 packages = with pkgs; [ 26 bash 27 coreutils 28 curl 29 grimblast 30 inotify-tools 31 jq 32 slurp 33 wf-recorder 34 wl-clipboard 35 ]; 36 }; 37 } 38 ); 39 40 packages = forAllSystems ( 41 { pkgs, system, ... }: 42 { 43 default = self.packages.${system}.imsh-clients; 44 imsh-clients = pkgs.symlinkJoin { 45 name = "imsh-clients"; 46 paths = with self.packages.${system}; [ 47 imsh-shot 48 imsh-cast 49 imsh-cast-monitor 50 ]; 51 }; 52 imsh-shot = pkgs.callPackage ./imsh-shot { }; 53 imsh-cast = pkgs.callPackage ./imsh-cast { }; 54 imsh-cast-monitor = pkgs.callPackage ./imsh-cast-monitor { }; 55 } 56 ); 57 58 homeManagerModules = { 59 default = self.homeManagerModules.imsh-clients; 60 imsh-clients = ./modules/home-manager.nix; 61 }; 62 63 formatter = forAllSystems ( 64 { pkgs, ... }: 65 pkgs.treefmt.withConfig { 66 settings = { 67 on-unmatched = "info"; 68 formatter.nixfmt = { 69 command = lib.getExe pkgs.nixfmt-rfc-style; 70 includes = [ "*.nix" ]; 71 }; 72 }; 73 } 74 ); 75 }; 76 }