Upgraded the Nix install to work with Astal (#587)

* Upgraded the Nix install to work with Astal

* Removed pkgs.esbuild

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

* Removed pkgs.bun

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

* Added new dependencies to flake.nix

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

* Update tsconfig.json

---------

Co-authored-by: orangc <orangc@proton.me>
Co-authored-by: Jas Singh <jaskiratpal.singh@outlook.com>
This commit is contained in:
Thomas Carey
2024-12-22 07:44:45 +00:00
committed by GitHub
parent 48faf52e59
commit 3e2f641237
5 changed files with 134 additions and 160 deletions

122
flake.nix
View File

@@ -1,78 +1,76 @@
{
description = "A Bar/Panel for Hyprland with extensive customizability.";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
ags.url = "github:Aylur/ags";
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
ags.url = "github:aylur/ags";
astal.url = "github:aylur/astal";
};
outputs = inputs: let
outputs = { self, nixpkgs, ags, astal }: 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:
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}.libgtop
pkgsFor.${system}.gobject-introspection
pkgsFor.${system}.glib
pkgsFor.${system}.bluez-tools
pkgsFor.${system}.grimblast
pkgsFor.${system}.gpu-screen-recorder
pkgsFor.${system}.brightnessctl
pkgsFor.${system}.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
export GI_TYPELIB_PATH=${pkgsFor.${system}.libgtop}/lib/girepository-1.0:${pkgsFor.${system}.glib}/lib/girepository-1.0:$GI_TYPELIB_PATH
'';
}
);
forEachSystem = nixpkgs.lib.genAttrs systems;
in {
devShells = forEachSystem devShellFor;
packages = forEachSystem (system: let
pkgs = nixpkgs.legacyPackages.${system};
in {
default = ags.lib.bundle {
inherit pkgs;
src = ./.;
name = "hyprpanel"; # name of executable
entry = "app.ts";
# additional libraries and executables to add to gjs' runtime
extraPackages = [
ags.packages.${system}.agsFull
astal.packages.${system}.tray
astal.packages.${system}.hyprland
astal.packages.${system}.io
astal.packages.${system}.apps
astal.packages.${system}.battery
astal.packages.${system}.bluetooth
astal.packages.${system}.mpris
astal.packages.${system}.network
astal.packages.${system}.notifd
astal.packages.${system}.powerprofiles
astal.packages.${system}.wireplumber
pkgs.fish
pkgs.typescript
pkgs.libnotify
pkgs.dart-sass
pkgs.fd
pkgs.btop
pkgs.bluez
pkgs.libgtop
pkgs.gobject-introspection
pkgs.glib
pkgs.bluez-tools
pkgs.grimblast
pkgs.gpu-screen-recorder
pkgs.brightnessctl
pkgs.gnome-bluetooth
pkgs.python3
pkgs.matugen
pkgs.python312Packages.gpustat
pkgs.hyprpicker
pkgs.hyprsunset
pkgs.hypridle
pkgs.wireplumber
pkgs.networkmanager
pkgs.upower
pkgs.gvfs
pkgs.swww
pkgs.pywal
];
};
});
# Define .overlay to expose the package as pkgs.hyprpanel based on the system
overlay = final: prev: {
hyprpanel =
if final ? callPackage
then (final.callPackage ./nix {inherit inputs;}).desktop.script
else inputs.self.packages.${prev.stdenv.system}.default;
hyprpanel = self.packages.${prev.stdenv.system}.default;
};
packages = forEachSystem (
system: let
pkgs = pkgsFor.${system};
in {
default = (pkgs.callPackage ./nix {inherit inputs;}).desktop.script;
}
);
};
}