Chore: Remove hard dependency on overlays (#955)
* Remove hard dependency on overlays * Update documentation
This commit is contained in:
46
README.md
46
README.md
@@ -155,28 +155,40 @@ If you install the fonts after installing HyperPanel, you will need to restart H
|
|||||||
### NixOS & Home-Manager
|
### NixOS & Home-Manager
|
||||||
|
|
||||||
Alternatively, if you're using NixOS and/or Home-Manager, you can setup AGS using the provided Nix Flake. First, add the repository to your Flake's inputs, and enable the overlay.
|
Alternatively, if you're using NixOS and/or Home-Manager, you can setup AGS using the provided Nix Flake. First, add the repository to your Flake's inputs, and enable the overlay.
|
||||||
|
You can now also just use wrapper as the package directly and ignore this section almost entirely (expect for adding inputs), it's recommended to avoid overlays.
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
# flake.nix
|
# flake.nix
|
||||||
|
|
||||||
{
|
{
|
||||||
inputs.hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
|
inputs = {
|
||||||
# ...
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
hyprpanel = {
|
||||||
|
url = "github:Jas-SinghFSU/HyprPanel";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, ... }@inputs:
|
outputs =
|
||||||
let
|
{ self, nixpkgs, ... }@inputs:
|
||||||
# ...
|
let
|
||||||
system = "x86_64-linux"; # change to whatever your system should be.
|
overlays = [
|
||||||
pkgs = import nixpkgs {
|
|
||||||
inherit system;
|
|
||||||
# ...
|
|
||||||
overlays = [
|
|
||||||
inputs.hyprpanel.overlay
|
inputs.hyprpanel.overlay
|
||||||
];
|
];
|
||||||
};
|
in
|
||||||
in {
|
{
|
||||||
# ...
|
nixosConfigurations = {
|
||||||
}
|
nixos = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = {
|
||||||
|
inherit inputs;
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
./configuration.nix
|
||||||
|
{ nixpkgs.overlays = [ overlays ]; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -188,6 +200,7 @@ Once you've set up the overlay, you can reference HyprPanel with `pkgs.hyprpanel
|
|||||||
# install it as a system package
|
# install it as a system package
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# ...
|
# ...
|
||||||
|
inputs.hyprpanel.packages.${pkgs.system}.wrapper # this one if you want to avoid overlays/didn't enable them
|
||||||
hyprpanel
|
hyprpanel
|
||||||
# ...
|
# ...
|
||||||
];
|
];
|
||||||
@@ -195,6 +208,7 @@ environment.systemPackages = with pkgs; [
|
|||||||
# or install it as a user package
|
# or install it as a user package
|
||||||
users.users.<username>.packages = with pkgs; [
|
users.users.<username>.packages = with pkgs; [
|
||||||
# ...
|
# ...
|
||||||
|
inputs.hyprpanel.packages.${pkgs.system}.wrapper # this one if you want to avoid overlays/didn't enable them
|
||||||
hyprpanel
|
hyprpanel
|
||||||
# ...
|
# ...
|
||||||
];
|
];
|
||||||
@@ -205,6 +219,7 @@ users.users.<username>.packages = with pkgs; [
|
|||||||
# install it as a user package with home-manager
|
# install it as a user package with home-manager
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# ...
|
# ...
|
||||||
|
inputs.hyprpanel.packages.${pkgs.system}.wrapper # this one if you want to avoid overlays/didn't enable them
|
||||||
hyprpanel
|
hyprpanel
|
||||||
# ...
|
# ...
|
||||||
];
|
];
|
||||||
@@ -212,6 +227,7 @@ home.packages = with pkgs; [
|
|||||||
# or reference it directly in your Hyprland configuration
|
# or reference it directly in your Hyprland configuration
|
||||||
wayland.windowManager.hyprland.settings.exec-once = [
|
wayland.windowManager.hyprland.settings.exec-once = [
|
||||||
"${pkgs.hyprpanel}/bin/hyprpanel"
|
"${pkgs.hyprpanel}/bin/hyprpanel"
|
||||||
|
"${inputs.hyprpanel.packages.${pkgs.system}.wrapper}/bin/hyprpanel" # this one if you want to avoid overlays/didn't enable them
|
||||||
];
|
];
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
171
flake.nix
171
flake.nix
@@ -8,84 +8,103 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs =
|
||||||
self,
|
{
|
||||||
nixpkgs,
|
self,
|
||||||
ags,
|
nixpkgs,
|
||||||
}: let
|
ags,
|
||||||
systems = ["x86_64-linux" "aarch64-linux"];
|
}:
|
||||||
forEachSystem = nixpkgs.lib.genAttrs systems;
|
let
|
||||||
in {
|
systems = [
|
||||||
packages = forEachSystem (system: let
|
"x86_64-linux"
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
"aarch64-linux"
|
||||||
in {
|
];
|
||||||
default = ags.lib.bundle {
|
forEachSystem = nixpkgs.lib.genAttrs systems;
|
||||||
inherit pkgs;
|
in
|
||||||
src = ./.;
|
{
|
||||||
name = "hyprpanel"; # name of executable
|
packages = forEachSystem (
|
||||||
entry = "app.ts";
|
system:
|
||||||
|
let
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
default = ags.lib.bundle {
|
||||||
|
inherit pkgs;
|
||||||
|
src = ./.;
|
||||||
|
name = "hyprpanel"; # name of executable
|
||||||
|
entry = "app.ts";
|
||||||
|
|
||||||
extraPackages =
|
extraPackages =
|
||||||
(with ags.packages.${system}; [
|
(with ags.packages.${system}; [
|
||||||
tray
|
tray
|
||||||
hyprland
|
hyprland
|
||||||
apps
|
apps
|
||||||
battery
|
battery
|
||||||
bluetooth
|
bluetooth
|
||||||
mpris
|
mpris
|
||||||
cava
|
cava
|
||||||
network
|
network
|
||||||
notifd
|
notifd
|
||||||
powerprofiles
|
powerprofiles
|
||||||
wireplumber
|
wireplumber
|
||||||
])
|
])
|
||||||
++ (with pkgs; [
|
++ (with pkgs; [
|
||||||
fish
|
fish
|
||||||
typescript
|
typescript
|
||||||
libnotify
|
libnotify
|
||||||
dart-sass
|
dart-sass
|
||||||
fd
|
fd
|
||||||
btop
|
btop
|
||||||
bluez
|
bluez
|
||||||
libgtop
|
libgtop
|
||||||
gobject-introspection
|
gobject-introspection
|
||||||
glib
|
glib
|
||||||
bluez-tools
|
bluez-tools
|
||||||
grimblast
|
grimblast
|
||||||
brightnessctl
|
brightnessctl
|
||||||
gnome-bluetooth
|
gnome-bluetooth
|
||||||
(python3.withPackages (ps:
|
(python3.withPackages (
|
||||||
with ps; [
|
ps: with ps; [
|
||||||
gpustat
|
gpustat
|
||||||
dbus-python
|
dbus-python
|
||||||
pygobject3
|
pygobject3
|
||||||
]))
|
]
|
||||||
matugen
|
))
|
||||||
hyprpicker
|
matugen
|
||||||
hyprsunset
|
hyprpicker
|
||||||
hypridle
|
hyprsunset
|
||||||
wireplumber
|
hypridle
|
||||||
networkmanager
|
wireplumber
|
||||||
wf-recorder
|
networkmanager
|
||||||
upower
|
wf-recorder
|
||||||
gvfs
|
upower
|
||||||
swww
|
gvfs
|
||||||
pywal
|
swww
|
||||||
]);
|
pywal
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
# Make a wrapper package to avoid overlay
|
||||||
|
wrapper = pkgs.writeShellScriptBin "hyprpanel" ''
|
||||||
|
if [ "$#" -eq 0 ]; then
|
||||||
|
exec ${self.packages.${pkgs.stdenv.system}.default}/bin/hyprpanel
|
||||||
|
else
|
||||||
|
exec ${ags.packages.${pkgs.stdenv.system}.io}/bin/astal -i hyprpanel "$*"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
# Define .overlay to expose the package as pkgs.hyprpanel based on the system
|
||||||
|
overlay = final: prev: {
|
||||||
|
hyprpanel = prev.writeShellScriptBin "hyprpanel" ''
|
||||||
|
if [ "$#" -eq 0 ]; then
|
||||||
|
exec ${self.packages.${final.stdenv.system}.default}/bin/hyprpanel
|
||||||
|
else
|
||||||
|
exec ${ags.packages.${final.stdenv.system}.io}/bin/astal -i hyprpanel "$*"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
});
|
|
||||||
|
|
||||||
# Define .overlay to expose the package as pkgs.hyprpanel based on the system
|
homeManagerModules.hyprpanel = import ./nix/module.nix self;
|
||||||
overlay = final: prev: {
|
|
||||||
hyprpanel = prev.writeShellScriptBin "hyprpanel" ''
|
|
||||||
if [ "$#" -eq 0 ]; then
|
|
||||||
exec ${self.packages.${final.stdenv.system}.default}/bin/hyprpanel
|
|
||||||
else
|
|
||||||
exec ${ags.packages.${final.stdenv.system}.io}/bin/astal -i hyprpanel "$*"
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
homeManagerModules.hyprpanel = import ./nix/module.nix self;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,18 +22,7 @@ let
|
|||||||
if pkgs ? hyprpanel then
|
if pkgs ? hyprpanel then
|
||||||
pkgs.hyprpanel
|
pkgs.hyprpanel
|
||||||
else
|
else
|
||||||
abort ''
|
self.packages.${pkgs.stdenv.system}.wrapper;
|
||||||
|
|
||||||
********************************************************************************
|
|
||||||
* HyprPanel *
|
|
||||||
*------------------------------------------------------------------------------*
|
|
||||||
* You didn't add the overlay! *
|
|
||||||
* *
|
|
||||||
* Either set 'overlay.enable = true' or manually add it to 'nixpkgs.overlays'. *
|
|
||||||
* If you use the 'nixosModule' for Home Manager and have 'useGlobalPkgs' set, *
|
|
||||||
* you will need to add the overlay yourself. *
|
|
||||||
********************************************************************************
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Shorthand lambda for self-documenting options under settings
|
# Shorthand lambda for self-documenting options under settings
|
||||||
mkStrOption =
|
mkStrOption =
|
||||||
|
|||||||
Reference in New Issue
Block a user