Linux
Музичний програвач для Linux, який робили під Linux
Не порт, не обгортка на Electron і не Foobar2000 під Wine. Один нативний бінарник, для якого Linux - перша ціль, а не третя.
Задача, заради якої він написаний
Хороші Linux-програвачі кожен чимось жертвують. У Tauon поверхнева робота з тегами. Strawberry не збирається з панелей. Quod Libet ніхто не стане оформлювати. Зв'язка, яка дає панелі, глибокі теги й історію з темами разом, двадцять років застрягла на Windows.
Ганяти цю зв'язку через Wine працює, поки не перестане. Скін на кшталт CaTRoX тримається на стосі милиць і місцями на Internet Explorer, який малює всередині панелей. Через шар трансляції стає видно, скільки там тримається на удачі, і кожне оновлення ОС - це шанс це з'ясувати.
rox - це та сама форма, написана нативно: близько сорока видів панелей, які ви розставляєте самі, робота з тегами, якій можна довірити справжню колекцію, і теми, що їздять одним файлом.
Встановлення
На Arch він в AUR як rox-player, за співучастю автора. Підійде будь-який хелпер, або клонуйте й запустіть makepkg -si самі.
Репозиторій ще й flake, тож Nix і NixOS отримують його без кроку пакування. Перша команда запускає rox, нічого не встановлюючи, друга кладе його у ваш профіль.
В усіх інших випадках розпакуйте tarball і запустіть ./rox. Один бінарник, без інсталятора, і нічого не лишається, коли ви його видалите.
yay -S rox-player
nix run github:zealsprince/rox
nix profile install github:zealsprince/roxWayland і X11
Обидва, нативно, через gpui. Оформлення вікон - це налаштування робочого простору, а не рішення часу збірки, тож на одній розкладці можна тримати серверне оформлення, а на наступній безрамковий вигляд, не перезапускаючись в іншу збірку.
Ексклюзивний вивід через ALSA
Ексклюзивний режим відкриває звукову карту напряму як hw:CARD=x,DEV=n. Це єдине ім'я ALSA, у шляху якого немає ні dmix, ні plug, ні звукового сервера, і саме тому лише цей шлях відмовить у частоті, яку не тягне, замість того щоб тихо перерахувати її в щось інше.
Обмін чесний: поки rox тримає карту в ексклюзивному режимі, він її тримає. Ніщо інше в системі не грає через цей пристрій, поки ви не зупинитеся. rox каже, на що залізо погодилося насправді, а не що ви просили, тож розбіжність видно числом, а не підозрою.
Спільний режим стоїть за замовчуванням і поводиться як будь-який інший застосунок на вашому робочому столі.
Інтеграція з робочим столом
Медіаклавіші й «зараз грає» йдуть через справжній сервіс MPRIS, тож playerctl, медіавіджети GNOME і KDE та все інше, що говорить org.mpris.MediaPlayer2, бачать його без налаштування.
Значок у треї виходить на шину через StatusNotifierItem, і це те, що робить згортання в трей безпечним: якщо хоста SNI, який його прийме, немає, закриття останнього вікна завершує програму, а не лишає процес без інтерфейсу, до якого не дістатися.
У бенчмарках самі лише Linux-програвачі
Таблицю порівняння на цьому сайті ганяли на Linux і по Linux-софту: Elisa, fooyin, Quod Libet, Strawberry, Museeks і Tauon, усе на одній машині з тією самою медіатекою в 50 000 треків. rox піднімає вікно за 0,3 секунди і зупиняється на 134 МБ. Наступний за легкістю з тих, хто дозавантажується, їсть майже втричі більше пам'яті.
Чого він не вміє на Linux
- Лише x86_64. Збірки під aarch64 Linux немає, тож ARM-плати й Asahi збирають із джерел.
- Немає API плагінів, тож ніщо тут не замінить конкретний компонент Foobar2000, від якого ви залежите.
Ексклюзивний вивід, який повідомляє, на що звукова карта погодилася насправді, а не те, що ви в неї просили, і вигляд, який можна зібрати тут і віддати тому, хто сидить на Windows. Якщо саме цього Linux вам не давав, воно тут.
Спрямуйте його на свою медіатеку
Вільно й з відкритим кодом під AGPL. Без акаунта, і ніщо не працює у фоні, коли він закритий.
Докладніше про те, який він на вигляд, повне порівняння з Foobar2000 або що насправді робить ексклюзивний вивід вище, у ReplayGain і побітовому виводі. Той самий програвач на Windows і macOS.