diff --git a/flake.nix b/flake.nix index 6fd7870..364a9c4 100644 --- a/flake.nix +++ b/flake.nix @@ -6,58 +6,74 @@ ags.url = "github:Aylur/ags"; }; - outputs = { self, nixpkgs, ... }@inputs: - let - systems = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ]; - forEachSystem = nixpkgs.lib.genAttrs systems; - pkgsFor = forEachSystem (system: import nixpkgs { - inherit system; - config.allowUnfree = true; - }); + outputs = inputs: + let + systems = [ + "x86_64-linux" + "x86_64-darwin" + "aarch64-darwin" + "aarch64-linux" + ]; + forEachSystem = inputs.nixpkgs.lib.genAttrs systems; + pkgsFor = forEachSystem ( + system: + import inputs.nixpkgs { + inherit system; + config.allowUnfree = true; + } + ); - devShellFor = system: nixpkgs.lib.genAttrs [ "default" ] (_: nixpkgs.legacyPackages.${system}.mkShell { - buildInputs = [ - pkgsFor.${system}.fish - pkgsFor.${system}.typescript - pkgsFor.${system}.bun - pkgsFor.${system}.libnotify - pkgsFor.${system}.dart-sass - pkgsFor.${system}.fd - pkgsFor.${system}.btop - pkgsFor.${system}.bluez - pkgsFor.${system}.bluez-tools - pkgsFor.${system}.grimblast - pkgsFor.${system}.matugen - pkgsFor.${system}.swww - pkgsFor.${system}.gpu-screen-recorder - pkgsFor.${system}.brightnessctl - pkgsFor.${system}.gnome.gnome-bluetooth - pkgsFor.${system}.python3 - inputs.ags.packages.${system}.agsWithTypes - ]; - nativeBuildInputs = with pkgsFor.${system}; [ - nixpkgs-fmt - nil - ]; - shellHook = '' - export GDK_BACKEND=wayland - ''; - }); - in { - devShells = forEachSystem (system: devShellFor system); + devShellFor = + system: + inputs.nixpkgs.lib.genAttrs [ "default" ] ( + _: + inputs.nixpkgs.legacyPackages.${system}.mkShell { + buildInputs = [ + pkgsFor.${system}.esbuild + pkgsFor.${system}.fish + pkgsFor.${system}.typescript + pkgsFor.${system}.bun + pkgsFor.${system}.libnotify + pkgsFor.${system}.dart-sass + pkgsFor.${system}.fd + pkgsFor.${system}.btop + pkgsFor.${system}.bluez + pkgsFor.${system}.bluez-tools + pkgsFor.${system}.grimblast + pkgsFor.${system}.gpu-screen-recorder + pkgsFor.${system}.brightnessctl + pkgsFor.${system}.gnome.gnome-bluetooth + pkgsFor.${system}.python3 + pkgsFor.${system}.matugen + inputs.ags.packages.${system}.agsWithTypes + ]; + nativeBuildInputs = with pkgsFor.${system}; [ + nixfmt-rfc-style + nil + ]; + shellHook = '' + export GDK_BACKEND=wayland + ''; + } + ); + in + { + devShells = forEachSystem devShellFor; - overlay = forEachSystem(system: - let - pkgs = pkgsFor.${system}; - in final: prev: { - hyprpanel = (pkgs.callPackage ./. { inherit inputs; }).desktop.script; - }); - - packages = forEachSystem(system: - let - pkgs = pkgsFor.${system}; - in { - default = (pkgs.callPackage ./. { inherit inputs; }).desktop.script; - }); - }; + overlay = final: prev: { + hyprpanel = + if final ? callPackage + then (final.callPackage ./nix { inherit inputs; }).desktop.script + else inputs.self.packages.${prev.stdenv.system}.default; + }; + packages = forEachSystem ( + system: + let + pkgs = pkgsFor.${system}; + in + { + default = (pkgs.callPackage ./nix { inherit inputs; }).desktop.script; + } + ); + }; } diff --git a/default.nix b/nix/default.nix similarity index 54% rename from default.nix rename to nix/default.nix index ccf2055..16e1ece 100644 --- a/default.nix +++ b/nix/default.nix @@ -2,6 +2,7 @@ , pkgs , system , stdenv +, lib , writeShellScriptBin , bun , dart-sass @@ -18,10 +19,11 @@ , matugen , swww , python3 +, gnome }: let ags = inputs.ags.packages.${system}.default.override { - extraPackages = [accountsservice]; + extraPackages = [ accountsservice ]; }; pname = "hyprpanel"; @@ -46,26 +48,13 @@ let cp -f main.js $out/config.js ''; }; -in { +in +{ desktop = { inherit config; script = writeShellScriptBin pname '' - export PATH=$PATH:${dart-sass}/bin - export PATH=$PATH:${fd}/bin - export PATH=$PATH:${btop}/bin - export PATH=$PATH:${pipewire}/bin - export PATH=$PATH:${bluez}/bin - export PATH=$PATH:${bluez-tools}/bin - export PATH=$PATH:${grimblast}/bin - export PATH=$PATH:${gpu-screen-recorder}/bin - export PATH=$PATH:${networkmanager}/bin - export PATH=$PATH:${brightnessctl}/bin - export PATH=$PATH:${matugen}/bin - export PATH=$PATH:${swww}/bin - export PATH=$PATH:${pkgs.gnome.gnome-bluetooth}/bin - export PATH=$PATH:${python3}/bin - export GDK_BACKEND=wayland - ${ags}/bin/ags -b hyprpanel -c ${config}/config.js $@ + export PATH=$PATH:${lib.makeBinPath [dart-sass fd btop pipewire bluez bluez-tools grimblast gpu-screen-recorder brightnessctl gnome.gnome-bluetooth python3]} + ${ags}/bin/ags -b hyprpanel -c ${config}/config.js $@ ''; }; }