refactor!: rename somafm-tui to beefy-player

The app is now a general internet-radio player rather than a SomaFM client, so the package, console script, MPRIS identity, mpv namespaces, macOS tap names, XDG directories and docs all move to beefy-player.

Environment variables are now BEEFY_* (the old SOMAFM_* spellings are still honoured) and an existing ~/.config/somafm-tui/config.json is migrated on first run, so favourites and volume survive the rename.

The visible interface is untouched: same layout, same logo, same keys.
This commit is contained in:
beefcarver committed 2026-11-03 16:10:25 -05:00
1 parent 4bed90b489
commit e30ca09627
44 files changed
+329 -192

No files matched your search

+9 -9
View File
@@ -1,13 +1,13 @@
[project]
name = "somafm-tui"
name = "beefy-player"
version = "0.1.0"
description = "A flashy terminal radio for SomaFM with a live spectrum analyser, MPRIS / macOS Now Playing support and song history"
description = "A flashy terminal player for internet radio — live spectrum analyser, MPRIS / macOS Now Playing support, song history and pluggable station catalogues (SomaFM included)"
readme = "README.md"
license = "WTFPL"
license-files = ["LICENSE"]
requires-python = ">=3.10"
authors = [{ name = "somafm-tui contributors" }]
keywords = ["somafm", "radio", "tui", "terminal", "mpris", "audio"]
authors = [{ name = "beefy-player contributors" }]
keywords = ["radio", "internet-radio", "tui", "terminal", "mpris", "audio", "somafm"]
classifiers = [
"Environment :: Console",
"Intended Audience :: End Users/Desktop",
@@ -31,17 +31,17 @@ dependencies = [
]
[project.scripts]
somafm-tui = "somafm_tui.__main__:main"
beefy-player = "beefy_player.__main__:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["somafm_tui"]
packages = ["beefy_player"]
[tool.hatch.build.targets.wheel.force-include]
"somafm_tui/theme.tcss" = "somafm_tui/theme.tcss"
"beefy_player/theme.tcss" = "beefy_player/theme.tcss"
[dependency-groups]
dev = [
@@ -60,8 +60,8 @@ extend-exclude = ["dist", ".venv", "build"]
[tool.ruff.lint]
select = ["E4", "E7", "E9", "F", "I", "UP", "B", "SIM", "RUF"]
ignore = ["RUF001"] # en/em dashes are part of real SomaFM metadata
ignore = ["RUF001"] # en/em dashes are part of real station metadata
# dbus-next needs short signature strings ("s", "a{sv}", "x", …) in
# annotations; they are not Python names.
[tool.ruff.lint.per-file-ignores]
"somafm_tui/mpris.py" = ["F821", "F722", "UP037"]
"beefy_player/mpris.py" = ["F821", "F722", "UP037"]