diff --git a/flake.lock b/flake.lock index 695fe36..62c7bcd 100644 --- a/flake.lock +++ b/flake.lock @@ -8,11 +8,11 @@ ] }, "locked": { - "lastModified": 1736090999, - "narHash": "sha256-B5CJuHqfJrzPa7tObK0H9669/EClSHpa/P7B9EuvElU=", + "lastModified": 1744557573, + "narHash": "sha256-XAyj0iDuI51BytJ1PwN53uLpzTDdznPDQFG4RwihlTQ=", "owner": "aylur", "repo": "ags", - "rev": "5527c3c07d92c11e04e7fd99d58429493dba7e3c", + "rev": "3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6", "type": "github" }, "original": { @@ -29,11 +29,31 @@ ] }, "locked": { - "lastModified": 1735172721, - "narHash": "sha256-rtEAwGsHSppnkR3Qg3eRJ6Xh/F84IY9CrBBLzYabalY=", + "lastModified": 1742571008, + "narHash": "sha256-5WgfJAeBpxiKbTR/gJvxrGYfqQRge5aUDcGKmU1YZ1Q=", "owner": "aylur", "repo": "astal", - "rev": "6c84b64efc736e039a8a10774a4a1bf772c37aa2", + "rev": "dc0e5d37abe9424c53dcbd2506a4886ffee6296e", + "type": "github" + }, + "original": { + "owner": "aylur", + "repo": "astal", + "type": "github" + } + }, + "astal_2": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1748416910, + "narHash": "sha256-FEQcs58HL8Fe4i7XlqVEUwthjxwvRvgX15gTTfW17sU=", + "owner": "aylur", + "repo": "astal", + "rev": "c1bd89a47c81c66ab5fc6872db5a916c0433fb89", "type": "github" }, "original": { @@ -44,11 +64,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1736344531, - "narHash": "sha256-8YVQ9ZbSfuUk2bUf2KRj60NRraLPKPS0Q4QFTbc+c2c=", + "lastModified": 1748370509, + "narHash": "sha256-QlL8slIgc16W5UaI3w7xHQEP+Qmv/6vSNTpoZrrSlbk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "bffc22eb12172e6db3c5dde9e3e5628f8e3e7912", + "rev": "4faa5f5321320e49a78ae7848582f684d64783e9", "type": "github" }, "original": { @@ -61,6 +81,7 @@ "root": { "inputs": { "ags": "ags", + "astal": "astal_2", "nixpkgs": "nixpkgs" } } diff --git a/flake.nix b/flake.nix index 3f359e6..0446673 100644 --- a/flake.nix +++ b/flake.nix @@ -1,7 +1,11 @@ { inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; - + + astal = { + url = "github:aylur/astal"; + inputs.nixpkgs.follows = "nixpkgs"; + }; ags = { url = "github:aylur/ags"; inputs.nixpkgs.follows = "nixpkgs"; @@ -12,6 +16,7 @@ { self, nixpkgs, + astal, ags, }: let @@ -20,8 +25,93 @@ "aarch64-linux" ]; forEachSystem = nixpkgs.lib.genAttrs systems; + packages = + system: pkgs: + (with ags.packages.${system}; [ + tray + hyprland + apps + battery + bluetooth + mpris + cava + network + notifd + powerprofiles + wireplumber + ]) + ++ (with pkgs; [ + fish + typescript + libnotify + dart-sass + fd + btop + bluez + libgtop + gobject-introspection + glib + bluez-tools + grimblast + brightnessctl + gnome-bluetooth + gtksourceview3 + libsoup_3 + (python3.withPackages ( + ps: with ps; [ + gpustat + dbus-python + pygobject3 + ] + )) + matugen + hyprpicker + hyprsunset + hypridle + wireplumber + networkmanager + wf-recorder + upower + gvfs + swww + pywal + ]); + in { + devShells = forEachSystem ( + system: + let + pkgs = nixpkgs.legacyPackages.${system}; + in + { + default = pkgs.mkShell { + buildInputs = + with pkgs; + packages system pkgs + ++ [ + ags.packages.${system}.ags + astal.packages.${system}.astal3 + astal.packages.${system}.io + gjs + meson + pkg-config + ninja + ]; + shellHook = '' + if [ "''${PWD##*/}" = "HyprPanel" ]; then + echo "do you want to initialise stuff in order for tsserver to work? (y/anything_else)" + read consent + if [ "$consent" = "y" ]; then + ags types -d .; mkdir node_modules; ln -s ${astal.packages.${system}.gjs}/share/astal/gjs ./node_modules/astal + fi + else + echo "you're not in HyprPanel root dir, no initialisation for you" + fi + ''; + }; + } + ); packages = forEachSystem ( system: let @@ -34,56 +124,8 @@ name = "hyprpanel"; # name of executable entry = "app.ts"; - extraPackages = - (with ags.packages.${system}; [ - tray - hyprland - apps - battery - bluetooth - mpris - cava - network - notifd - powerprofiles - wireplumber - ]) - ++ (with pkgs; [ - fish - typescript - libnotify - dart-sass - fd - btop - bluez - libgtop - gobject-introspection - glib - bluez-tools - grimblast - brightnessctl - gnome-bluetooth - gtksourceview3 - libsoup_3 - (python3.withPackages ( - ps: with ps; [ - gpustat - dbus-python - pygobject3 - ] - )) - matugen - hyprpicker - hyprsunset - hypridle - wireplumber - networkmanager - wf-recorder - upower - gvfs - swww - pywal - ]); + extraPackages = packages system pkgs; + }; # Make a wrapper package to avoid overlay wrapper = pkgs.writeShellScriptBin "hyprpanel" ''