Skip to content
code_warlord edited this page Nov 4, 2026 · 12 revisions

OrbitFM — wiki

Для кого эта wiki. Для тех, кто собирается слушать интернет-радио через 3D-глобус: пользователей Linux (основная цель), macOS и Windows, а также владельцев niri, Hyprland и Noctalia, которым нужно понять, как OrbitFM встраивается в рабочий стол.

Что понадобится. Установленный 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» в панели браузера.

Карта wiki

Страница О чём
Установка 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-правка, статистика прослушивания

Focus-стол целиком

Мастер первого запуска: шаг «Язык и тема» Первый запуск на чистом профиле: три шага, встроенные шрифты и выбор языка с темой.

Настройки → Интеграции Категория «Интеграции»: автообнаружение панелей, окружений и браузеров, установка одной кнопкой.

Версия, о которой идёт речь

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) логов приложения не содержат — они только отправляют команду в сокет. Подробности — в разделе «Логи» на странице Неполадки.

  • Вопросы «как это сделать» — сначала Варианты использования и Глоссарий: многие ограничения (например, что капсулу нельзя растянуть, а режим не запоминается между запусками) описаны там простыми словами.

Чем эта wiki не является

Это не справочник разработчика и не обещание roadmap: здесь нет описаний функций вне дорожной карты (AUR/Flathub/Homebrew-пакетов, автозапуска, мобильных версий, синхронизации). Wiki рассказывает, как пользоваться уже собранным OrbitFM. Если поведение вашей сборки отличается — проверьте версию командой orbitfm --version и сообщите о расхождении в issue.

Clone this wiki locally