Repository navigation
Home
Для кого эта wiki. Для тех, кто собирается слушать интернет-радио через 3D-глобус: пользователей Linux (основная цель), macOS и Windows, а также владельцев niri, Hyprland и Noctalia, которым нужно понять, как OrbitFM встраивается в рабочий стол.
Что понадобится. Установленный OrbitFM (см. Установка) и базовое умение открыть терминал. Всё остальное — по странице.
OrbitFM — десктопный плеер интернет-радио, где каталог станций показан
интерактивным 3D-глобусом: кликаете по стране — получаете список её станций из
Radio Browser и слушаете, не покидая окно. Приложение написано на Rust
(eframe/egui + wgpu), а звук играет через libmpv, поэтому потоки подхватываются
вместе со всеми форматами, которые умеет mpv, и само переподключаются при
обрыве. Это один процесс с одним окном в трёх компоновках — Focus (полный стол
1100×800), Overlay (капсула 500×620) и Listening (строка 420×152), — плюс
выпадающая панель Panel (400×640) для бар-виджета; переключаются они командой
orbitfm mode … или кнопками в интерфейсе, а Panel открывается
orbitfm panel; рамка и тень остаются только у Focus. Закрытие окна НЕ
выключает приложение: воспроизведение, трей (SNI на Linux, строка меню на
macOS), MPRIS и IPC продолжают работать, а orbitfm quit — единственный способ
выйти по-настоящему. Интерфейс, трей и уведомления говорят на шестнадцати
языках плюс режим «Системный», а громкость, тема, язык и анимации сохраняются в
~/.config/orbitfm/settings.json.
Для скриптов, плагинов оболочек и браузерной панели есть orbitfm status --json,
поток orbitfm events и команды playpause, next, previous, roulette,
volume-up, volume-down, theme, settings; таймер сна и перенос библиотеки —
orbitfm sleep и orbitfm library-export/library-import; локальная статистика
прослушивания — orbitfm stats, stats --json и stats clear. Внешний поток —
интернет-радио вне каталога Radio Browser — импортируется командой
orbitfm play-url (.m3u, .pls, прямая ссылка или страница с аудио); то же
умеет кнопка «Play this page» в панели браузера.
| Страница | О чём |
|---|---|
| Установка | AppImage / MSI / два DMG из Releases, проверка SHA256SUMS, права, desktop-файл, сборка из исходников и системные зависимости |
| macOS: Apple Silicon | DMG arm64 для M1–M4: установка, Gatekeeper, PATH, проверка архитектуры, обновление и удаление |
| macOS: Intel | DMG x86_64 для Intel Mac: установка, Gatekeeper, PATH, проверка архитектуры, обновление и удаление |
| Первый запуск | Мастер первого запуска, что открыть, где страна, где Play, избранное, подсказка, почему процесс остаётся после закрытия окна |
| Режимы окна | Focus / Overlay / Listening / Panel: размеры, содержимое, переключение |
| Настройки и язык | Модальное окно настроек: категории слева, тумблеры и списки справа — тема, акцент, визуализатор, язык, громкость, анимация, окно, статистика, интеграции, «О программе» |
| Управление и горячие клавиши | Мышь, клавиатура, медиа-клавиши, CLI, поток «страна → список → Play», импорт внешних потоков play-url, команды статистики stats/stats clear
|
| Интеграции | Общая страница: что можно подключить, страница «Настройки → Интеграции», установщик, обновление и удаление |
| Панели и виджеты | Виджет Noctalia, плагин Plasma 6, расширение GNOME, виджет Omarchy, модули Waybar, Polybar, i3blocks, swaybar, i3status-rust, XFCE, Cinnamon, MATE, LXQt |
| Браузер | Панель OrbitFM в Chrome/Chromium и Firefox: поиск, избранное, история, «Play this page», офлайн, native host |
| Правила окон | Готовые правила для niri и Hyprland: размеры капсул и панели, установка, проверка |
| Трей и MPRIS | Постоянная иконка трея, сгруппированное меню с карточкой станции, org.mpris.MediaPlayer2.OrbitFM, поведение при закрытом окне |
| Варианты использования | Десять реальных сценариев: фон-музыка, фокус-сессия, второй экран, языки, тишина, плохая сеть и офлайн |
| Неполадки | Нет звука, tofu-квадраты, растянутая капсула, пустой поиск, пропавший трей, ошибки импорта потока, офлайн-снимок и ECO, битый stats.json, логи, сброс |
| Глоссарий | 60+ терминов проекта человеческим языком: Focus, scrim, SNI, onset, R-Tree, офлайн-снимок, ECO, CST-правка, статистика прослушивания |

