Skip to content

VirInvictus/deadbeef-cui

Repository files navigation

Version: 1.1.0 Language: C/C++ License: MIT


Compatibility Note: This plugin has been developed, tested, and verified to be stable and fully functional specifically on Fedora Linux 43 (Workstation Edition) with Kernel 6.19.12-200.fc43.x86_64 running DeaDBeeF 1.10.2. The project is now considered effectively complete. I will review and provide fixes as needed or reported from the community, but active feature development is finalized.

deadbeef-cui

A faceted library browser plugin for the DeaDBeeF music player on Linux. It brings a Columns UI / Facets style multi-filter layout to DeaDBeeF, optimized for users who navigate large collections via metadata rather than static playlists.

DeaDBeeF CUI Plugin Screenshot

Why this exists

DeaDBeeF is inherently playlist-focused. For users with libraries exceeding 10,000 tracks, navigating via manual playlists or simple searches is insufficient. deadbeef-cui bridges this gap by implementing a dynamic, multi-pane filter layout mirroring foobar2000's Columns UI.

The plugin drives DeaDBeeF's existing playlist view seamlessly. To prevent accidental deletion of your manual playlists, the plugin dynamically creates and targets a dedicated "Library Viewer" playlist. Selecting items in the facets automatically populates this playlist with the corresponding tracks, combining the power of faceted browsing with the player's lightweight core.

Features

Component Description
Dynamic Columns Configure 1 to 5 interactive list views filtering hierarchically.
Custom Formatting Full support for DeaDBeeF title formatting syntax.
Integrated Search Filter facets dynamically via a CTRL-SHIFT-F search bar.
Multi-Selection Aggregate filters across multiple genres/artists via Ctrl/Shift-click.
Native Integration Built as a native C++ GTK plugin using the DB_mediasource_t API.

Development & Build

Requirements

  • GTK+ 3.0 development headers
  • DeaDBeeF development headers (/usr/include/deadbeef)
  • CMake (3.10+) & GCC

Build Pipeline

cmake -S . -B build
cmake --build build

Installation

mkdir -p ~/.local/lib/deadbeef
cp build/cui.so ~/.local/lib/deadbeef/ddb_misc_cui_GTK3.so

Enter Design Mode in DeaDBeeF to add the Facet Browser (CUI) widget to your layout.

Acknowledgments

Inspired by the gold standard of library management: foobar2000 and its legendary Columns UI and Facets components.