An open API service indexing awesome lists of open source software.

https://github.com/rubiin/hydepanel

modular panel written on fabric
https://github.com/rubiin/hydepanel

arch-linux archlinux fabric fabric-config fabric-shell gtk hyprland panel python python3 waybar wayland

Last synced: about 1 month ago
JSON representation

modular panel written on fabric

Awesome Lists containing this project

README

        



HyDePanel



GitHub
PRs Welcome
GitHub commit activity
GitHub closed issues
discord

A semi-customizable bar written using the [Fabric Widget System](https://github.com/Fabric-Development/fabric).
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

- [JetBrains Nerd Font](https://www.nerdfonts.com)
- [python 3+](https://www.python.org/downloads/)

---

> [!NOTE]
> You need a functioning Hyprland installation.

## **Installation**

### Required

Most of these are already installed on existing working machines

```sh
## 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

```sh

## 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:

```sh
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):

```sh
./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:

```sh
./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:

```sh
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:

```sh
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:

```sh
./init.sh -start
```

## **Usage**

Add this to your `.config/hyprland.conf`

```sh
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](https://github.com/rubiin/HyDePanel/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`

```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](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](https://github.com/Alexays/Waybar)

- **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](https://github.com/Jas-SinghFSU/HyprPanel)

## Special Thanks

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

- [darsh](https://github.com/its-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](https://github.com/muhchaudhary): 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](https://github.com/Axenide): For your fresh ideas and design references. Your code improvements and insights made a significant impact
- [sankalp](https://github.com/S4NKALP): 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](https://allcontributors.org/docs/en/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](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!