# Columns UI: an alternative interface for foobar2000 that finally has a dark mode

> Columns UI replaces the foobar2000 default interface with a configurable panel and toolbar layout, adds a dark mode on Windows 10 and 11, and ships grouping, inline metadata editing, and HDR artwork support. It is a plugin for a player you must already own, which is the whole point and also the whole constraint.

**reupen/columns_ui** — Alternative UI for the foobar2000 audio player

- Repository: https://github.com/reupen/columns_ui
- Website: https://yuo.be/columns-ui
- Stars: 627 · Forks: 34
- Language: C++
- License: LGPL-3.0
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/reupen-columns-ui

## This is a component for foobar2000, not a player

Columns UI is an alternative UI for the Windows version of the foobar2000 audio player, with interchangeable panels and toolbars. The single most important thing to understand before reading any feature is that this is a component that plugs into an existing player, not a player itself. The installation artefact is a file with the extension `fb2k-component`, and the requirements section states that to use Columns UI you need Windows 10 or newer and foobar2000 1.5 or newer. The audience is therefore a specific and fairly large group: Windows users who have already committed to foobar2000 because of its component ecosystem, and who dislike the default window. The trade is narrow but deep. You keep the player and its format support and its plugins, and you replace the part that everybody agrees is ageing worst.

## The feature list is really a list of complaints about the default UI

Read the features as a list of things the default foobar2000 interface does badly, and the picture sharpens. A dark mode on Windows 10 and 11 is first, and that alone has driven a lot of the interest in alternative UIs. Grouping support in the playlist view comes with variable grouping levels, artwork, and sticky group headings, which is a real feature for a large library where the default flat list stops being usable. Optional smooth scrolling in most built-in panels is the small touch that makes long lists bearable. Inline metadata editing means you can fix a tag where you see it rather than opening a properties dialog. Item details and properties panels exist to view detailed track information. Each of these solves a specific friction rather than adding novelty, which is the right instinct for a replacement interface.

## DirectWrite, SVG icons, and colour management are the rendering story

Three of the features are about drawing rather than layout, and they are what separate this from a simple skin. Most built-in panels use DirectWrite text rendering, with support for colour emojis, variable fonts, and dynamic text styling, which is what makes the dark mode look native rather than inverted. The buttons toolbar supports SVG icons via SVG services, an external project by the same author, so the interface can use vector assets rather than a fixed bitmap set. And there is colour management for artwork, plus HDR image support in the artwork view panel. Taken together, these say the project treats the display pipeline as part of the product. The cost is that it is bound to Windows text and image APIs, which is the same reason the whole thing only runs on Windows at all.

## Cloning the source needs submodules and the foobar2000 SDK

The build section starts with a plain instruction and a dependency warning. To clone the repo and dependencies you need Git installed, and then:

```powershell
git clone --recursive https://github.com/reupen/columns_ui.git
```

The README notes that the repository makes use of Git submodules and links to the Git book guide for anyone unfamiliar with them. The repository layout explains why. There are `foobar2000` and `columns_ui-sdk` directories, which is the SDK the component is written against, and `fbh`, `mmh`, `pfc`, `foo_ui_columns/`, and `ui_helpers/` directories for the component code itself. `svg-services` is checked out as a sibling, and `vc18/` holds the Visual Studio project files. This is a component that compiles against a specific SDK and links into a host application, which is why the build is a full Visual Studio project rather than a script.

## The toolchain is Visual Studio 2026, a recent Windows SDK, and vcpkg

The build requirements are specific and dated. You need Visual Studio 2026, the Windows 11 SDK at version 10.0.26100.0 or newer, vcpkg, and Python 3.12 or newer including the `py` launcher. During the Visual Studio installation you select the Desktop development with C++ workload and version 10.0.26100 or newer of the Windows 11 SDK. vcpkg is set up by running three commands in a directory of your choice outside the Columns UI source tree:

```powershell
git clone https://github.com/Microsoft/vcpkg.git
vcpkg\bootstrap-vcpkg.bat
vcpkg\vcpkg integrate install
```

After that, dependencies are installed automatically when Columns UI is built, though you will need to occasionally run `git pull` in the vcpkg directory to fetch updated package metadata. The `vcpkg.json` file at the repository root is the manifest that drives this. A note on the Python requirement: it is not for the application, it is for the release packaging script, and the README says a Visual Studio Developer Command Prompt is not required to run it.

## Two build routes, MSBuild or the IDE, and a Clang experiment

