Boris Yumankulov 2a5ce6c36f
ci: added gtk-update-icon-cache
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-06-01 15:50:57 +05:00
2025-06-01 15:21:32 +05:00
2025-06-01 15:21:32 +05:00
2025-06-01 15:21:32 +05:00
2025-06-01 15:21:32 +05:00
2025-06-01 15:21:32 +05:00
2025-06-01 15:21:32 +05:00
2025-06-01 09:57:02 +00:00
2025-06-01 15:21:32 +05:00
2025-06-01 15:21:32 +05:00
2025-06-01 15:21:32 +05:00

PortProtonQt

Проект нацеленный на переписывание PortProton(PortWINE) на PySide

В планах

  • Адаптировать структуру проекта для поддержки инструментов сборки
  • Добавить возможность управление с геймпада
  • Добавить возможность управление с тачскрина
  • Добавить возможность управление с мыши и клавиатуры
  • Добавить систему тем Документация
  • Вынести все константы такие как уровень закругления карточек в темы (Частично вынесено)
  • Добавить метадату для тем (скришоты, описание, домащняя страница и автор)
  • Продумать систему вкладок вместо той что есть сейчас
  • Добавить Gamescope сессию на подобие той что есть в SteamOS
  • Написать адаптивный дизайн (За эталон берём SteamDeck с разрешением 1280х800)
  • Брать описание и названия игр с базы данных Steam
  • Брать обложки для игр со SteamGridDB или CDN Steam
  • Оптимизировать работу со SteamApi что бы ускорить время запуска
  • Улучшить функцию поиска SteamApi что бы исправить некорректное определение ID (Graven определается как ENGRAVEN или GRAVENFALL, Spore определается как SporeBound или Spore Valley)
  • Убрать логи со SteamApi в релизной версии потому что логи замедляют код
  • Что-то придумать с ограничением SteamApi в 50 тысяч игр за один запрос (иногда туда не попадают нужные игры и остаются без обложки)
  • Избавится от любого вызова yad
  • Написать свою реализацию запрета ухода в сон, а не использовать ту что в PortProton (Оставим это PortProton 2.0)
  • Написать свою реализацию трея, а не использовать ту что в PortProton
  • Добавить в поиск экранную клавиатуру (Реализовавывать собственную клавиатуру слишком затратно, лучше положится на встроенную в DE клавиатуру malit в KDE, gjs-osk в GNOME,Squeekboard в phosh, стимовская в SteamOS и так далее)
  • Добавить сортировку карточек по различным критериям (сейчас есть: недавние, кол-во наиграного времени, избранное или по алфавиту)
  • Добавить индикацию запуска приложения
  • Достичь паритета функционала с Ingame (кроме поддержки нативных игр)
  • Достичь паритета функционала с PortProton
  • Добавить возможность изменения названия, описания и обложки через файлы .local/share/PortProtonQT/custom_data/exe_name/{desc,name,cover}
  • Добавить встроенное переопределение имени, описания и обложки, например по пути portprotonqt/custom_data Документация
  • Добавить в карточку игры сведения о поддержке геймадов
  • Добавить в карточки данные с ProtonDB
  • Добавить в карточки данные с Are We Anti-Cheat Yet?
  • Продублировать бейджы с карточки на страницу с деталями игрыы
  • Добавить парсинг ярлыков со Steam
  • Добавить парсинг ярлыков с EGS
  • Избавится от бинарника legendary
  • Добавить запуск и скачивание игр с EGS
  • Добавить авторизацию в EGS через WebView, а не вручную
  • Брать описания для игр с EGS из их api
  • Брать slug через Graphql запрос
  • Добавить на карточку бейдж того что игра со стима
  • Добавить поддержку Flatpak и Snap версии Steam
  • Выводить данные о самом недавнем пользователе Steam, а не первом попавшемся
  • Исправить склонения в детальном выводе времени, например не 3 часов назад, а 3 часа назад
  • Добавить перевод через gettext Документация
  • Писать описание игр и прочие данные на языке системы
  • Добавить недокументированные параметры конфигурации в GUI (time detail_level, games sort_method, games display_filter)
  • Добавить систему избранного к карточкам
  • Заменить все print на logging
  • Привести все логи к одному языку
  • Стилизовать все элементы без стилей(QMessageBox, QSlider, QDialog)
  • Убрать жёсткую привязку путей на стрелочки QComboBox в styles.py
  • Исправить частичное применение тем на лету
  • Исправить наложение подписей скриншотов при первом перелистывание в полноэкранном режиме

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

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

Запуск производится по команде 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
Is a project aimed at , providing a modern, user-friendly GUI for managing and launching games from multiple platforms, including PortProton, Steam, Epic Games Store (EGS) and more
Readme GPL-3.0 11 MiB
Languages
Python 99.6%
Shell 0.4%