Chore: Remove hard dependency on overlays (#955)
* Remove hard dependency on overlays * Update documentation
This commit is contained in:
38
README.md
38
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 =
|
||||||
|
{ self, nixpkgs, ... }@inputs:
|
||||||
let
|
let
|
||||||
# ...
|
|
||||||
system = "x86_64-linux"; # change to whatever your system should be.
|
|
||||||
pkgs = import nixpkgs {
|
|
||||||
inherit system;
|
|
||||||
# ...
|
|
||||||
overlays = [
|
overlays = [
|
||||||
inputs.hyprpanel.overlay
|
inputs.hyprpanel.overlay
|
||||||
];
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixosConfigurations = {
|
||||||
|
nixos = nixpkgs.lib.nixosSystem {
|
||||||
|
specialArgs = {
|
||||||
|
inherit inputs;
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
./configuration.nix
|
||||||
|
{ nixpkgs.overlays = [ overlays ]; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
in {
|
|
||||||
# ...
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -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
|
||||||
];
|
];
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|||||||
39
flake.nix
39
flake.nix
@@ -8,17 +8,26 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs =
|
||||||
|
{
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
ags,
|
ags,
|
||||||
}: let
|
}:
|
||||||
systems = ["x86_64-linux" "aarch64-linux"];
|
let
|
||||||
|
systems = [
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-linux"
|
||||||
|
];
|
||||||
forEachSystem = nixpkgs.lib.genAttrs systems;
|
forEachSystem = nixpkgs.lib.genAttrs systems;
|
||||||
in {
|
in
|
||||||
packages = forEachSystem (system: let
|
{
|
||||||
|
packages = forEachSystem (
|
||||||
|
system:
|
||||||
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
default = ags.lib.bundle {
|
default = ags.lib.bundle {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
src = ./.;
|
src = ./.;
|
||||||
@@ -54,12 +63,13 @@
|
|||||||
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
|
matugen
|
||||||
hyprpicker
|
hyprpicker
|
||||||
hyprsunset
|
hyprsunset
|
||||||
@@ -73,7 +83,16 @@
|
|||||||
pywal
|
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
|
# Define .overlay to expose the package as pkgs.hyprpanel based on the system
|
||||||
overlay = final: prev: {
|
overlay = final: prev: {
|
||||||
|
|||||||
@@ -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