A sleek, Dynamic Island-style media player widget for Wayland compositors.
- 🎵 Real-time Audio Visualizer - Animated waveform bars that react to your music
- 🎨 Minimal Design - Clean, floating widget that stays out of your way
- 🖱️ Hover to Expand - See full track info, album art, and controls on hover
- ⏯️ Media Controls - Play/pause, skip, and previous track buttons
- 📊 Progress Bar - Visual playback progress indicator
- 🔌 MPRIS Support - Works with Spotify, Firefox, VLC, and any MPRIS-compatible player
┌─────────────────────────────────────┐
│ 🎵 Song Title ||||||| │ ← Collapsed (normal)
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ ┌──────┐ │
│ │ Art │ Song Title │ ← Expanded (on hover)
│ │ │ Artist Name ||||||| │
│ └──────┘ │
│ ◄◄ ▶ ►► ───●──────── │
└─────────────────────────────────────┘
Download the latest package from Releases:
Debian/Ubuntu:
sudo dpkg -i novic_*_amd64.debFedora/RHEL:
sudo dnf install novic-*.rpmDebian/Ubuntu:
sudo apt install cmake g++ pkg-config libgtkmm-3.0-dev libpulse-dev
# gtk-layer-shell may need to be built from sourceFedora:
sudo dnf install cmake gcc-c++ pkg-config gtkmm30-devel pulseaudio-libs-devel gtk-layer-shell-develArch Linux:
sudo pacman -S cmake gtkmm3 libpulse gtk-layer-shellgit clone https://github.com/FabianTrafada/novic.git
cd novic
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)sudo make installOr run directly:
./novicDEB Package:
./scripts/build-deb.sh 0.1.0
sudo dpkg -i novic_0.1.0_amd64.debRPM Package:
./scripts/build-rpm.sh 0.1.0
sudo dnf install novic-0.1.0-1.*.rpmSimply run:
novicThe widget will appear at the top of your screen. It automatically detects media players via MPRIS.
Any MPRIS-compatible media player, including:
- Spotify
- Firefox / Chrome (web media)
- VLC
- Rhythmbox
- Clementine
- MPD (with mpDris2)
- And many more...
- Wayland compositor with layer-shell support (Sway, Hyprland, etc.)
- PulseAudio or PipeWire (with PulseAudio compatibility)
- GTK 3 and gtkmm 3.0
- gtk-layer-shell
Currently, Novic uses sensible defaults. Configuration file support is planned for future releases.
Contributions are welcome! Feel free to:
- Report bugs
- Suggest features
- Submit pull requests
MIT License - see LICENSE for details.
- Inspired by Apple's Dynamic Island
- Built with GTK and gtkmm
- Layer shell support via gtk-layer-shell