Skip to content

Instantly share code, notes, and snippets.

@meerzulee
Last active December 6, 2025 16:41
Show Gist options
  • Select an option

  • Save meerzulee/376b28119040c9e59d914d2850c66960 to your computer and use it in GitHub Desktop.

Select an option

Save meerzulee/376b28119040c9e59d914d2850c66960 to your computer and use it in GitHub Desktop.
LibrePods Linux - Build, Install & Waybar Integration
{
"modules-right": ["custom/librepods"],
"custom/librepods": {
"exec": "librepods --waybar",
"return-type": "json",
"interval": 5,
"on-click": "librepods",
"on-click-right": "librepods --set-noise-mode nc",
"on-click-middle": "librepods --set-noise-mode transparency"
}
}
#custom-librepods {
padding: 0 10px;
color: #ffffff;
}
#custom-librepods.connected {
color: #a6e3a1;
}
#custom-librepods.disconnected {
color: #6c7086;
}
@meerzulee
Copy link
Author

LibrePods Linux - Build, Install & Waybar Integration

Prerequisites

Arch Linux / EndeavourOS

sudo pacman -S qt6-base qt6-declarative qt6-connectivity libpulse openssl cmake base-devel

Debian / Ubuntu

sudo apt-get install qt6-base-dev qt6-declarative-dev qt6-connectivity-dev \
    qml6-module-qtquick-controls qml6-module-qtqml-workerscript \
    qml6-module-qtquick-templates qml6-module-qtquick-window \
    qml6-module-qtquick-layouts libssl-dev libpulse-dev cmake build-essential

Fedora

sudo dnf install qt6-qtbase-devel qt6-qtconnectivity-devel \
    qt6-qtdeclarative-devel openssl-devel pulseaudio-libs-devel cmake gcc-c++

Build

git clone https://github.com/meerzulee/librepods.git
cd librepods/linux
mkdir build && cd build
cmake ..
make -j$(nproc)

Install System-wide

sudo cmake --install build
sudo gtk-update-icon-cache /usr/local/share/icons/hicolor/

This installs:

  • Binary: /usr/local/bin/librepods
  • Desktop file: /usr/local/share/applications/me.kavishdevar.librepods.desktop
  • Icon: /usr/local/share/icons/hicolor/512x512/apps/librepods.png

Uninstall

 sudo rm /usr/local/bin/librepods
 sudo rm /usr/local/share/applications/me.kavishdevar.librepods.desktop
 sudo rm /usr/local/share/icons/hicolor/512x512/apps/librepods.png

CLI Usage

Status

librepods --status # Human-readable
librepods --status --json # JSON format
librepods --waybar # Waybar module format

Noise control

librepods --set-noise-mode off
librepods --set-noise-mode transparency
librepods --set-noise-mode nc # or noise-cancellation, anc
librepods --set-noise-mode adaptive

Conversational awareness

librepods --set-conversational-awareness on
librepods --set-conversational-awareness off

Adaptive level (0-100)

librepods --set-adaptive-level 50

Other

librepods --hide # Start minimized to tray
librepods --debug # Debug output

Note: CLI commands require LibrePods running. Start with librepods --hide &

Waybar Module

Config (~/.config/waybar/config.jsonc)

  {
      "modules-right": ["custom/librepods"],

      "custom/librepods": {
          "exec": "librepods --waybar",
          "return-type": "json",
          "interval": 5,
          "on-click": "librepods",
          "on-click-right": "librepods --set-noise-mode nc",
          "on-click-middle": "librepods --set-noise-mode transparency"
      }
  }

Style (~/.config/waybar/style.css)

  #custom-librepods {
      padding: 0 10px;
      color: #ffffff;
  }

  #custom-librepods.connected {
      color: #a6e3a1;
  }

  #custom-librepods.disconnected {
      color: #6c7086;
  }

Output Format

  {
    "text": "󰥰 85%",
    "tooltip": "AirPods Pro\nLeft: 85% ⚡\nRight: 90%\nCase: 100%\nMode: Noise Cancellation",
    "class": "connected"
  }

Autostart

Add to your compositor's autostart or systemd user service:

  librepods --hide &

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment