Important
🔥 Found this useful? A quick star goes a long way.
waybar-lyric fetches and displays real-time lyrics on your Waybar. It provides
a scrolling lyrics display that syncs with your currently playing music,
enhancing your desktop music experience. Checkout the
Example waybar configuration.
waybar-lyric will work with any player that has xesam:album and
xesam:artist metadata.
Run
playerctl metadata -ato check if your player has those metadata.
I've test these following player:
- Spotify
- Pear-Desktop
- Amarok
- Amberol
- TauonMB
- Firefox (Specific domains)
open.spotify.commusic.youtube.com
- Chromium with
--experimental-chromium-support(Not recommended)!
- Real-time display of the current song's lyrics
- Click to toggle play/pause
- Smart caching system:
- Stores available lyrics locally to reduce API requests
- Remembers songs without lyrics to prevent unnecessary API calls
- Custom waybar tooltip
- Configurable maximum text length
- Detailed logging options
- Profanity filter
- Partial (
badword->b*****d) - Full (
badword->*******)
- Partial (
- Latest stable version
yay -S waybar-lyric- The latest git commit:
yay -S waybar-lyric-git- NixOS:
environment.systemPackages = [
pkgs.waybar-lyric
];- Home-Manager:
home.packages = [
pkgs.waybar-lyric
];- On Non NixOS:
# without flakes:
nix-env -iA nixpkgs.waybar-lyricYou need GNU
makeandinstall
- Build the waybar-lyric
git clone https://github.com/Nadim147c/waybar-lyric.git
cd waybar-lyric
make- Local install
make install PREFIX=$HOME/.local- Global install
sudo make install PREFIX=/usrNote: You have to make sure that
$GOPATH/bin/in your systemPATHbefore running waybar.
go install github.com/Nadim147c/waybar-lyric@latestThe recommended way to configure waybar-lyric is to generate the configuration snippet using the built-in command:
waybar-lyric initThis will output the proper JSON configuration snippet that you can copy
directly into your Waybar config.jsonc file.
Add to your style.css:
#custom-lyrics {
color: #1db954;
margin: 0 5px;
padding: 0 10px;
}
#custom-lyrics.paused {
color: #aaaaaa; /* Set custom color when paused */
}If you encounter issues:
- Check that any of the supported browser is running is running and connected
- Run with verbose logging
waybar-lyric -v --log-file=/tmp/waybar-lyric.log- Verify DBus connectivity with:
dbus-send --print-reply \
--dest=org.mpris.MediaPlayer2.spotify \
/org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get \
string:org.mpris.MediaPlayer2.Player \
string:PlaybackStatusContributions are welcome! Feel free to submit a Pull Request.
This repository is licensed under AGPL-3.0.
- SimpMusic for lyrics API.
- BetterLyrics for lyrics API.
- YouLy+ for lyrics API.
- ArchiveTune and vivi-music for providers implementations.