The README documents building in the Visual Studio IDE by opening `vc18/columns_ui-public.sln`, selecting the Release configuration and a platform of Win32 or x64, and building the solution. On success, `foo_ui_columns.<architecture>.fb2k-component` appears in `vc18\release-<platform>-v145`. The command line route is MSBuild from a Developer Command Prompt for VS 2026:

```powershell
msbuild /m "/p:Platform=Win32;Configuration=Release" vc18\columns_ui-public.sln
```

and a clean rebuild adds the Rebuild target:

```powershell
msbuild /m "/p:Platform=Win32;Configuration=Release" "/t:Rebuild" vc18\columns_ui-public.sln
```

There is also an experimental route using the Clang compiler distributed with Visual Studio, which requires selecting the Clang compiler and Clang build tools components in the installer, and passing `PlatformToolset=ClangCL;LinkToolExe=link.exe;VcpkgAutoLink=true` on the MSBuild command line. The README notes that `lld-link.exe` cannot currently be used because of missing wildcard support, which is the kind of detail that tells you this path is experimental in fact and not only in label.

## Releases, development builds, and the LGPL terms

Stable and pre-release versions are downloaded from the Columns UI home page at yuo.be/columns-ui. Development versions are a different story, and the README is specific about it. If you are logged into GitHub you can download the latest development version from the list of recent GitHub Actions builds, by visiting the most recent entry with a green tick and taking the links ending `.x64.fb2k-component` and `.x86.fb2k-component` at the bottom of the page. Development versions may be buggier than formal releases, and the instruction if you hit a problem is to open an issue. The source code licence is the GNU Lesser General Public License version 3, with `COPYING` and `COPYING.LESSER` in the repository root alongside a `COPYRIGHT` file, and a `CHANGELOG.md` and `CONTRIBUTING.md` for the working process. The release history shows v3.7.0 on 2026-09-22, v3.7.0-beta.2 on 2026-09-05, and v3.7.1 on 2026-10-18, with the last push on 2026-10-20, and one historic fact worth keeping, that version 3.4.1 is the last version compatible with Windows 7, 8 and 8.1.

## Conclusion

Columns UI fits a Windows listener who already runs foobar2000, dislikes the default layout, and wants a dark mode, real grouping, or a panel arrangement they can rearrange themselves. It is the wrong tool if you do not already use foobar2000, since it is a component for that player and nothing else, and it is the wrong tool on Windows 7, 8, or 8.1, where the README states version 3.4.1 is the last compatible build. Before you install it, confirm you have foobar2000 1.5 or newer and Windows 10 or newer, and pick your channel deliberately, since development builds are published as GitHub Actions artifacts and the README warns they may be buggier than formal releases.

## FAQ

### What are the system requirements for Columns UI?

Windows 10 or newer and foobar2000 1.5 or newer. The README also notes that version 3.4.1 is the last version compatible with Windows 7, 8 and 8.1.

### How do I install Columns UI?

Download a stable or pre-release build from the Columns UI home page at yuo.be/columns-ui, or take a development build from the GitHub Actions artifacts if you are logged into GitHub and pick the most recent entry with a green tick, using the `.x64.fb2k-component` and `.x86.fb2k-component` links.

### What do I need to build Columns UI from source?

Visual Studio 2026 with the Desktop development with C++ workload, the Windows 11 SDK version 10.0.26100.0 or newer, vcpkg, and Python 3.12 or newer with the `py` launcher. The repository must be cloned with `--recursive` because it uses Git submodules.

### What licence is the Columns UI source code released under?

The GNU Lesser General Public License version 3, with `COPYING` and `COPYING.LESSER` in the repository root. The project also ships a `CHANGELOG.md` and a `CONTRIBUTING.md`.

### Can Columns UI be built with Clang?

Yes, experimentally, using the Clang compiler distributed with Visual Studio, which requires selecting the Clang compiler and Clang build tools components in the installer. The README notes that `lld-link.exe` cannot be used because of missing wildcard support.

## Sources

- [License: LGPL-3.0](https://github.com/reupen/columns_ui/blob/main/LICENSE)
- [Project website](https://yuo.be/columns-ui)
- [README](https://github.com/reupen/columns_ui/blob/main/README.md)
- [Releases](https://github.com/reupen/columns_ui/releases)
- [reupen/columns_ui on GitHub](https://github.com/reupen/columns_ui)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/reupen-columns-ui
