Installation
Arch
yay -S ags-hyprpanel-git
From Source
Dependencies
Required
aylurs-gtk-shell-git
wireplumber
libgtop
bluez
bluez-utils
networkmanager
dart-sass
wl-clipboard
upower
gvfs
gtksourceview3
libsoup3
WARNING
HyprPanel may not run properly without the required dependencies.
Optional
## Used for Tracking GPU Usage in your Dashboard (NVidia only)
python
python-gpustat
## To control screen/keyboard brightness
brightnessctl
## Only if a pywal hook from wallpaper changes applied through settings is desired
pywal
## To check for pacman updates in the default script used in the updates module
pacman-contrib
## To switch between power profiles in the battery module
power-profiles-daemon
## To take snapshots with the default snapshot shortcut in the dashboard
grimblast
## To record screen through the dashboard record shortcut
wf-recorder
## To enable the eyedropper color picker with the default snapshot shortcut in the dashboard
hyprpicker
## To enable hyprland's very own blue light filter
hyprsunset
## To click resource/stat bars in the dashboard and open btop
btop
## To enable matugen based color theming
matugen
## To enable matugen based color theming and setting wallpapers
swww
Arch
To install the dependencies on Arch, you can use the following command:
yay -S --needed aylurs-gtk-shell-git wireplumber libgtop bluez bluez-utils btop networkmanager dart-sass wl-clipboard brightnessctl swww python upower pacman-contrib power-profiles-daemon gvfs gtksourceview3 libsoup3 grimblast-git wf-recorder-git hyprpicker matugen-bin python-gpustat hyprsunset-git
Fedora
Add solopasha/hyprland for most hyprland-related dependencies, and hues-sueh/packages for matugen. Both provide the swww package, so prioritise the former repo:
AGS
First you must install AGSv2. You can find the instructions here.
COPR
sudo dnf copr enable solopasha/hyprland
sudo dnf copr enable heus-sueh/packages
sudo dnf config-manager --save --setopt=copr:copr.fedorainfracloud.org:heus-sueh:packages.priority=200
DNF
sudo dnf install wireplumber upower libgtop2 bluez bluez-tools grimblast hyprpicker btop NetworkManager wl-clipboard swww brightnessctl gnome-bluetooth power-profiles-daemon gvfs nodejs gtksourceview3 libsoup3
npm
npm install -g sass
flatpak
flatpak install flathub --system com.dec05eba.gpu_screen_recorder
Optional Dependencies
pip
sudo dnf install python python3-pip; pip install gpustat pywal
Installing HyprPanel
To install HyprPanel, you can run the following commands:
git clone https://github.com/Jas-SinghFSU/HyprPanel.git
cd HyprPanel
npm i
meson setup build
meson compile -C build
meson install -C build
Installing NerdFonts
HyprPanel uses Nerdfonts to display icons. You can install them using the following command from within the HyprPanel's scripts
directory:
# Installs the JetBrainsMono NerdFonts used for icons
./scripts/install_fonts.sh
If you install the fonts after installing HyprPanel, you will need to restart HyprPanel for the changes to take effect.
Running HyprPanel
Once you have installed HyprPanel, you can run it by running the following command:
hyprpanel
# Or add it to your startup via
exec-once = hyprpanel
NixOS
HyprPanel is available in nixpkgs and has a home-manager module, just enable the programs.hyprpanel.enable
option. Below is an example of some of the options that are available.
{ inputs, ... }:
{
programs.hyprpanel = {
# Configure bar layouts for monitors.
# See 'https://hyprpanel.com/configuration/panel.html'.
# Default: null
layout = {
"bar.layouts" = {
"0" = {
left = [ "dashboard" "workspaces" ];
middle = [ "media" ];
right = [ "volume" "systray" "notifications" ];
};
};
};
# Configure and theme almost all options from the GUI.
# See 'https://hyprpanel.com/configuration/settings.html'.
# Default: <same as gui>
settings = {
bar.launcher.autoDetectIcon = true;
bar.workspaces.show_icons = true;
menus.clock = {
time = {
military = true;
hideSeconds = true;
};
weather.unit = "metric";
};
menus.dashboard.directories.enabled = false;
menus.dashboard.stats.enable_gpu = true;
theme.bar.transparent = true;
theme.font = {
name = "CaskaydiaCove NF";
size = "16px";
};
};
};
}
You can see all options that are unique to the home-manager module in their documentation: https://nix-community.github.io/home-manager/options.xhtml#opt-programs.hyprpanel.enable
⚠️ Caveat: Currently, updating the configuration through the GUI will overwrite the config.json
file by deleting it and creating a new one in its place. This is obviously problematic for Home Manager which can only back up files once to symlink the next generation config. Just make sure to remember what you changed and try to find the corresponding option in the module's settings. One nice tip is to copy config.json
and do a vimdiff
to see exactly what the option path is. The JSON key will be the exact same as the setting attribute, just without the double quotes.
You can start Hyprpanel with the following command:
hyprpanel
WARNING
HyprPanel handles notifications through the Astal notification service. If you're already using a notification daemon such as Dunst, Mako or SwayNC, you may have to stop them to prevent conflicts with HyprPanel. See also https://nix-community.github.io/home-manager/options.xhtml#opt-programs.hyprpanel.dontAssertNotificationDaemons
Latest dev version
HyprPanel in nixpkgs usually updates twice a month, but if you want to use latest development version, you can use flake that we provide.
# flake.nix
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # can be stable
hyprpanel = {
url = "github:Jas-SinghFSU/HyprPanel";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs @ { ... }: let
system = "x86_64-linux"; # change to whatever your system should be
in {
homeConfigurations."username@my-hostname" = home-manager.lib.homeManagerConfiguration {
# you need this line
extraSpecialArgs = { inherit inputs; };
};
};
}
And specify this in a file, where you configure HyprPanel:
{ inputs, pkgs, ...}: {
programs.hyprpanel = {
package = inputs.hyprpanel.packages.${pkgs.system}.default;
};
}