{ description = "My Awesome Desktop Shell"; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; ags = { url = "github:aylur/ags"; inputs.nixpkgs.follows = "nixpkgs"; inputs.astal.follows = "astal"; }; astal = { url = "github:aylur/astal"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, ags, astal, }: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; in { packages.${system} = { default = ags.lib.bundle { inherit pkgs; src = ./.; name = "my-shell"; entry = "app.ts"; # additional libraries and executables to add to gjs' runtime extraPackages = [ # ags.packages.${system}.battery # pkgs.fzf ]; }; }; devShells.${system} = { default = pkgs.mkShell { buildInputs = with pkgs; [ nodejs_23 gobject-introspection json-glib gjs # includes astal3 astal4 astal-io by default (ags.packages.${system}.default.override { extraPackages = builtins.attrValues { inherit (astal.packages.${system}) hyprland tray network battery ; }; }) wrapGAppsHook gobject-introspection meson pkg-config ninja vala gtk3 gtk4 gtk-layer-shell gtk4-layer-shell json-glib pam gvfs networkmanager gdk-pixbuf wireplumber libdbusmenu-gtk3 wayland blueprint-compiler libadwaita wayland-scanner dart-sass esbuild gjs ]; }; }; }; }