This is my personal Waybar config for Omarchy, built on top of the excellent HANCORE theme pack (details here).
This setup assumes the following tools are already available:
- Waybar (with the Hyprland modules enabled) and Hyprland itself.
cava+libcava(used bycava.shfor the audio visualizer).wttrbarfor the weather module output.waybar-module-pacman-updatesfor the pacman update indicator.bc(used bynet_speed.shfor network speed calculations).lvsk-calendarfor the calendar module.playerctlfor media player control (MPRIS module).nvidia-smi(fromnvidia-utils) only if you enable the optionalcustom/gpumodule (NVIDIA only for now).ghostty,btop,wiremix,thunar,powerprofilesctl, and other Omarchy helper commands (omarchy-*,impala) that are referenced for click actions. Replace or remove these bindings if you are not on Omarchy.- JetBrainsMono Nerd Font (Propo variant) and the Omarchy theme assets at
~/.config/omarchy/current/theme/waybar.css, whichstyle.cssimports.
Note: The temperature module is configured for specific hardware paths (/sys/class/hwmon/hwmon3/temp2_input and thermal zone 2). You may need to adjust these paths in config.jsonc to match your system's hardware monitoring setup.
git clone https://github.com/gupta-akshay/omarchy-waybar-config
cd omarchy-waybar-config
./install.shIf you see a permission error, run chmod +x install.sh (or use bash install.sh). The script installs/updates the required AUR packages via yay, backs up your existing ~/.config/waybar directory, and copies the config (config.jsonc, modules/, style.css, cava.sh, net_speed.sh, waybar-gpu.sh) into place.
During installation, you’ll be prompted to select optional modules (you can choose one, many, or none). The installer then generates modules/layout.jsonc with your selections while keeping the core modules always present. If you enable custom/weather, you’ll also be prompted for a weather location (unless provided via --location).
Pass --skip-packages if you have already installed the dependencies or want to handle them yourself, use --waybar-dir to target a non-standard location, and pass --location "Your City" to set the weather location non-interactively.
-
Install the required packages:
yay -S cava libcava wttrbar waybar-module-pacman-updates bc lvsk-calendar
-
Back up your existing Waybar config (if present):
mv ~/.config/waybar ~/.config/waybar.bak
-
Clone this repo somewhere temporary and copy the required files into your Waybar directory:
git clone https://github.com/gupta-akshay/omarchy-waybar-config /tmp/wbr mkdir -p ~/.config/waybar cp -a /tmp/wbr/{config.jsonc,style.css,modules,cava.sh,net_speed.sh,waybar-gpu.sh} ~/.config/waybar/ rm -rf /tmp/wbr
-
Ensure the scripts are executable:
chmod +x ~/.config/waybar/cava.sh chmod +x ~/.config/waybar/net_speed.sh chmod +x ~/.config/waybar/waybar-gpu.sh
-
Adjust the temperature module hardware paths if needed (see Requirements), and adjust the Omarchy-specific helper commands in the
modules/*.jsoncfiles if you are on a different setup.To enable/disable modules manually, edit
modules/layout.jsonc(core modules should remain present).Then restart Waybar (e.g.
omarchy-restart-waybar).
config.jsonc+modules/*.jsonc– Waybar module definitions, click actions, and custom modules:- Core layout (always enabled):
- Left: Omarchy launcher, Hyprland workspaces, active window
- Center: Clock, pacman updates, Omarchy update checker
- Right: Tray (with expander), network, CPU, audio, battery
- Optional modules (select during install or edit
modules/layout.jsonc):- Left: CAVA audio visualizer (
custom/cava), MPRIS media player (mpris) - Center: Calendar (
custom/calendar), Weather (custom/weather), Network speed (custom/netspeed) - Right: Idle inhibitor, temperature, disk, memory, GPU (
custom/gpu, NVIDIA only for now)
- Left: CAVA audio visualizer (
- Includes Bluetooth module within the tray expander group
- Core layout (always enabled):
style.css– Styling that imports the Omarchy theme palette and applies the HANCORE-inspired layout tweaks with hover effects, animations, and color-coded states (critical battery/disk/temperature warnings).cava.sh– Lightweight wrapper that streams unicode bars from CAVA for thecustom/cavamodule and automatically hides the visualizer during 2+ seconds of silence.net_speed.sh– Script that calculates and displays network upload/download speeds in Mbps for thecustom/netspeedmodule, preferring non-tunnel interfaces.waybar-gpu.sh– Script backing the optionalcustom/gpumodule (NVIDIA only for now, requiresnvidia-smi).
Feel free to fork and adapt bindings, fonts, or modules to suit your setup. If you run into missing binaries, double-check the Requirements section or swap the commands for equivalents on your system.
