Skip to content

rubiin/HyDePanel

Repository files navigation

HyDePanel

GitHub PRs Welcome GitHub commit activity GitHub closed issues discord

A semi-customizable bar written using the Fabric Widget System. The panel focuses on providing an all-in-one, fully integrated panel experience, where users don’t have to rely on separate, theme-less third-party tools to manage niche functions like bluetooth, notifications and notification panel,on screen display.

Camera with Flash Screenshots

✨ sᴜᴘᴘᴏʀᴛ ᴛʜᴇ ᴘʀᴏᴊᴇᴄᴛ ✨
Support me on Ko-fi!

Prerequisites


Note

You need a functioning Hyprland installation.

Installation

Required

Most of these are already installed on existing working machines

## network
networkmanager

## Sound
pipewire

## Bluetooth menu utilities
gnome-bluetooth-3.0 # aur
bluez
bluez-utils

## Compiler for sass/scss
dart-sass

## Brightness module for OSD
brightnessctl

To open and execute commands in a terminal ex: updates, cava

kitty

Optional

## To check for updates using the default pacman script in the updates module
pacman-contrib

## To display cava audio visualizer
cava

## To switch between power profiles in the battery module
power-profiles-daemon

## To record screen through recorder module
wf-recorder & slurp

## To activate Hyprland’s native blue light filter
hyprsunset

## To activate Hyprland’s native idle inhibitor
hypridle

## To use media module on quick settings
playerctl
  • Clone this repository:
git clone https://github.com/rubiin/HyDePanel.git ~/.config/hydepanel
cd bar
  • Run the following command to install the required packages for particular os, few of them are already installed if you have a working system:

Installation

You can choose one of two installation methods: Automated Setup or Manual Setup.

Option 1: Automated Setup Using init.sh -install

  1. Run the init.sh -install script to automatically install all the required packages and dependencies (both pacman and AUR packages):
./init.sh -install

This script will:

  • Install all required pacman and AUR packages.
  • Set up the virtual environment and any required configurations.
  1. Start the environment or bar once the installation is complete:
./init.sh -start

This will launch the environment or bar as defined in your project.

Option 2: Manual Setup (Install Dependencies First)

If you prefer to have more control over the installation process, you can install the required dependencies manually and then run the init.sh -start script.

Step 1: Install pacman Packages

Run the following command to install the required system packages:

sudo pacman -S --noconfirm --needed pipewire playerctl dart-sass power-profiles-daemon networkmanager brightnessctl pkgconf wf-recorder kitty python pacman-contrib gtk3 cairo gtk-layer-shell libgirepository gobject-introspection gobject-introspection-runtime python-pip python-gobject python-psutil python-dbus python-cairo python-loguru python-setproctitle libnotify

Step 2: Install AUR Packages

Using yay to install the required AUR packages:

yay -S --needed gray-git python-fabric gnome-bluetooth-3.0 python-rlottie-python python-pytomlpp slurp imagemagick tesseract tesseract-data-eng python-pyjson5 ttf-jetbrains-mono-nerd

If you have something else besides yay, install with the respective aur helper.

Step 3: Run the init.sh -start Script

Once the dependencies are installed, run the following command to start the bar or environment:

./init.sh -start

Usage

Add this to your .config/hyprland.conf

exec = `~/.config/hydepanel/init.sh -start`

Note: modify the path accordingly

Check FAQs for common things you are likely to encounter

Updating

Updating to latest commit is fairly simple, just git pull the latest changes.

Note: make sure to keep the config safe just in case

Check wiki for configuring individual widgets

Available Modules

