explaingit

alexays/waybar

11,272C++Audience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

Waybar is a highly configurable status bar for Linux desktops running Wayland, showing time, battery, network, audio, and workspace info in a bar at the top or bottom of your screen.

Mindmap

mindmap
  root((Waybar))
    What it does
      Status bar
      Wayland desktops
      Configurable modules
    Modules
      Clock and battery
      Network and audio
      Workspaces and MPD
    Supported desktops
      Sway Hyprland
      River Niri DWL
    Setup
      Package manager
      Config and CSS files
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add a status bar to a Sway or Hyprland desktop showing battery level, clock, volume, and active workspace name.

USE CASE 2

Style the bar using a CSS file to match your desktop color scheme and font preferences.

USE CASE 3

Display window titles, Bluetooth status, CPU load, and disk usage in a persistent bar on your Wayland desktop.

Tech stack

C++MesonNinjaCSS

Getting it running

Difficulty · moderate Time to first run · 30min

Requires a Wayland compositor like Sway or Hyprland, appearance and modules are configured through separate config and CSS files documented on the wiki.

Use and modify freely for any purpose, including commercial use, as long as you keep the copyright notice.

In plain English

Waybar is a status bar application for Linux desktops that use the Wayland display protocol. A status bar sits at the top or bottom of your screen and shows information like the current time, battery level, network connection, volume, and which workspace or window is active. Waybar is designed to be highly configurable, so users can choose exactly which modules to display and how they should look. The bar integrates with several popular Wayland-based desktop environments and window managers, including Sway, Hyprland, River, Niri, and DWL. Each of these has its own way of managing windows and workspaces, and Waybar has specific support for each, showing relevant information like active workspace names, focused window titles, and keyboard layout. It also supports a system tray for application icons, Bluetooth status, Pulseaudio and Wireplumber audio controls, disk and memory usage, CPU load, temperature, and a music player daemon (MPD) module, among others. Installation is available through most major Linux distribution package managers, so most users will not need to build from source. For those who do want to build it, the README lists all required libraries and provides exact package manager commands for Ubuntu and Arch Linux. The build process uses Meson and Ninja, two standard build tools in the C++ ecosystem. Configuration and visual styling are handled through separate config and CSS files, with detailed documentation available on the project's wiki. The README does not reproduce those details directly. Contributions follow Google's C++ style guidelines. The project is MIT licensed, meaning it can be used and modified freely. The README warns that there is no official Waybar website, and releases are published only through the GitHub page.

Copy-paste prompts

Prompt 1
I'm running Sway on Linux. Walk me through installing Waybar and writing a basic config file with a clock, battery, and network module.
Prompt 2
How do I style Waybar with a custom CSS file to change background color, font, and module padding?
Prompt 3
I want to add an MPD music player module to Waybar. What goes in the config and how does it connect to MPD?
Prompt 4
My Waybar workspace module isn't showing correct names in Hyprland. How do I configure the hyprland/workspaces module?
Open on GitHub → Explain another repo

← alexays on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.