{"id":13420056,"url":"https://github.com/reupen/columns_ui","last_synced_at":"2026-01-20T16:01:22.978Z","repository":{"id":26374992,"uuid":"29824265","full_name":"reupen/columns_ui","owner":"reupen","description":"Alternative UI for the foobar2000 audio player","archived":false,"fork":false,"pushed_at":"2026-01-19T17:26:12.000Z","size":11430,"stargazers_count":592,"open_issues_count":87,"forks_count":34,"subscribers_count":19,"default_branch":"main","last_synced_at":"2026-01-19T21:32:29.667Z","etag":null,"topics":["columns-ui-panel","foobar2000"],"latest_commit_sha":null,"homepage":"https://yuo.be/columns-ui","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reupen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":"COPYRIGHT","agents":null,"dco":null,"cla":null},"funding":{"github":["reupen"]}},"created_at":"2015-01-25T18:05:12.000Z","updated_at":"2026-01-19T17:26:16.000Z","dependencies_parsed_at":"2026-01-19T17:02:11.045Z","dependency_job_id":null,"html_url":"https://github.com/reupen/columns_ui","commit_stats":null,"previous_names":[],"tags_count":85,"template":false,"template_full_name":null,"purl":"pkg:github/reupen/columns_ui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reupen%2Fcolumns_ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reupen%2Fcolumns_ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reupen%2Fcolumns_ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reupen%2Fcolumns_ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reupen","download_url":"https://codeload.github.com/reupen/columns_ui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reupen%2Fcolumns_ui/sbom","scorecard":{"id":164384,"data":{"date":"2025-08-04","repo":{"name":"github.com/reupen/columns_ui","commit":"bff497927466a18cdb522003027cb5e8e6b7ca08"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":4.4,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/8 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 18 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: topLevel 'contents' permission set to 'write': .github/workflows/auto-merge.yml:7","Warn: no topLevel permission defined: .github/workflows/build.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: COPYING:0","Info: FSF or OSI recognized license: GNU Lesser General Public License v3.0: COPYING:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v3.0.1 not signed: https://api.github.com/repos/reupen/columns_ui/releases/230306271","Warn: release artifact v3.0.0 not signed: https://api.github.com/repos/reupen/columns_ui/releases/229535635","Warn: release artifact v3.0.0-rc.1 not signed: https://api.github.com/repos/reupen/columns_ui/releases/227605724","Warn: release artifact v3.0.0-beta.5 not signed: https://api.github.com/repos/reupen/columns_ui/releases/223784506","Warn: release artifact v3.0.0-beta.4 not signed: https://api.github.com/repos/reupen/columns_ui/releases/223029650","Warn: release artifact v3.0.1 does not have provenance: https://api.github.com/repos/reupen/columns_ui/releases/230306271","Warn: release artifact v3.0.0 does not have provenance: https://api.github.com/repos/reupen/columns_ui/releases/229535635","Warn: release artifact v3.0.0-rc.1 does not have provenance: https://api.github.com/repos/reupen/columns_ui/releases/227605724","Warn: release artifact v3.0.0-beta.5 does not have provenance: https://api.github.com/repos/reupen/columns_ui/releases/223784506","Warn: release artifact v3.0.0-beta.4 does not have provenance: https://api.github.com/repos/reupen/columns_ui/releases/223029650"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/auto-merge.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/reupen/columns_ui/auto-merge.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/reupen/columns_ui/build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/reupen/columns_ui/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/reupen/columns_ui/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:83: update your workflow using https://app.stepsecurity.io/secureworkflow/reupen/columns_ui/build.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/reupen/columns_ui/build.yml/main?enable=pin","Warn: containerImage not pinned by hash: foo_ui_columns/assets/Dockerfile:1: pin your Docker image by updating docker.io/archlinux:latest to docker.io/archlinux:latest@sha256:c2bbc404662f4ed762eb7afc801965184d768aea81b8341cbc5b1c87170e59c0","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T14:24:52.153Z","repository_id":26374992,"created_at":"2025-08-16T14:24:52.153Z","updated_at":"2025-08-16T14:24:52.153Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28606288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T14:45:23.139Z","status":"ssl_error","status_checked_at":"2026-01-20T14:44:16.929Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["columns-ui-panel","foobar2000"],"created_at":"2024-07-30T22:01:25.380Z","updated_at":"2026-01-20T16:01:22.961Z","avatar_url":"https://github.com/reupen.png","language":"C++","funding_links":["https://github.com/sponsors/reupen"],"categories":["TODO scan for Android support in followings"],"sub_categories":[],"readme":"# Columns UI\n\n![Columns UI screenshot](./columns-ui-dark.png)\n\nColumns UI is an alternative UI for the Windows version of the\n[foobar2000 audio player](https://www.foobar2000.org), with interchangeable\npanels and toolbars.\n\nIts features include:\n\n- a dark mode on Windows 10 and 11\n- a playlist view with grouping, artwork and in-line metadata editing\n- [DirectWrite text rendering](https://en.wikipedia.org/wiki/DirectWrite) in\n  most built-in panels, including colour emoji support\n- colour management for artwork\n- support for SVG icons in the buttons toolbar via\n  [SVG services](https://github.com/reupen/svg-services)\n- item details and properties panels to view detailed track information\n\n## Requirements\n\nTo use Columns UI, you need:\n\n- Windows 7 Service Pack 1 with the Platform Update, or newer\n- foobar2000 1.5 or newer\n\n## Downloads\n\n### Releases\n\nStable and pre-release versions can be downloaded from the\n[Columns UI home page](http://yuo.be/columns-ui).\n\n### Development versions\n\n\u003e [!WARNING]\n\u003e [32-bit development builds are broken.](https://github.com/reupen/columns_ui/issues/1335)\n\nIf you’re logged into GitHub, you can download the latest development version by\nvisiting the\n[list of recent GitHub Actions builds](https://github.com/reupen/columns_ui/actions/workflows/build.yml?query=branch%3Amain),\nclicking on the most recent entry with a green tick, and then scrolling down to\nthe links named ‘Component package (release, win32)’ and ‘Component package\n(release, x64)’ at the bottom.\n\nDevelopment versions may be buggier than formal releases; if you encounter a\nproblem, open an issue.\n\n## Source code licence\n\nThe source code of Columns UI is released under the GNU Lesser General Public\nLicense (LGPL) version 3.\n\n## Development\n\n[![Build status](https://github.com/reupen/columns_ui/actions/workflows/build.yml/badge.svg)](https://github.com/reupen/columns_ui/actions/workflows/build.yml?query=branch%3Amain)\n[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/reupen/columns_ui/main.svg)](https://results.pre-commit.ci/latest/github/reupen/columns_ui/main)\n[![Codacy code quality](https://app.codacy.com/project/badge/Grade/7a892c27551745ea883810ab7493983d)](https://www.codacy.com/gh/reupen/columns_ui/dashboard)\n\nTo clone the repo and dependencies,\n[download and install Git](https://git-scm.com/downloads), and then run:\n\n```powershell\ngit clone --recursive https://github.com/reupen/columns_ui.git\n```\n\nThis repo makes use of Git submodules. If you're not familiar with them,\n[see the guide here](https://git-scm.com/book/en/v2/Git-Tools-Submodules).\n\n### Build instructions\n\n\u003e [!WARNING]\n\u003e [Version 14.44 of the Visual Studio C++ build tools can’t be used for 32-bit builds.](https://github.com/reupen/columns_ui/issues/1335)\n\nTo build Columns UI, you need:\n\n- Visual Studio 2022\n- Windows 11 SDK, version 10.0.26100.0 or newer\n- [vcpkg](https://github.com/Microsoft/vcpkg)\n- Python 3.12 (including the `py` launcher)\n\n#### Installing Visual Studio\n\n[Download Visual Studio 2022](https://www.visualstudio.com/downloads/). During\ninstallation, select the Desktop development with C++ workload and version\n10.0.26100 or newer of the Windows 11 SDK from the right-hand side.\n\n#### Installing vcpkg\n\nYou can install and set up vcpkg by running the following commands (in a\ndirectory of your choice outside the Columns UI source tree):\n\n```powershell\ngit clone https://github.com/Microsoft/vcpkg.git\nvcpkg\\bootstrap-vcpkg.bat\nvcpkg\\vcpkg integrate install\n```\n\nDependencies will then be automatically installed when Columns UI is built.\n\n(You’ll need to occasionally run `git pull` in the vcpkg directory to fetch\nupdated package metatdata.)\n\n#### Building using the Visual Studio IDE\n\nOpen `vc17/columns_ui-public.sln` in Visual Studio 2022.\n\nSelect the Release configuration and a platform (Win32 or x64), and build the\nsolution.\n\nIf the build is successful, `foo_ui_columns.\u003carchitecture\u003e.fb2k-component` will\nbe output in `vc17\\release-\u003cplatform\u003e-v143`.\n\n#### Building using MSBuild on the command line\n\nYou can use MSBuild if you prefer. To build a 32-bit component, start a\nDeveloper Command Prompt for VS 2022 (from the start menu), and run:\n\n```powershell\nmsbuild /m \"/p:Platform=Win32;Configuration=Release\" vc17\\columns_ui-public.sln\n```\n\nIf the build is successful, `foo_ui_columns.x86.fb2k-component` will be output\nin `vc17\\release-win32-v143`.\n\nFor a clean build, run:\n\n```powershell\nmsbuild /m \"/p:Platform=Win32;Configuration=Release\" \"/t:Rebuild\" vc17\\columns_ui-public.sln\n```\n\n##### Using the Clang compiler (experimental)\n\n\u003cdetails\u003e\n\n\u003csummary\u003eInstructions for building with Clang\u003c/summary\u003e\n\nColumns UI can be also compiled using the version of Clang distributed with\nVisual Studio.\n\n(Note that Clang is not installed by default – in the Visual Studio 2022\ninstaller, you will need to select the Clang compiler and the Clang build tools\ncomponents.)\n\nWith these installed, open a Developer Command Prompt for VS 2022 from the start\nmenu, switch to the Columns UI source directory and run:\n\n```powershell\nmsbuild /m \"/p:PlatformToolset=ClangCL;LinkToolExe=link.exe;VcpkgAutoLink=true;Platform=Win32;Configuration=Release\" vc17\\columns_ui-public.sln\n```\n\n(Note: Currently `lld-link.exe` can't be used due to\n[missing wildcard support](https://github.com/llvm/llvm-project/issues/38333).)\n\n\u003c/details\u003e\n\n#### Building a release package\n\nA universal release package (containing x86 and x64 build) can be created by\nrunning:\n\n```\npy scripts\\build-release-package.py\n```\n\nIf successful, a component package will be created in the `component-packages`\ndirectory.\n\n(A Visual Studio Developer Command Prompt is not required to run the script.)\n\n### Documentation site\n\nThis repo also includes the source for a\n[documentation site](https://columns-ui.readthedocs.io) in the `docs` directory.\nSee [docs/README.md](./docs/README.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freupen%2Fcolumns_ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freupen%2Fcolumns_ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freupen%2Fcolumns_ui/lists"}