Метод есть.
У проекта есть бэкенд для распознавания активного окна. Тем не менее может понадобиться пакет или сопутствующее расширение.
ПРАКТИЧЕСКОЕ РУКОВОДСТВО / СОВМЕСТИМОСТЬ
Эта страница поможет проверить, может ли geetRPCS-linux распознать окно или игру, которыми вы пользуетесь. Выберите своё окружение, посмотрите его статус и выполните приведённые инструкции по установке, если они есть.
ПРОЧТИТЕ, ПРЕЖДЕ ЧЕМ ПРОДОЛЖИТЬ
Приведённые ниже статусы касаются распознавания активного окна: того, как geetRPCS-linux определяет, какая игра или программа на переднем плане. Сами по себе они не означают, что Discord подключён или что значок программы появится в вашей панели.
Чтобы всё работало, нужен ещё совместимый с Rich Presence клиент Discord, а если вам нужен значок в трее — панель с поддержкой StatusNotifierItem.
БЫСТРЫЙ ТЕСТ · 5 ВОПРОСОВ
Ответьте, исходя из своей конфигурации: опросник покажет, поддерживается ли распознавание, что нужно установить и каких проблем ожидать. Он работает без JavaScript и ничего не собирает.
ВАШ ПЕРВЫЙ ШАГ
Названия рабочего стола не всегда достаточно: GNOME, KDE Plasma или оконный менеджер могут работать как с Wayland, так и с X11.
Откройте терминал и выполните:
echo "$XDG_SESSION_TYPE"
Команда обычно выводит wayland или x11. Также сведения о сессии можно посмотреть в системных настройках или на экране входа вашего дистрибутива.
ЧТО ОЗНАЧАЮТ СТАТУСЫ
Статус показывает уровень поддержки распознавания — согласно документации и механизмам, имеющимся в версии v0.4.3.
У проекта есть бэкенд для распознавания активного окна. Тем не менее может понадобиться пакет или сопутствующее расширение.
Распознавание опирается на особую конфигурацию или резервный механизм. Для некоторых приложений оно может быть неполным.
Окружение не описано в матрице. Это не значит, что оно несовместимо.
Не поддерживается: эта пометка зарезервирована для окружений, прямо объявленных несовместимыми. В прилагаемой документации v0.4.3 так не отмечено ни одно окружение.
01 — WAYLAND
Wayland — графическая система, которую используют многие современные сессии Linux. Проект не полагается на один-единственный метод: некоторым рабочим столам нужен собственный сопутствующий компонент.
Распознавание использует протокол, общий для этих композиторов. Программа может получить сведения об активном окне без расширений для каждого рабочего стола.
В Wayfire должен быть включён плагин foreign-toplevel. Sway, Hyprland и labwc используют соответствующий бэкенд, когда он доступен.
В ~/.config/wayfire.ini добавьте foreign-toplevel в существующий список плагинов секции [core], затем перезапустите Wayfire. Не заменяйте весь список плагинов минимальным примером.
GNOME использует Mutter, который не предоставляет протокол wlroots. Поэтому geetRPCS-linux опирается на небольшое расширение GNOME Shell, которое сообщает об активном окне.
Расширение geetRPCS Window Tracker должно быть установлено и включено. В версии v0.4.3 заявлена поддержка GNOME Shell 45–51. Основной установщик попытается поставить его автоматически, если в системе есть нужные инструменты GNOME.
Рабочие столы Wayland предоставляют разные сведения об окнах. Сопутствующий компонент GNOME локально передаёт идентификатор и заголовок окна в фокусе процессу geetRPCS-linux.
В Plasma Wayland сопутствующий скрипт KWin сообщает программе об окне в фокусе через локальный D-Bus-мост.
Скрипт geetrpcsWindowTracker должен быть развёрнут. Установщик настраивает его автоматически, если он запущен из совместимой сессии KDE.
KWin не предоставляет протокол wlroots, который используют Sway или Hyprland. Поэтому сопутствующий скрипт передаёт сведения об окнах в geetRPCS-linux через предусмотренный в проекте механизм.
02 — X11 / XORG
X11 (часто называемый Xorg) — другая графическая система, которую до сих пор используют многие окружения и оконные менеджеры Linux.
Программа использует xprop, чтобы спросить у X11, какое окно активно, а затем получает его идентификатор и данные.
Должен быть установлен пакет, поставляющий xprop. В Arch Linux это xorg-xprop; во многих дистрибутивах Debian/Ubuntu он входит в x11-utils.
xprop — небольшая утилита командной строки для чтения свойств окон X11. geetRPCS-linux использует её для распознавания активного окна; это не расширение рабочего стола.
03 — WAYLAND: ОСОБЫЕ СЛУЧАИ
В этих окружениях нет столь прямой интеграции. Распознавание требует внешний инструмент либо ограничено окнами, доступными через X11/XWayland.
Идентификатор и заголовок активного окна могут передаваться geetRPCS-linux через временный файл состояния. Сама программа их не получает: эти данные должен формировать внешний инструмент.
Метод рассчитан на опытных пользователей, способных настроить собственный инструмент отслеживания окон.
Обновлять нужно файл $XDG_RUNTIME_DIR/geetrpcs-linux/active-window.json. Он должен содержать поля app_id, title и updated_at (метка времени Unix в секундах). Файл следует обновлять до истечения срока действия содержимого, то есть каждые 6 секунд.
{
"app_id": "org.example.Application",
"title": "Заголовок окна",
"updated_at": 1794067200
}Значение updated_at выше — лишь пример формата: ваш инструмент должен подставлять текущее время при каждом обновлении.
Если нативного бэкенда нет, geetRPCS-linux может задействовать свой резервный режим X11/XWayland. Он не позволяет отслеживать все нативные Wayland-окна.
Приложения, доступные через X11 или XWayland, могут распознаваться. Для нативных Wayland-окон такой гарантии нет.
04 — ЗНАЧОК В ОБЛАСТИ УВЕДОМЛЕНИЙ
Распознавание сообщает программе, какое окно активно. Трей (маленький значок рядом с часами) зависит от панели вашего рабочего стола. geetRPCS-linux использует протокол StatusNotifierItem, поэтому для отображения значка панель должна иметь совместимый хост.
В GNOME Shell может понадобиться хост или расширение с поддержкой AppIndicator/StatusNotifierItem. Budgie Panel и панелям Wayfire тоже нужен подходящий апплет StatusNotifier.
Если хост для трея недоступен, интерфейс GTK остаётся рабочим; в программе предусмотрен резервный режим с главным окном.
05 — КЛИЕНТ DISCORD
Даже если окно распознано верно, статус появится только если geetRPCS-linux может связаться с совместимым клиентом Discord и у него есть подходящий Application ID Discord.
Клиент для Linux использует свой локальный IPC-сокет. Запустите Discord, прежде чем проверять состояние подключения.
Откройте настройки Vesktop и включите Enable Rich Presence via arRPC. Сервер arRPC в Vesktop уже встроен.
Песочница может блокировать доступ к сокету хоста. Рекомендуется нативная установка; если оставляете Flatpak, обратитесь к документации Vesktop.
06 — НЕОПИСАННЫЕ ОКРУЖЕНИЯ
Не провереноЭто не обязательно проблема. Это лишь значит, что поддержка не описана в документации v0.4.3, на которой основана эта страница. Рабочий стол может работать за счёт одного из существующих механизмов, но без проверки считать это подтверждённым не стоит.
В этой документации ни одно конкретное окружение прямо не объявлено «не поддерживается». Матрица намеренно различает «не проверено» и «несовместимо».
07 — НЕБОЛЬШОЙ ГЛОССАРИЙ
В карточках встречаются технические термины. Вот что они означают — без деталей реализации.
Современная графическая система, которую используют многие рабочие столы Linux. Она строже защищает данные между приложениями, поэтому методы распознавания зависят от рабочего стола.
Более старая графическая система, всё ещё широко распространённая. Она предлагает способ чтения активного окна, которым пользуется geetRPCS-linux.
Технический способ, с помощью которого программа получает имя или идентификатор активного окна в конкретной сессии.
Небольшой модуль, добавляемый в рабочий стол (например, GNOME Shell или KWin), чтобы передать программе сведения, которые графическая система не даёт напрямую.
Слой совместимости, позволяющий некоторым приложениям, созданным для X11, работать в сессии Wayland.
Протокол, который позволяет приложению показывать свой значок и меню в области уведомлений совместимой панели Linux.
БАЗА ДОКУМЕНТАЦИИ: v0.4.3
Вернитесь к обзору проекта, чтобы разобраться в его функциях, требованиях и текущих ограничениях.