Item Description
battery Widget that display battery status and usage information.
bluetooth Widget manages Bluetooth connections and settings.
brightness Widget controls the screen brightness level.
cava An audio visualizer widget.
click_counter Widget tracks the number of mouse clicks.
cpu Widget displays CPU usage and performance statistics.
date_time A menu displaying the current date and notifications.
divider (utility) Widget separates sections in a user interface for better organization.
hypr_idle Widget that tracks idle time or status of the system.
hypr_picker Widget that picks color from images.
hypr_sunset Widget that adjusts screen settings based on the time of sunset.
keyboard Widget that manages and manages the keyboard layout or settings.
language Widget allows selection of the system's language or locale settings.
media Widget controls media playback, volume, or other media-related settings.
microphone Widget manages microphone settings and input levels.
network_usage Widget displays the upload/download speeds.
ocr Widget scans text from an image.
power Widget controls power-related settings, including sleep and shutdown.
ram Widget displays information about system RAM usage and performance.
recorder Widget for recording audio or video on the system.
spacer (utility) A simple utility for adding space in UI layouts.
storage Widget that displays storage usage and manages disk partitions or drives.
submap Widget that displays active submap for hyprland.
stop_watch A utility for tracking elapsed time, like a timer or stopwatch.
system_tray Widget that displays system tray icons and manages notifications.
taskbar A bar at the bottom of the screen for quick access to apps and notifications.
updates Widget that manages system updates, patches, and version upgrades.
quick_settings Displays panel for quickly accessing some settings like brightness, sound etc.
volume Widget that controls the system’s audio volume.
weather Widget that displays current weather information or forecasts.
window_title Widget that shows the title of the current window or application.
workspaces Widget that displays virtual desktops or workspaces.

Warning

This is still in early development and will include breaking changes

Frequently Asked Questions (FAQ)

1. Cannot see system tray?

Be sure to kill any bars that you may be running. You can kill other bar with pkill bar-name

2. Cannot see notifications?

Be sure to kill other notifications daemon that you may be running. You can kill other daemons with pkill dunst; pkill mako;

3. Cannot see bar?

Kill the app with pkill hydepanel. Run init.sh -start. This should show some logs. If it shows like ModuleNotFoundError, run pip install -r requirements.txt. If this does not solve the issue, do report a bug with screenshot of the log.

4. No Blur?

Add this to your hyprland.conf

layerrule = blur , fabric
layerrule = ignorezero, fabric
layerrule = blur ,gtk-layer-shell
layerrule = ignorezero ,gtk-layer-shell

Contributing

We welcome all sorts of contributions, no matter how small, to this project! Please see the CONTRIBUTING.md file for guidelines on how to contribute.

Acknowledgements

  • Waybar - A lot of the initial inspiration, and a pretty great bar. Waybar GitHub Repository

  • Hyprpanel - Served as inspiration for some of the panel's features and design choices, with its focus on dynamic and customizable Hyprland panels. Hyprpanel GitHub Repository

Special Thanks

A big thank you to the following people for their amazing help with code, bug fixes, and great ideas:

  • darsh: For creating fabric without which the project wouldn't have existed. Also, your quick feedbacks and problem-solving approach were a game-changer!
  • gummy bear album: For providing code snippets which served as a reference to start stuffs. Your creative ideas really pushed the project forward and made it better!
  • axenide: For your fresh ideas and design references. Your code improvements and insights made a significant impact
  • sankalp: For some bug fixes and recommendations,contributions in optimizing the code and identifying subtle bugs during the development period

⭐ Hit that Star Button!

Like what you see? Think this project is cooler than your morning coffee? ☕✨

Give it a star! It’s like giving a virtual high-five to the code—plus, and who doesn't love high-fives? ✋

Your star helps the project get noticed, and it makes us do a little happy dance. 💃

Just click the shiny "Star" button at the top right (it’s begging for your attention). 🥳

Thanks for making this project a little bit more awesome! 🚀

Star History

Star History Chart

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Robin Seger
Robin Seger

💻 🎨
Adriano Tisera
Adriano Tisera

💻 🐛
Anshul J.
Anshul J.

💻
Sankalp Tharu
Sankalp Tharu

🐛
Keepo
Keepo

💻
Sayeed Mahmood Evrenos
Sayeed Mahmood Evrenos

🐛
xeyossr
xeyossr

📖
DIMFLIX
DIMFLIX

🐛

This project follows the all-contributors specification. Contributions of any kind welcome!