Nix refactor (#93)

* default.nix -> nix/default.nix (to consolidate nix files)

* add esbuild to devShell

* nixpkgs-fmt -> nixfmt-rfc-style

nixpkgs-fmt is being deprecated

* format flake.nix and nix/default.nix w nixfmt-rfc-style

* have overlay and default callPackage on ./nix/default.nix

* Update flake.nix

Co-authored-by: orangc <orangc@proton.me>

* remove exports from shellHooks

* refactor overlay

* update BinPath in nix/default.nix

---------

Co-authored-by: orangc <orangc@proton.me>
This commit is contained in:
nebu
2024-08-18 16:22:00 -04:00
committed by GitHub
parent 6c8615c278
commit 05a7f130ef
2 changed files with 75 additions and 70 deletions

120
flake.nix
View File

@@ -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;
}
);
};
}

View File

@@ -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 $@
'';
};
}