mirror of
https://github.com/tuxdotrs/tpanel.git
synced 2025-10-10 12:51:54 +05:30
98 lines
2.4 KiB
Nix
98 lines
2.4 KiB
Nix
{
|
|
description = "tux's widgets for wayland";
|
|
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";
|
|
};
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
astal,
|
|
ags,
|
|
}: let
|
|
system = "x86_64-linux";
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
in {
|
|
packages.${system} = {
|
|
default = let
|
|
tpanel = ags.lib.bundle {
|
|
inherit pkgs;
|
|
src = ./.;
|
|
name = "tpanel";
|
|
entry = "app.ts";
|
|
gtk4 = true;
|
|
|
|
extraPackages = with ags.packages.${system}; [
|
|
hyprland
|
|
apps
|
|
battery
|
|
tray
|
|
network
|
|
];
|
|
};
|
|
in
|
|
pkgs.runCommand "tpanel" {
|
|
nativeBuildInputs = [pkgs.makeWrapper];
|
|
} ''
|
|
mkdir -p $out/bin
|
|
|
|
# Copy the bundled app
|
|
cp -r ${tpanel}/* $out/
|
|
|
|
mv $out/bin/tpanel $out/bin/.tpanel-unwrapped
|
|
|
|
makeWrapper $out/bin/.tpanel-unwrapped $out/bin/tpanel \
|
|
--run 'ICONS_DIR="$HOME/.config/tpanel/assets/icons"
|
|
|
|
# Check if icons directory needs to be set up
|
|
if [ ! -d "$ICONS_DIR" ]; then
|
|
# Create necessary directories
|
|
mkdir -p "$ICONS_DIR"
|
|
|
|
# Copy icon files if source exists and destination is empty
|
|
if [ -d "'"$out"'/share/assets/icons" ]; then
|
|
cp -r "'"$out"'/share/assets/icons/"* "$ICONS_DIR/"
|
|
echo "Installed tpanel icons to $ICONS_DIR"
|
|
fi
|
|
fi'
|
|
|
|
'';
|
|
|
|
astal = astal.packages.${system};
|
|
};
|
|
|
|
apps.default = {
|
|
type = "app";
|
|
program = "${self.packages.${system}.default}/bin/tpanel";
|
|
};
|
|
|
|
devShells.${system} = {
|
|
default = pkgs.mkShell {
|
|
nativeBuildInputs = [
|
|
astal.packages.${system}.default
|
|
];
|
|
buildInputs = [
|
|
# includes astal3 astal4 astal-io by default
|
|
(ags.packages.${system}.default.override {
|
|
extraPackages = with ags.packages.${system}; [
|
|
hyprland
|
|
apps
|
|
battery
|
|
tray
|
|
network
|
|
];
|
|
})
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|