Boris Yumankulov 84708ed260
All checks were successful
Check Translations / check-translations (push) Successful in 35s
Code and build check / Check code (push) Successful in 1m19s
Code and build check / Build with uv (push) Successful in 46s
chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-06-11 23:19:31 +05:00
2025-06-11 23:17:35 +05:00
2025-06-11 23:17:35 +05:00
2025-06-01 15:21:32 +05:00
2025-06-01 15:21:32 +05:00
2025-06-11 23:19:31 +05:00
2025-06-01 09:57:02 +00:00
2025-06-01 15:21:32 +05:00
2025-06-11 19:09:56 +05:00
2025-06-01 15:21:32 +05:00

PortProtonQt

Удобный графический интерфейс для управления и запуска игр из PortProton, Steam и Epic Games Store. Оно объединяет библиотеки игр в единый центр для лёгкой навигации и организации. Лёгкая структура и кроссплатформенная поддержка обеспечивают цельный игровой опыт без необходимости использования нескольких лаунчеров. Интеграция с PortProton упрощает запуск Windows-игр на Linux с минимальной настройкой.

В планах

  • Адаптировать структуру проекта для поддержки инструментов сборки
  • Добавить возможность управления с геймпада
  • Добавить возможность управления с тачскрина
  • Добавить возможность управления с мыши и клавиатуры
  • Добавить систему тем Документация
  • Вынести все константы, такие как уровень закругления карточек, в темы (частично выполнено)
  • Добавить метаданные для тем (скриншоты, описание, домашняя страница и автор)
  • Продумать систему вкладок вместо текущей
  • Добавить сессию Gamescope, аналогичную той, что используется в SteamOS
  • Разработать адаптивный дизайн (за эталон берётся Steam Deck с разрешением 1280×800)
  • Переделать скриншоты для соответствия гайдлайнам Flathub
  • Получать описания и названия игр из базы данных Steam
  • Получать обложки для игр из SteamGridDB или CDN Steam
  • Оптимизировать работу со Steam API для ускорения времени запуска
  • Улучшить функцию поиска в Steam API для исправления некорректного определения ID (например, Graven определялся как ENGRAVEN или GRAVENFALL, Spore — как SporeBound или Spore Valley)
  • Убрать логи Steam API в релизной версии, так как они замедляют выполнение кода
  • Решить проблему с ограничением Steam API в 50 тысяч игр за один запрос (иногда нужные игры не попадают в выборку и остаются без обложки)
  • Избавиться от вызовов yad
  • Реализовать собственный механизм запрета ухода в спящий режим вместо использования механизма PortProton (оставлено для PortProton 2.0)
  • Реализовать собственный системный трей вместо использования трея PortProton
  • Добавить экранную клавиатуру в поиск (реализация собственной клавиатуры слишком затратна, поэтому используется встроенная в DE клавиатура: Maliit в KDE, gjs-osk в GNOME, Squeekboard в Phosh, клавиатура SteamOS и т.д.)
  • Добавить сортировку карточек по различным критериям (доступны: по недавности, количеству наигранного времени, избранному или алфавиту)
  • Добавить индикацию запуска приложения
  • Достигнуть паритета функциональности с Ingame
  • Достигнуть паритета функциональности с PortProton
  • Добавить возможность изменения названия, описания и обложки через файлы .local/share/PortProtonQT/custom_data/exe_name/{desc,name,cover}
  • Добавить встроенное переопределение названия, описания и обложки, например, по пути portprotonqt/custom_data Документация
  • Добавить в карточку игры сведения о поддержке геймпада
  • Добавить в карточки данные с ProtonDB
  • Добавить в карточки данные с AreWeAntiCheatYet
  • Продублировать бейджи с карточки на страницу с деталями игры
  • Добавить парсинг ярлыков из Steam
  • Добавить парсинг ярлыков из EGS (скрыто для переработки)
  • Избавиться от бинарника legendary
  • Добавить запуск и скачивание игр из EGS
  • Добавить авторизацию в EGS через WebView вместо ручного ввода
  • Получать описания для игр из EGS через их API
  • Получать slug через GraphQL запрос
  • Добавить на карточку бейдж, указывающий, что игра из Steam
  • Добавить поддержку версий Steam для Flatpak и Snap
  • Отображать данные о самом последнем пользователе Steam, а не первом попавшемся
  • Исправить склонения в детальном выводе времени, например, не «3 часов назад», а «3 часа назад»
  • Добавить перевод через gettext Документация
  • Отображать описания игр и другие данные на языке системы
  • Добавить недокументированные параметры конфигурации в GUI (time_detail_level, games_sort_method, games_display_filter)
  • Добавить систему избранного для карточек
  • Заменить все print на logging
  • Привести все логи к единому языку
  • Стилизовать все элементы без стилей (QMessageBox, QSlider, QDialog)
  • Убрать жёсткую привязку путей к стрелочкам QComboBox в styles.py
  • Исправить частичное применение тем на лету
  • Исправить наложение подписей скриншотов при первом перелистывании в полноэкранном режиме
  • Добавить поддержку GOG (?)
  • Определиться с названием (PortProtonQt или PortProtonQT или вообще третий вариант)
  • Добавить данные с HowLongToBeat на страницу с деталями игры (?)
  • Добавить виброотдачу на геймпаде при запуске игры
  • Исправить некорректную работу слайдера увеличения размера карточек(Последствия регрессии после этого коммита
  • Исправить баг с наложением карточек друг на друга при изменении фильтра отображения (Последствия регрессии после этого коммита)
  • Скопировать логику управления с D-pad на стрелки с клавиатуры

Установка (devel)

uv python install 3.10
uv sync
source .venv/bin/activate

Запуск производится по команде portprotonqt

Установка (release)

Выберите подходящий пакет для вашей системы или AppImage.

Запуск производится по команде portprotonqt или по ярлыку в меню

Разработка

В проект встроен линтер (ruff), статический анализатор (pyright) и проверка lock файла, если эти проверки не пройдут PR не будет принят, поэтому перед коммитом введите такую команду

uv python install 3.10
uv sync --all-extras --dev
source .venv/bin/activate
pre-commit install

pre-commit сам запустится при коммите, если вы хотите запустить его вручную введите команду

pre-commit run --all-files

Авторы

Warning

Проект находится на стадии WIP (work in progress) корректная работоспособность не гарантирована

Warning

Будьте осторожны! Если вы берёте тему не из официального репозитория или надёжного источника, убедитесь, что в её файле styles.py нет вредоносного или нежелательного кода. Поскольку styles.py — это обычный Python-файл, он может содержать любые инструкции. Всегда проверяйте содержимое чужих тем перед использованием.

Description
This application provides a sleek, intuitive graphical interface for managing and launching games from PortProton, Steam, and Epic Games Store. It consolidates your game libraries into a single, user-friendly hub for seamless navigation and organization. Its lightweight structure and cross-platform support deliver a cohesive gaming experience, eliminating the need for multiple launchers. Unique PortProton integration enhances Linux gaming, enabling effortless play of Windows-based titles with minimal setup
Readme GPL-3.0 9.3 MiB
Languages
Python 99.6%
Shell 0.4%