Прицелиться, выстрелить... Прицелиться, выстрелить...

Запустить Росланея, развернуть главное окно, разложить статичные элементы GUI...
Забрать закэшированные статусы обезглавленных лаунчеров и разложить соответствующие "лампочки" по кнопкам лаунчеров...
Забрать закэшированные значения выбранных перед завершением предыдущей сессии фильтров каталога И отобразившихся по нему игр, выставить этим фильтрам эти значения (тупо преселект без применения), разложить карточки этих игр (с кнопками сообразно закэшированному же статусу "недоступно" - "доступно" - "установлено, готово к игре" - "есть проблема") по каталогу...

Прицелиться, выстрелить... Прицелиться, выстрелить...

Раз в минуту-пять-пятнадцать проверить, были ли изменения в состояниях выбранных пользователем фильтров, если были - закэшировать текущие выбранные фильтры + текущий отображённый список игр...
Поймать факт попытки установки/запуска игры...
Если статус игры "Недоступно" - проверить наличие и при необходимости дёрнуть переустановку (и/или авторизацию, для лаунчера) последовательно у лаунчера, (для Win версий) WINE, нужного префикса WINE...
Если "Доступно" - проверить, а не установлена ли уже игра (есть папка с названием = ID игры, в папке ЕСТЬ помеченные как исполняемые файлы), и если всё ОК - игру в "Готово к игре", и запустить...
Если де факто "не готово" - от бедра запустить установку и следить, если что-то не вышло - понизить статус игры до "Недоступно" и поправить статус лаунчера и/или (для Win игр) WINE...
Если "Есть проблема" - выдать окно-траблшутер, над которым надо ОЧЕНЬ хорошо подумать...
Иначе запустить игру и скрыть Росланея...
Если в первые 60 секунд после запуска игра вывалилась с ненулевым кодом ошибки, записать код ошибки для траблшутера и сменить игре статус на "Есть проблема", иначе тихо закрыть Росланея и не мешать ходу игры...

Прицелиться, выстрелить... Прицелиться, выстрелить...

С каждой интеграцией лаунчеров (включая портаблы без лаунчеров) надо разбираться отдельно...
А вот с WINE, если он нужен, - проверить, 32bit или 64bit, и из лаунчера игра или локально установленная...
И префикс нужный проверить на наличие - 32bit для старья, один 64bit для лаунчерных игр, второй 64bit на портаблы...
Нужен префикс, но отсутствует, - сделать с предустановкой мультимедиа кодеков и крайнего UE4 Redistributables (хороший пакет, уйму сценариев покрывает)...

Прицелиться, выстрелить... Прицелиться, выстрелить...

Эта вся бурда - процентов двадцать логики омнилаунчера.
Костяк.
Для максимально голожопого омнилаунчера, без интеграций со всякими SteamDB, IGDB и прочими HowLongToBeat.
Ещё процентов шестьдесят-семьдесят - возня с подключением интеграций Steam, Itch, GOG, etc.
На глазок, тут непосредственно кодинга - по неделе для покрытия каждых 20%.
Полной рабочей неделе, с 9 до 5.
До полутора месяцев. Двух или даже двух с половиной, если совсем угасимся и попытаемся ещё и всякие EA App покрыть.
Это притом, что инструмент у меня из рук не вырывается и я примерно знаю, что делаю.

Да, во, сейчас вспомнил.
А ведь я не трогал процесс ведения каталога игр и статуса служебных компонентов (лаунчеров, WINE, префиксов).
Тут тоже можно завязнуть, вплоть до двух недель.

...я не знаю, как создатель PlayNite будет исходить из себя, чтобы до конца 2026 года сделать свою версию под Linux.

Прицелиться, выстрелить... Прицелиться, выстрелить...