Первый запуск на чистом профиле: три шага, встроенные шрифты и выбор языка с темой.
Категория «Интеграции»: автообнаружение панелей, окружений и браузеров, установка одной кнопкой.
Wiki описывает ветку main после 0.20.0-rc.5. В этой сборке:
- работают панели и виджеты для Noctalia, Plasma 6, GNOME Shell, Omarchy,
Waybar, Polybar, i3blocks, swaybar, i3status-rust, XFCE, Cinnamon, MATE и
LXQt — все ставятся из «Настройки → Интеграции» или командой
orbitfm integration install <цель>; - есть панель для Chrome/Chromium/Brave/Edge/Vivaldi и Firefox;
- niri и Hyprland получают готовые правила окон одной кнопкой;
- ручная ссылка станции задаётся командой
orbitfm alias, статистика прослушивания живёт локально, а таймер сна и перенос библиотеки работают из CLI; - мастер первого запуска, встроенные шрифты, офлайн-снимок станций и экономный аудиорежим входят в сборку;
- Noctalia показывает виджет версии 1.1.0; приложения для Android пока нет.
Проверить свою сборку:
orbitfm --versionИдентификаторы, которые встречаются в конфигурациях и логах:
| Что | Значение |
|---|---|
| Бинарник / crate | orbitfm |
| app-id окна | org.modernbyte.OrbitFM |
| Плагин Noctalia | modernbyte/orbitfm |
| MPRIS-имя | org.mpris.MediaPlayer2.OrbitFM |
| IPC-сокет (Linux) | $XDG_RUNTIME_DIR/orbitfm.sock |
| Native host и native-манифест | org.modernbyte.orbitfm |
| ID расширения Chrome | lfhmfgjblkebbalfdlbmnalghhjplfbg |
| ID расширения Firefox | orbitfm@modernbyte |
Станции и их координаты приходят из открытого каталога Radio Browser
(https://all.api.radio-browser.info, DNS-discovery зеркал и автоматический failover).
Границы стран вшиты в приложение, поэтому глобус рисуется и без сети; список станций
требует сети, но локальный офлайн-снимок до 500 станций страхует глобус и списки от
пустого экрана. Избранное и история хранятся локально в ~/.local/share/orbitfm/library.json,
оформление — в ~/.config/orbitfm/settings.json, минуты прослушивания — в
~/.local/share/orbitfm/stats.json, снимок — в
~/.local/share/orbitfm/cache/stations-snapshot.json. Никакой синхронизации с сервером
и аккаунтов нет: всё, что вы видите, лежит у вас дома.
-
Дефекты: issue-трекер, шаблон «Ошибка (Bug)» просит краткое описание, шаги воспроизведения, ожидаемое и фактическое поведение, платформу, версию/коммит и логи. Логи пишет в stderr тот процесс, который поднял GUI, поэтому их собирают так:
orbitfm quit # завершить текущий процесс RUST_LOG=debug orbitfm show 2> ~/orbitfm.log # пересоздать окно с debug-логом
Обычные клиентские вызовы (
orbitfm status,orbitfm volume 0.4) логов приложения не содержат — они только отправляют команду в сокет. Подробности — в разделе «Логи» на странице Неполадки. -
Вопросы «как это сделать» — сначала Варианты использования и Глоссарий: многие ограничения (например, что капсулу нельзя растянуть, а режим не запоминается между запусками) описаны там простыми словами.
Это не справочник разработчика и не обещание roadmap: здесь нет описаний функций
вне дорожной карты (AUR/Flathub/Homebrew-пакетов, автозапуска, мобильных версий,
синхронизации). Wiki рассказывает, как пользоваться уже собранным OrbitFM. Если
поведение вашей сборки отличается — проверьте версию командой orbitfm --version
и сообщите о расхождении в issue.