Compare commits

...
872 Commits
Author SHA1 Message Date
Boria138 4d6f6c1b82 bump to 1.2.0
Build AppImage, Arch, Fedora and Debian Packages / Build Arch Package (push) Successful in 2m7s
Build AppImage, Arch, Fedora and Debian Packages / Build Fedora RPM (42) (push) Successful in 1m7s
Build AppImage, Arch, Fedora and Debian Packages / Build Fedora RPM (44) (push) Successful in 1m22s
Build AppImage, Arch, Fedora and Debian Packages / Build Debian Package (push) Successful in 2m2s
Build AppImage, Arch, Fedora and Debian Packages / Create and Publish Release (push) Successful in 30s
Code check / Check code (push) Successful in 58s
Build AppImage, Arch, Fedora and Debian Packages / Build AppImage (push) Successful in 7m3s
Build AppImage, Arch, Fedora and Debian Packages / Build Fedora RPM (43) (push) Successful in 1m6s
Build AppImage, Arch, Fedora and Debian Packages / Build Fedora RPM (rawhide) (push) Successful in 1m30s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-10 11:01:19 +05:00
Codeberg TranslateandBoria138 4451d7e26a Translated using Weblate (Russian)
Check Translations / check-translations (push) Successful in 15s
Code check / Check code (push) Successful in 57s
Currently translated at 100.0% (679 of 679 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-06-10 05:58:37 +00:00
Boria138 a4199e2a16 chore(locale): update
Check Translations / check-translations (push) Failing after 25s
Code check / Check code (push) Successful in 58s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-10 10:56:09 +05:00
Boria138 401d1ddac2 feat: add file delete and rename to file explorer
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-10 10:55:42 +05:00
Boria138 86f66a1174 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-10 10:44:49 +05:00
Boria138 8d5a99f0de fix: delay library controls auto-close after combo selection
Code check / Check code (push) Successful in 59s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-09 20:34:51 +05:00
Dervart 92f795f0e5 fix: combobox styles for filters
Code check / Check code (push) Successful in 1m0s
Code check / Check code (pull_request) Successful in 59s
2026-06-09 20:36:45 +07:00
Codeberg TranslateandBoria138 821c9172b2 Translated using Weblate (Russian)
Check Translations / check-translations (push) Failing after 18s
Code check / Check code (push) Successful in 58s
Currently translated at 100.0% (672 of 672 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-06-09 11:26:33 +00:00
Codeberg Translateandrogerio-mattos 9c2febb40a Translated using Weblate (Portuguese (Brazil))
Currently translated at 43.2% (290 of 670 strings)

Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: rogerio-mattos <rogerio-mattos@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/pt_BR/
Translation: PortProtonQt/PortProtonQt
2026-06-09 11:26:33 +00:00
Boria138 da21309b0c chore(locale): update
Check Translations / check-translations (push) Failing after 1m6s
Code check / Check code (push) Successful in 1m7s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-09 16:24:47 +05:00
Boria138 9be9187ea5 feat: add sound driver setting to gui
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-09 16:24:13 +05:00
Boria138 18d1ad2d92 fix: skip exiftool when it is not installed
Code check / Check code (push) Successful in 58s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-09 15:56:22 +05:00
Boria138 f9cefe501b fix: move badge view control to library submenu
Code check / Check code (push) Successful in 59s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-09 15:46:28 +05:00
Boria138 d385e4e120 fix: make refresh button compact in library toolbar
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-09 15:42:42 +05:00
Mikhail Tergoev 4d9f7be000 update WINE_LG to 11-10
Code check / Check code (push) Successful in 58s
2026-06-08 22:08:06 +03:00
Boria138 ee6255a507 fix: collapse filters on card hover
Code check / Check code (push) Successful in 58s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-08 16:43:21 +00:00
Boria138 2a8630db1b feat: make search compat
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-08 16:43:21 +00:00
Boria138 078bb9e8c7 feat: improve library filter controls
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-08 16:43:21 +00:00
Mikhail Tergoev be7f7056d3 Merge branch 'scripts-show-ppdb'
Code check / Check code (push) Successful in 2m0s
2026-06-08 18:16:08 +03:00
Mikhail Tergoev b31dcb9c63 fix merge conflict
Code check / Check code (push) Failing after 13m6s
2026-06-08 18:13:56 +03:00
Boria138 0958914cf1 fix: handle uppercase exe in show-ppdb
Code check / Check code (pull_request) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-08 13:42:22 +05:00
Boria138 ff23e4c0df feat: add nrg disc image launch support
Code check / Check code (pull_request) Successful in 52s
Code check / Check code (push) Successful in 53s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-08 09:54:47 +05:00
Boria138 4ae1b71823 fix: fall back to Xbox gamepad type without SDL3
Code check / Check code (push) Successful in 1m15s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-08 09:20:06 +05:00
Boria138 25bf639f00 fix: avoid runtime cwd in system scripts dir
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-07 16:30:43 +05:00
Boria138 5dfdc91b75 chore: create shortcuts only in app by default
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-07 16:18:44 +05:00
Mikhail Tergoev e5076a683c update CHANGELOG.md 2026-06-07 12:09:16 +03:00
Mikhail Tergoev c3d3668eee mouse emulator sensitivity = 20 2026-06-07 12:09:16 +03:00
Renovate Bot f6d2a37d6f chore(deps): update archlinux:base-devel docker digest to c84ad63
Code check / Check code (push) Successful in 53s
2026-06-07 04:16:26 +00:00
Renovate Bot 6969c534a8 chore(deps): update https://git.linux-gaming.ru/actions/checkout digest to df4cb1c
Package Build - AppImage, Arch, Fedora, Debian / Build Fedora RPM (44) (pull_request) Has been skipped
Package Build - AppImage, Arch, Fedora, Debian / Build Fedora RPM (rawhide) (pull_request) Has been skipped
Package Build - AppImage, Arch, Fedora, Debian / Build Arch Package (pull_request) Has been skipped
Package Build - AppImage, Arch, Fedora, Debian / changes (pull_request) Successful in 14s
Package Build - AppImage, Arch, Fedora, Debian / Build AppImage (pull_request) Has been skipped
Package Build - AppImage, Arch, Fedora, Debian / Build Fedora RPM (43) (pull_request) Has been skipped
Package Build - AppImage, Arch, Fedora, Debian / Build Debian Package (pull_request) Has been skipped
Code check / Check code (push) Successful in 55s
Code check / Check code (pull_request) Successful in 1m4s
Package Build - AppImage, Arch, Fedora, Debian / Build Fedora RPM (42) (pull_request) Has been skipped
2026-06-07 00:00:52 +00:00
Boria138 4fcf48a7cf chore(locale): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-06 22:59:40 +05:00
Boria138 090818a356 Merge remote-tracking branch 'origin/weblate'
Check Translations / check-translations (push) Successful in 15s
Code check / Check code (push) Successful in 53s
2026-06-06 22:53:16 +05:00
Codeberg TranslateandBoria138 7451d1f876 Translated using Weblate (Russian)
Currently translated at 100.0% (670 of 670 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-06-06 17:53:02 +00:00
Boria138 f30e3fd405 chore(locale): update
Check Translations / check-translations (push) Failing after 19s
Code check / Check code (push) Successful in 53s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-06 22:51:41 +05:00
Boria138 01e2c3bfd5 chore: add Weblate accept script 2026-06-06 22:51:06 +05:00
Boria138 52e1b303ba Merge remote-tracking branch 'weblate/main'
Code check / Check code (push) Successful in 53s
Check Translations / check-translations (push) Failing after 12s
2026-06-06 22:46:13 +05:00
Boria138 ab954936fc Merge branch 'weblate'
Check Translations / check-translations (push) Failing after 13s
Code check / Check code (push) Successful in 55s
2026-06-06 22:41:58 +05:00
Codeberg Translateandrogerio-mattos d25342331d Translated using Weblate (Portuguese (Brazil))
Currently translated at 32.8% (220 of 670 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 32.3% (217 of 670 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 30.2% (203 of 670 strings)

Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: rogerio-mattos <rogerio-mattos@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/pt_BR/
Translation: PortProtonQt/PortProtonQt
2026-06-06 17:41:26 +00:00
Codeberg Translateandgallegonovato 26d1661f63 Translated using Weblate (Spanish)
Currently translated at 8.6% (58 of 670 strings)

Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: gallegonovato <gallegonovato@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/es/
Translation: PortProtonQt/PortProtonQt
2026-06-06 17:41:26 +00:00
Boria138 6ddb630fea fix: adjust vkBasalt CAS and action controls
Code check / Check code (push) Successful in 58s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-06 22:40:21 +05:00
Codeberg Translateandrogerio-mattos 2b934bef6e Translated using Weblate (Portuguese (Brazil))
Currently translated at 30.2% (203 of 670 strings)

Co-authored-by: rogerio-mattos <rogerio-mattos@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/pt_BR/
Translation: PortProtonQt/PortProtonQt
2026-06-06 16:07:54 +00:00
Codeberg Translateandgallegonovato 5d2101475e Translated using Weblate (Spanish)
Currently translated at 8.6% (58 of 670 strings)

Co-authored-by: gallegonovato <gallegonovato@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/es/
Translation: PortProtonQt/PortProtonQt
2026-06-06 16:07:54 +00:00
Boria138 c16b481679 fix: add LG latest aliases to default Wine selection
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-06 19:38:21 +05:00
Boria138 b91ed1b135 fix: read XDG paths always and fix Flatpak container download disable
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-06 18:30:56 +05:00
Boria138 a25c30f463 fix: restore right gamepad stick working
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-06 16:48:11 +05:00
Boria138 ebded297d3 fix: select vkBasalt user config in Flatpak
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-06 16:17:05 +05:00
Boria138 73d8c8e030 fix: improve GPU info command diagnostics
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-06 13:09:03 +05:00
Boria138 079d79f2c8 fix: keep selected table row color on hover
Code check / Check code (push) Successful in 53s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-06 12:49:14 +05:00
Boria138 4f8e0c2d41 fix: speed up winetricks list loading
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-06 12:45:27 +05:00
Mikhail Tergoev 37d9104274 add support third-party installation scripts
Code check / Check code (push) Successful in 54s
2026-06-05 18:42:58 +03:00
Boria138 764bb3ced5 fix: handle spaced exe names in last launch cache
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-05 20:20:04 +05:00
37dd71284f Translated using Weblate (Chinese (Simplified Han script))
Code check / Check code (push) Successful in 55s
Check Translations / check-translations (push) Successful in 9s
Currently translated at 95.5% (640 of 670 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 95.5% (640 of 670 strings)

Co-authored-by: Anonymous <anonymous@noreply.codeberg.org>
Co-authored-by: Poesty Li <poesty7450@gmail.com>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/zh_Hans/
Translation: PortProtonQt/PortProtonQt
2026-06-05 14:33:00 +00:00
03da1b2c61 Translated using Weblate (Russian)
Currently translated at 100.0% (670 of 670 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (670 of 670 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (670 of 670 strings)

Co-authored-by: Anonymous <anonymous@noreply.codeberg.org>
Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Co-authored-by: Simple16 <simple16@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-06-05 14:33:00 +00:00
e77a7edf4c Translated using Weblate (Portuguese (Brazil))
Currently translated at 3.4% (23 of 670 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 3.4% (23 of 670 strings)

Co-authored-by: Anonymous <anonymous@noreply.codeberg.org>
Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/pt_BR/
Translation: PortProtonQt/PortProtonQt
2026-06-05 14:33:00 +00:00
Codeberg TranslateandAnonymous 065cf835c5 Translated using Weblate (Belarusian)
Currently translated at 0.0% (0 of 670 strings)

Co-authored-by: Anonymous <anonymous@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/be/
Translation: PortProtonQt/PortProtonQt
2026-06-05 14:33:00 +00:00
Boria138 3001fdac30 chore(locales): return es
Check Translations / check-translations (push) Failing after 9s
Code check / Check code (push) Successful in 53s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-05 19:32:48 +05:00
Boria138 4456d06b50 chore(locales): drop unused locales
Code check / Check code (push) Successful in 57s
Check Translations / check-translations (push) Failing after 10s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-05 19:17:36 +05:00
Codeberg TranslateandBoria138 1d423d7ebe Translated using Weblate (Portuguese (Brazil))
Currently translated at 3.4% (23 of 670 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/pt_BR/
Translation: PortProtonQt/PortProtonQt
2026-06-05 14:12:52 +00:00
Boria138 1c91219cef fix: improve vkBasalt gamepad navigation
Code check / Check code (push) Successful in 1m11s
Check Translations / check-translations (push) Failing after 22s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-05 16:41:49 +05:00
Boria138 718b7f0eaa chore: avoid translating tool names in settings buttons
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-05 16:33:43 +05:00
Boria138 0b4fcd37d4 feat: add vkBasalt toggle key setting
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-05 16:25:58 +05:00
Boria138 f08ae3091e chore: move vkbasalt to separate tab
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-05 16:12:29 +05:00
Boria138 947a5d522a chore: add SpecialK to spell ignore
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-05 13:48:52 +05:00
Codeberg TranslateandBoria138 2ad468491e Translated using Weblate (Russian)
Code check / Check code (push) Successful in 56s
Check Translations / check-translations (push) Failing after 15s
Currently translated at 100.0% (674 of 674 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-06-05 08:34:50 +00:00
Boria138 5bb0848f56 Merge branch 'weblate'
Code check / Check code (push) Successful in 54s
Check Translations / check-translations (push) Successful in 10s
2026-06-05 12:35:07 +05:00
Boria138 6d6ed36bc0 chore(locale): update
Check Translations / check-translations (push) Failing after 1m0s
Code check / Check code (push) Successful in 58s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-05 12:34:19 +05:00
Boria138 93d6c4610c feat: add vkBasalt exe settings
Code check / Check code (push) Successful in 59s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-05 12:31:31 +05:00
Boria138 72ec18e099 ci: use own action mirrors
Code check / Check code (push) Successful in 1m58s
Build vk_gpu_info on Debian 11 / Build vk_gpu_info on Debian 11 (push) Successful in 3m14s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-05 10:57:03 +05:00
Boria138 a04b0e41e9 chore(scripts): use unpack for p7zip archives
Code check / Check code (push) Failing after 1s
Code check / Check code (pull_request) Failing after 1s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-05 09:00:46 +05:00
Codeberg Translateandrogerio-mattos 6e4664589b Added translation using Weblate (Portuguese (Brazil))
Co-authored-by: rogerio-mattos <rogerio-mattos@noreply.codeberg.org>
2026-06-05 00:00:41 +00:00
Mikhail Tergoev 6ccf99c73f add download error checking
Code check / Check code (push) Failing after 30s
2026-06-04 17:03:29 +03:00
Mikhail Tergoev 20372331d6 revert logging scripts to terminal 2026-06-04 16:34:29 +03:00
Boria138 b17bbb2f46 fix: avoid file explorer focus jumps from gamepad axis
Code check / Check code (push) Successful in 58s
Prevent left stick axis events from forcing focus to the first path
button in FileExplorer. Keep list reset to the first row only for a
discrete D-pad down transition from path buttons.

Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-04 12:03:24 +05:00
Codeberg TranslateandBoria138 4debfae5aa Translated using Weblate (Russian)
Code check / Check code (push) Successful in 56s
Check Translations / check-translations (push) Failing after 17s
Currently translated at 100.0% (669 of 669 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-06-04 05:34:30 +00:00
Boria138 36a086129e chore(locale): update
Check Translations / check-translations (push) Failing after 23s
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-04 10:32:26 +05:00
Boria138 912dc2c77e feat: add exe settings favorites tab
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-04 10:31:14 +05:00
Boria138 26f3a35560 fix: move default Wine settings to Wine tab
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-04 10:05:18 +05:00
Boria138 ad8cbb35dc fix: refresh autoinstall status after install
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-04 09:50:21 +05:00
Boria138 612c10595d feat(scripts): automate metainfo updates in bump_ver.py
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-04 09:29:13 +05:00
Boria138 ac3d1045e4 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-04 09:08:51 +05:00
Mikhail Tergoev 363ff0d86e Merge branch 'scripts-specialk'
Code check / Check code (push) Successful in 54s
2026-06-03 20:32:27 +03:00
Mikhail Tergoev fe6b84db56 Merge branch 'scripts-default' 2026-06-03 20:10:19 +03:00
Mikhail Tergoev 02ebc440ec Merge branch 'scripts-wrapper'
Code check / Check code (push) Successful in 55s
2026-06-03 20:07:47 +03:00
Mikhail Tergoev bf6421547d Merge branch 'scripts-winetrics' 2026-06-03 20:02:07 +03:00
Mikhail Tergoev 4679fb7eb0 Merge branch 'scripts-ppdb'
Code check / Check code (push) Successful in 56s
2026-06-03 19:59:20 +03:00
Mikhail Tergoev 5c5d544bc7 Merge branch 'scripts-wayland' 2026-06-03 19:55:25 +03:00
Boria138 a4abeca70d Merge branch 'weblate'
Code check / Check code (push) Successful in 54s
Check Translations / check-translations (push) Successful in 16s
2026-06-03 19:57:59 +05:00
Boria138 bb39b07445 chore: improve exe settings row highlight
Code check / Check code (push) Successful in 57s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-03 10:30:18 +05:00
Boria138 4c27ca8365 chore(locale): update
Code check / Check code (push) Successful in 53s
Check Translations / check-translations (push) Successful in 11s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-02 22:40:02 +05:00
Boria138 8b0eb13d72 chore: remove ppdb cleanup success message from exe settings
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-02 22:39:24 +05:00
Boria138 08ec0773fa feat: support Special K with OptiScaler
Code check / Check code (pull_request) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-02 21:56:56 +05:00
Boria138 52f7c04cff feat: add SpecialK injection support
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-02 21:26:03 +05:00
Boria138 00e20f2165 feat: add default exe Wine and prefix settings
Code check / Check code (pull_request) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-02 20:41:29 +05:00
Codeberg TranslateandBoria138 758c731106 Translated using Weblate (Russian)
Currently translated at 100.0% (668 of 668 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-06-02 07:07:50 +00:00
Boria138 01a82510f2 feat: support launch wrapper in run-after setting
Code check / Check code (pull_request) Successful in 58s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-02 09:48:38 +05:00
Boria138 72daab8cd6 chore: add SLR log only on SLR_DEBUG=1
Code check / Check code (push) Successful in 58s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-01 21:45:57 +05:00
Boria138 a0445d8c45 feat(scripts): added cli to winetricks
Code check / Check code (pull_request) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-01 14:00:50 +05:00
Boria138 343bc12c1e chore(locale): update
Code check / Check code (push) Successful in 54s
Check Translations / check-translations (push) Failing after 22s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-01 11:23:31 +05:00
Boria138 8aff408bda fix: keep autoinstall running after leaving card
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-01 11:23:05 +05:00
Boria138 66586b2a36 fix: prevent MangoHud auto-enable from config
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-01 11:14:09 +05:00
Boria138 3fb6727818 chore(locale): update
Code check / Check code (push) Successful in 55s
Check Translations / check-translations (push) Successful in 11s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-01 10:40:55 +05:00
Boria138 520fa55988 feat(system): add logout and make power actions init agnostic
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-06-01 10:40:14 +05:00
Gitea Actions b34004cff3 chore: update steam apps list 2026-06-01T00:00:46Z 2026-06-01 00:00:46 +00:00
Renovate Bot 2eb8c1f7b6 chore(deps): update archlinux:base-devel docker digest to 2507482
Code check / Check code (push) Successful in 52s
2026-05-31 03:14:21 +00:00
Renovate Bot f36073ee32 chore(deps): pin debian docker tag to 4ae6766
Package Build - AppImage, Arch, Fedora, Debian / Build AppImage (pull_request) Has been skipped
Package Build - AppImage, Arch, Fedora, Debian / Build Fedora RPM (42) (pull_request) Has been skipped
Package Build - AppImage, Arch, Fedora, Debian / Build Fedora RPM (43) (pull_request) Has been skipped
Package Build - AppImage, Arch, Fedora, Debian / Build Fedora RPM (44) (pull_request) Has been skipped
Package Build - AppImage, Arch, Fedora, Debian / Build Debian Package (pull_request) Has been skipped
Code check / Check code (push) Successful in 53s
Package Build - AppImage, Arch, Fedora, Debian / Build Fedora RPM (rawhide) (pull_request) Has been skipped
Package Build - AppImage, Arch, Fedora, Debian / Build Arch Package (pull_request) Has been skipped
Package Build - AppImage, Arch, Fedora, Debian / changes (pull_request) Successful in 13s
Code check / Check code (pull_request) Successful in 55s
2026-05-31 00:01:28 +00:00
Boria138 a258a63c8e fix: migrate shortcuts using current launcher mode
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-30 20:16:17 +05:00
Boria138 def3fe27f8 feat: appimage shortcut migration and steam scripts update
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-30 18:47:37 +05:00
Boria138 45fd7da18a fix: backspace in folder rename dialog
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-30 18:33:34 +05:00
Boria138 6afce40576 fix: create folders in parent directory
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-30 18:30:15 +05:00
Boria138 c2f45736db fix: use AppImage scripts for silent launch
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-30 10:29:13 +05:00
Boria138 4f3fdb621e fix: select MangoHud conf from flatpak home config first
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-30 10:08:51 +05:00
Boria138 e40e9811cf fix: stabilize Steam shortcut launch wrappers
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-30 10:08:51 +05:00
Codeberg TranslateandBoria138 d1bfab6c7c Translated using Weblate (Russian)
Check Translations / check-translations (pull_request) Successful in 16s
Code check / Check code (pull_request) Successful in 54s
Check Translations / check-translations (push) Successful in 14s
Code check / Check code (push) Successful in 53s
Currently translated at 100.0% (667 of 667 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-05-29 13:53:57 +00:00
Boria138 4f8929da40 fix: filter network shares from mounted drives
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-29 09:37:36 +05:00
Boria138 4b0b613659 chore: fix autoFullscreenGamepad settings style
Code check / Check code (push) Successful in 57s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-28 13:08:49 +05:00
Boria138 0802e7852f chore(build): fix typo on arch
Code check / Check code (push) Successful in 1m31s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-28 10:17:30 +05:00
Boria138 4a03d803f4 chore(locale): added Belarusian po template
Check Translations / check-translations (push) Successful in 10s
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-28 10:14:07 +05:00
Boria138 4271461282 chore(locale): update
Code check / Check code (push) Successful in 55s
Check Translations / check-translations (push) Successful in 11s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-28 10:08:45 +05:00
Boria138 f4477101cc chore(mangohud): fix typo
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-28 10:07:57 +05:00
Boria138 0dc11ecd3c feat(input): use SDL3 for gamepad type detection
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-28 09:58:00 +05:00
Boria138 3248392e78 chore(locale): update
Check Translations / check-translations (push) Failing after 20s
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-27 21:30:57 +05:00
Boria138 9468c3f286 feat(settings): return gamepad type setting
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-27 21:27:22 +05:00
Boria138 c826153ddf fix: repair native Wayland launch setup
Code check / Check code (pull_request) Successful in 53s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-27 20:47:24 +05:00
Boria138 f2b80604cb feat(mangohud): added display_server to PortProton preset
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-27 20:35:32 +05:00
Boria138 dd61c72a3a fix: copy ppdb templates and fix runtime game path
Code check / Check code (pull_request) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-27 19:15:44 +05:00
Boria138 36a36ad7d2 fix: load bundled terminal color schemes
Code check / Check code (push) Successful in 57s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-27 19:00:47 +05:00
Boria138 03ada79e88 fix: improve installed autoinstall handling
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-27 15:30:07 +05:00
Boria138 20444bc3d1 feat: add drag and drop restore for ppack backups
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-27 15:02:34 +05:00
Boria138 ae89b5a0fb ci: merge package build workflows
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-27 12:11:16 +05:00
Boria138 3372bb58ba fix: pass Steam launch options to games
Code check / Check code (push) Successful in 57s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-27 12:03:09 +05:00
Boria138 200b257622 fix: launch Steam games via detected client type
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-27 12:03:09 +05:00
VanoMJ 0b8ef53cdd ci: build Debian package
Build Check - AppImage, Arch, Fedora, Debian / changes (pull_request) Successful in 14s
Build Check - AppImage, Arch, Fedora, Debian / Build AppImage (pull_request) Has been skipped
Build Check - AppImage, Arch, Fedora, Debian / Build Fedora RPM (42) (pull_request) Has been skipped
Build Check - AppImage, Arch, Fedora, Debian / Build Fedora RPM (43) (pull_request) Has been skipped
Build Check - AppImage, Arch, Fedora, Debian / Build Fedora RPM (44) (pull_request) Has been skipped
Build Check - AppImage, Arch, Fedora, Debian / Build Fedora RPM (rawhide) (pull_request) Has been skipped
Build Check - AppImage, Arch, Fedora, Debian / Build Debian Package (pull_request) Successful in 2m39s
Code check / Check code (push) Successful in 55s
Code check / Check code (pull_request) Successful in 54s
Build Check - AppImage, Arch, Fedora, Debian / Build Arch Package (pull_request) Has been skipped
2026-05-26 21:42:23 +03:00
Boria138 41aea94fff fix: detect Steam directory via .steam symlink
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-26 21:48:35 +05:00
Boria138 0a4cb81906 fix: add missing .cmd launch support
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-26 21:05:54 +05:00
Boria138 1743c69261 feat: add hidden time display mode
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-26 20:57:35 +05:00
Boria138 d0d1dff778 bump to 1.1.0 (hotfix)
Build AppImage, Arch and Fedora Packages / Build Fedora RPM (43) (push) Successful in 1m3s
Build AppImage, Arch and Fedora Packages / Build Fedora RPM (rawhide) (push) Successful in 1m20s
Code check / Check code (push) Successful in 54s
Build AppImage, Arch and Fedora Packages / Build AppImage (push) Successful in 6m53s
Build AppImage, Arch and Fedora Packages / Build Fedora RPM (44) (push) Successful in 1m9s
Build AppImage, Arch and Fedora Packages / Create and Publish Release (push) Successful in 17s
Build AppImage, Arch and Fedora Packages / Build Arch Package (push) Successful in 2m8s
Build AppImage, Arch and Fedora Packages / Build Fedora RPM (42) (push) Successful in 1m9s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-26 11:48:45 +05:00
Boria138 07e07dbe09 chore(locale): update
Check Translations / check-translations (push) Successful in 10s
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-26 11:44:38 +05:00
Boria138 004916a82b fix: filter invalid GPU entries in settings
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-26 11:44:15 +05:00
Codeberg TranslateandBoria138 ae2115ad0a Translated using Weblate (Russian)
Check Translations / check-translations (push) Successful in 15s
Code check / Check code (push) Successful in 55s
Currently translated at 100.0% (665 of 665 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-05-26 06:33:50 +00:00
Boria138 357a0dcf42 chore(locale): update
Check Translations / check-translations (push) Failing after 20s
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-26 11:31:45 +05:00
Boria138 e5df48b9b0 chore: move gamepad fullscreen option in settings
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-26 11:31:10 +05:00
Boria138 48217b93f5 feat: validate PORT_DATA_PATH read-write access
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-26 11:27:29 +05:00
Boria138 cc2372107a feat: add version-based download counter
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-26 11:12:26 +05:00
Boria138 a32d63f5e5 refactor: centralize script D-Bus calls
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-26 10:58:35 +05:00
Boria138 cbf29005ff fix: remove obsolete PROGRAMS prefix
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-26 10:35:39 +05:00
Boria138 8d10bae8f2 fix: avoid duplicate library refresh
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 21:42:38 +05:00
Boria138 28d0417ede chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 21:32:47 +05:00
Boria138 7efb0aadec fix: reset PortProton user config from CLI
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 21:18:17 +05:00
Boria138 d4d7e9c044 fix: always show pinned prefixes
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 21:15:06 +05:00
Boria138 eb18178958 fix: reset PortProton user config with app settings
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 21:10:51 +05:00
Boria138 979e208969 fix: update PortProton dependency progress from live output
Code check / Check code (push) Successful in 57s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 21:03:32 +05:00
Boria138 8704ba00e9 fix: keep Wine settings tab populated without dist directory
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 20:31:58 +05:00
Mikhail Tergoev d9d8242475 add check write access to the game directory
Code check / Check code (push) Successful in 55s
2026-05-25 18:12:59 +03:00
Codeberg TranslateandBoria138 64e626b2b2 Translated using Weblate (Russian)
Check Translations / check-translations (push) Successful in 17s
Code check / Check code (push) Successful in 53s
Currently translated at 100.0% (664 of 664 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-05-25 05:14:31 +00:00
Boria138 8af84460eb fix: improve library toolbar focus navigation
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 10:03:38 +05:00
Boria138 b7e83ad1d2 fix: handle gamepad fullscreen startup
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 09:56:21 +05:00
Boria138 ffff6efa68 fix: keep Wine and LG builds in dist
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 09:46:53 +05:00
Boria138 fabf14fc46 chore(localization): update
Code check / Check code (push) Successful in 53s
Check Translations / check-translations (push) Failing after 22s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 09:35:55 +05:00
Boria138 88db436b94 fix: keep mouse emulation available after launcher start
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 09:35:18 +05:00
Boria138 592d24c9c6 ui: depersonalize interface by using generic terminology
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 09:02:54 +05:00
Boria138 c472c785cc feat(ui): add quick launch button
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 08:45:03 +05:00
Boria138 759e931dfc ui: remove redundant tab titles
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 08:30:01 +05:00
Boria138 93f5ea49d4 chore(build): replace steam compat
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-25 08:15:04 +05:00
Mikhail Tergoev d9c55bed61 Merge branch 'main' of git.linux-gaming.ru:Linux-Gaming/PortProtonQt
Code check / Check code (push) Successful in 55s
2026-05-24 21:35:19 +03:00
Mikhail Tergoev 64bbabd0f1 fix auto update compat tools 2026-05-24 21:33:59 +03:00
Boria138 c3e9433f9d fix: defer empty library refresh until window shows
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 17:26:48 +05:00
Boria138 c4274bbef6 fix: restore legacy squashfs via easyterm
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 17:20:59 +05:00
Boria138 cdfd983580 fix: avoid prefix restore on theme restart
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 17:13:44 +05:00
Boria138 749113b48c fix: use classic autoinstall covers for list themes
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 15:03:05 +05:00
Boria138 5fdba88c5c fix: refresh empty library after silent launch
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 14:54:30 +05:00
Boria138 a20887da5b fix: refresh library after all PortProton shortcut creation
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 14:44:40 +05:00
Boria138 c9b8871fb1 fix: fallback to exe icon when cover download fails
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 14:38:48 +05:00
Boria138 6db27ef7af feat: add GUI support for bat msi reg launch files
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 14:25:55 +05:00
Boria138 97de53303c fix: force 96 DPI on prefix initialization
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 11:02:59 +05:00
Simple16 07ac67e934 Updating the Russian localization
Check Translations / check-translations (push) Successful in 15s
Code check / Check code (push) Successful in 51s
2026-05-24 05:27:33 +00:00
Simple16 66e1e437f8 Updating the Russian localization 2026-05-24 05:27:33 +00:00
Boria138 12c98adbd7 fix: resolve pyright type errors in wine_extractor, downloader, and prefix_backup
Code check / Check code (push) Successful in 53s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 10:27:14 +05:00
Boria138 d7de29008e fix(deps): update python dependencies
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 10:21:03 +05:00
Boria138 4d99a66e84 chore: finally migrate custom data to https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt-Custom-Metadata
Code check / Check code (push) Successful in 53s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 09:55:35 +05:00
Simple16 288242195b Updating the English localization
Code check / Check code (push) Successful in 56s
Code check / Check code (pull_request) Successful in 56s
2026-05-24 09:26:37 +05:00
Boria138 892124efba fix: normalize Proton dist hyphen spacing
Code check / Check code (push) Successful in 54s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-24 03:24:49 +00:00
Renovate Bot ae7bd3e5ff fix(deps): update dependency dbus-fast to v5
Code check / Check code (push) Successful in 56s
2026-05-24 03:19:56 +00:00
Renovate Bot 042b90d663 chore(deps): update ghcr.io/renovatebot/renovate:latest docker digest to 47421f2
Code check / Check code (pull_request) Successful in 55s
Code check / Check code (push) Successful in 57s
2026-05-24 00:00:43 +00:00
Boria138 4fdaf0115e feat: rework prefix backups with libarchive progress UI
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-23 16:31:16 +00:00
Boria138 b00f62776c feat: add svg cover image support
Code check / Check code (push) Successful in 57s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-23 21:29:43 +05:00
Boria138 69674b5c75 fix: check moved Python files in meson hook
Code check / Check code (push) Successful in 58s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-23 21:14:37 +05:00
Boria138 eaa3467410 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-23 21:07:19 +05:00
Boria138 47a949fe6e chore(scripts): fix easyterm location
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-23 20:41:22 +05:00
Mikhail Tergoev 8902369fe7 fix create desktop and choose ppdb for setup-msi
Code check / Check code (push) Successful in 57s
2026-05-23 16:41:08 +03:00
Mikhail Tergoev c0529ac9fd move easyterm to scripts_utils 2026-05-23 13:49:36 +03:00
Mikhail Tergoev a9ed377b00 add runner terminal function: python_term 2026-05-23 13:40:08 +03:00
Mikhail Tergoev bc523762b6 add runner python3 function: python_module 2026-05-23 13:20:50 +03:00
Boria138 2f5159129c fix: include check_variables defaults in --show-ppdb output
Code check / Check code (push) Successful in 59s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-23 14:10:47 +05:00
Boria138 eef8c7d496 chore(locale): rm zh_Hans
Code check / Check code (push) Successful in 55s
Check Translations / check-translations (push) Successful in 13s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-23 11:08:38 +05:00
Boria138 64cad59d53 chore(locale): rename zh_Hans to zh_CN for glibc compatibility
Code check / Check code (push) Successful in 57s
Check Translations / check-translations (push) Failing after 17s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-23 11:03:51 +05:00
Boria138 cc8e7fa515 bump to 1.0
Build AppImage, Arch and Fedora Packages / Build Fedora RPM (rawhide) (push) Successful in 1m18s
Code check / Check code (push) Successful in 54s
Build AppImage, Arch and Fedora Packages / Create and Publish Release (push) Successful in 31s
Build AppImage, Arch and Fedora Packages / Build Fedora RPM (43) (push) Successful in 1m7s
Build AppImage, Arch and Fedora Packages / Build Arch Package (push) Successful in 1m12s
Build AppImage, Arch and Fedora Packages / Build Fedora RPM (44) (push) Successful in 1m11s
Build AppImage, Arch and Fedora Packages / Build AppImage (push) Successful in 6m27s
Build AppImage, Arch and Fedora Packages / Build Fedora RPM (42) (push) Successful in 1m9s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-23 09:24:09 +05:00
Boria138 8865def11e fix: trigger build workflow on v tags
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-23 09:20:55 +05:00
Boria138 69f3d087b3 chore(locale): update
Code check / Check code (push) Successful in 55s
Check Translations / check-translations (push) Successful in 13s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-23 09:04:29 +05:00
Boria138 39c9e0e7ee Revert "feat: add container terminal tool"
This reverts commit fb7e5b4c0c.
2026-05-23 09:04:03 +05:00
Codeberg TranslateandBoria138 bdc486f695 Translated using Weblate (Russian)
Check Translations / check-translations (push) Successful in 17s
Code check / Check code (push) Successful in 55s
Currently translated at 100.0% (661 of 661 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-05-22 18:55:36 +00:00
Boria138 385a2b3535 chore(changelog): added a simplified chinese translator from Codeberg Translate
Code check / Check code (push) Successful in 53s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 23:52:48 +05:00
Codeberg TranslateandPoesty Li f740ef1a53 Translated using Weblate (Chinese (Simplified Han script))
Check Translations / check-translations (push) Failing after 15s
Code check / Check code (push) Successful in 56s
Currently translated at 100.0% (661 of 661 strings)

Added translation using Weblate (Chinese (Simplified Han script))

Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Poesty Li <poesty7450@gmail.com>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/zh_Hans/
Translation: PortProtonQt/PortProtonQt
2026-05-22 18:39:46 +00:00
Boria138 b78f838ffd chore(locale): update
Code check / Check code (push) Successful in 56s
Check Translations / check-translations (push) Successful in 11s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 23:39:38 +05:00
Boria138 36ca8a6b86 fix: translate folder delete confirmation buttons
Code check / Check code (push) Successful in 55s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 23:28:10 +05:00
Boria138 fb7e5b4c0c feat: add container terminal tool
Code check / Check code (push) Successful in 58s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 23:09:58 +05:00
Boria138 c3235ed7d0 fix: keep settings tabs populated on first startup
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 22:44:10 +05:00
Boria138 5676daa573 fix: support dbus-fast 2.x bluetooth annotations
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 20:12:19 +05:00
Codeberg TranslateandBoria138 fba71245ef Translated using Weblate (Russian)
Check Translations / check-translations (push) Successful in 16s
Code check / Check code (push) Successful in 54s
Currently translated at 100.0% (661 of 661 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-05-22 14:31:32 +00:00
Renovate Bot 8c2b80c97e chore(deps): update https://gitea.com/actions/setup-node digest to 48b55a0
Code check / Check code (push) Has been cancelled
2026-05-22 14:30:09 +00:00
Renovate Bot dbab969bd7 chore(deps): update archlinux:base-devel docker digest to 6db772f
Build Check - AppImage, Arch, Fedora / Build AppImage (pull_request) Has been skipped
Build Check - AppImage, Arch, Fedora / Build Fedora RPM (42) (pull_request) Has been skipped
Build Check - AppImage, Arch, Fedora / Build Fedora RPM (43) (pull_request) Has been skipped
Code check / Check code (push) Has been cancelled
Build Check - AppImage, Arch, Fedora / changes (pull_request) Successful in 16s
Code check / Check code (pull_request) Successful in 56s
Build Check - AppImage, Arch, Fedora / Build Fedora RPM (44) (pull_request) Has been skipped
Build Check - AppImage, Arch, Fedora / Build Fedora RPM (rawhide) (pull_request) Has been skipped
Build Check - AppImage, Arch, Fedora / Build Arch Package (pull_request) Has been skipped
2026-05-22 14:29:39 +00:00
Boria138 a8c273c7f1 chore: relax Renovate update restrictions
Code check / Check code (push) Successful in 56s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 19:27:43 +05:00
Boria138 1bfdf82770 chore(locale): update
Code check / Check code (push) Successful in 56s
Check Translations / check-translations (push) Failing after 45s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 18:01:34 +05:00
Boria138 3645b7828b chore: rename MangoHud PortProton preset
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 18:01:05 +05:00
Boria138 1b72223930 feat: adjust file explorer default bookmarks
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 17:58:02 +05:00
Boria138 8268b95b53 chore(changelog): added a Spanish translator from Codeberg Translate
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 17:38:17 +05:00
Boria138 0477e065f2 chore(changelog): update
Code check / Check code (push) Successful in 1m18s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 13:36:56 +05:00
Boria138 5d027a9c8a fix: make JSON cache writes atomic
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 13:33:32 +05:00
Boria138 fbda9ae455 remove muvm launch support
Code check / Check code (push) Successful in 1m19s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 12:22:34 +05:00
Boria138 e34ae0642d chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 12:17:57 +05:00
Boria138 0f28fa8474 refactor: move power profile control to Python
Code check / Check code (push) Successful in 1m15s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 07:15:26 +00:00
Boria138 41f24c9cbc feat(scripts): reuse python functions for icons and shortcuts
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 07:15:26 +00:00
Codeberg TranslateandBoria138 e11a1e1a93 Translated using Weblate (Russian)
Code check / Check code (push) Successful in 1m12s
Check Translations / check-translations (push) Successful in 21s
Currently translated at 100.0% (661 of 661 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-05-22 07:12:07 +00:00
Boria138 b8c1d8595f chore(locale): update
Code check / Check code (push) Successful in 1m17s
Check Translations / check-translations (push) Failing after 22s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 12:10:34 +05:00
Boria138 4096bd541c feat: replace Xterm to own term
Code check / Check code (push) Successful in 1m27s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 06:53:14 +00:00
Boria138 8c934f5875 feat: add PortProton downloads mirror setting
Code check / Check code (push) Successful in 1m13s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 08:26:26 +05:00
Boria138 3a82a5859b fix: filter unsupported Wine versions for Steam games
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-22 08:15:03 +05:00
Mikhail Tergoev 8305d6ed65 add support portproton variables for steamplay
Code check / Check code (push) Successful in 1m10s
2026-05-22 01:43:13 +03:00
Mikhail Tergoev 2b863718f4 fix steamplay without ppdb file 2026-05-22 01:37:45 +03:00
Mikhail Tergoev c5bdc0db28 update PROTON_LG to 10-30 (work with steam)
Code check / Check code (push) Successful in 1m10s
2026-05-21 21:23:46 +03:00
Mikhail Tergoev 74e4b9e747 Merge branch 'main' of git.linux-gaming.ru:Linux-Gaming/PortProtonQt 2026-05-21 21:07:25 +03:00
Mikhail Tergoev e15df2eebb add variable: PW_USE_WOW64 2026-05-21 21:07:05 +03:00
Codeberg TranslateandBoria138 c3a02ed71d Translated using Weblate (Russian)
Check Translations / check-translations (push) Failing after 21s
Code check / Check code (push) Successful in 1m11s
Currently translated at 99.6% (657 of 659 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-05-21 10:44:33 +00:00
Boria138 4efc5caac9 chore(locale): update
Check Translations / check-translations (push) Failing after 23s
Code check / Check code (push) Successful in 1m12s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-21 15:41:33 +05:00
Boria138 57a87594af feat: add ppack prefix backup MIME integration
Code check / Check code (push) Successful in 1m13s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-21 11:31:04 +05:00
Boria138 6157d58d83 chore: use squashfs-tools from plugins
Code check / Check code (push) Successful in 1m16s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-21 05:18:17 +00:00
Boria138 c085c31005 chore: use xterm from plugins
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-21 05:18:17 +00:00
Boria138 863bec41a0 chore(settings): move download options from appearance
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-21 05:18:17 +00:00
Boria138 dc721cc697 feat: added disable runtime download settings
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-21 05:18:17 +00:00
Boria138 e8521a6a98 fix: enable portable gamemode auto preload
Code check / Check code (push) Successful in 1m15s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-21 05:14:18 +00:00
Boria138 acc4818266 changed: refresh library after prefix backup restore
Code check / Check code (push) Successful in 1m4s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-20 23:02:58 +05:00
Boria138 70685e0f45 Revert "fix: open prefix backup dialog in prefixes directory"
Code check / Check code (push) Successful in 1m11s
This reverts commit a7f5e0dfe9.
2026-05-20 22:34:52 +05:00
Boria138 a7f5e0dfe9 fix: open prefix backup dialog in prefixes directory
Code check / Check code (push) Failing after 4s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-20 22:31:47 +05:00
Boria138 a0bd1f73d6 feat: add prefix backup icons to file explorer
Code check / Check code (push) Successful in 1m9s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-20 22:22:55 +05:00
Boria138 352420cdf8 refactor: move Qt screen helpers to qt_utils
Code check / Check code (push) Successful in 1m12s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-20 14:47:53 +05:00
Boria138 b0da061a29 feat: add clickable tab navigation arrows
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-20 14:34:04 +05:00
Boria138 27d1ccf7a8 fix: keep compact badges sharp and aligned
Code check / Check code (push) Successful in 1m18s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-20 09:51:26 +05:00
Boria138 3847da55ab refactor: require dbus-fast imports directly
Code check / Check code (push) Successful in 1m26s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-19 21:03:35 +05:00
Boria138 3e1e032618 fix: keep theme SVG icons sharp when UI is scaled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-19 21:03:35 +05:00
Boria138 a0c5b33114 chore(build): finish migrate to Linux-Gaming
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-19 21:03:35 +05:00
Boria138 46cedbc934 fix: keep empty run-after exe value unchanged
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-19 21:03:34 +05:00
Dervart c7669a3c42 fix: compress screenshots
Code check / Check code (push) Failing after 30s
Code check / Check code (pull_request) Successful in 1m8s
2026-05-19 08:55:32 +07:00
Boria138 589d2e6d5f feat: support relative paths for second exe
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-18 15:18:35 +05:00
Boria138 da681007c9 fix: remove APNG FPS limit
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-18 10:16:00 +05:00
Boria138 f8fa900a22 feat: configure theme variants via metainfo
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-18 09:54:09 +05:00
Boria138 30c3882b65 feat: add configurable tray menu modes
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-17 19:58:50 +05:00
Boria138 527b0c1af0 feat: add tray tab switching
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-17 19:43:55 +05:00
Boria138 1016a864ed feat: add CLI cache and settings reset commands
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-17 19:36:40 +05:00
Boria138 951503c48b changed: hide MangoHud controls for system config
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-17 19:31:45 +05:00
Boria138 451d57a6d2 feat: add PPDB clear button to exe settings
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-17 14:07:04 +05:00
Boria138 392f24f244 feat: add open Steam game folder action to context menu
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-17 11:05:26 +05:00
Boria138 b44ff8bbb6 docs: add prepare_env.sh and update setup instructions in README
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-17 10:23:27 +05:00
Boria138 97a348585f fix: hide GPU settings section for single-GPU systems
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-17 09:59:31 +05:00
Boria138 ef8ee4a821 fix: skip GPU override on single-GPU systems
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-16 23:19:05 +05:00
Boria138 b831742277 fix(image_utils): verify png format for animated covers
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-16 15:33:53 +05:00
Boria138 c1a45747e9 chore(steam): block PW_USE_INHIBIT_SLEEP (steam use own inhibit)
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-16 13:54:10 +05:00
Boria138 4e40460ba2 chore(steam): block PW_USE_INHIBIT_SLEEP (steam use own inhibit)
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-16 13:37:51 +05:00
Boria138 b66841e8b7 fix: resolve Steam Play Proton runner lookup
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-16 13:21:59 +05:00
Boria138 4d34c24cdf chore(build): added python3-pillow-qt to Fedora
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-16 11:16:16 +05:00
Boria138 65bc286494 chore(appimage): fix typo
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-15 22:51:12 +05:00
Boria138 cb91b41b46 chore(appimage): libqwebp.so
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-15 22:50:06 +05:00
Boria138 c24aec0e40 fix: bundle WebP Qt image plugin in AppImage
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-15 22:47:29 +05:00
Boria138 54271548ec fix: keep AppImage runtime libraries in sync
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-15 22:13:00 +05:00
Boria138 a9552a3c1b chore(build): make pefile explicit
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-15 15:58:34 +05:00
Boria138 88c30025de fix: refresh detail layout after HLTB load
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-15 11:50:15 +05:00
Boria138 1aac62b647 Revert "adapt detail page between full and compact modes"
This reverts commit 08131ea53f.
2026-05-15 11:47:43 +05:00
Boria138 08131ea53f adapt detail page between full and compact modes
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-15 11:13:02 +05:00
Boria138 2666159375 reduce HEAD cache files
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-15 10:59:37 +05:00
Boria138 3515ad0ac5 fix: update HowLongToBeat search API
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-15 10:57:20 +05:00
Boria138 0875896e45 fix: remove downloader network preflight checks
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-15 10:30:51 +05:00
Boria138 4f406cc966 chore: show source badges regardless of display filter
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-15 10:26:27 +05:00
Boria138 f9e0081fd6 Improve MDF to ISO sector conversion
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 22:39:27 +05:00
Boria138 bc4ba2169d fix: add missing RPM packaged files
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 22:22:43 +05:00
Boria138 cfc05c2017 chore: remove redundant defaults for APP_COMMIT and APP_VERSION
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 20:47:27 +05:00
Boria138 55fba9260e build: include commit hash in nightly version
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 20:32:34 +05:00
Boria138 ebc480883a fix: read runtime status from PortProton var.log
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 18:39:33 +05:00
Boria138 3548a48b8a chore: drop scripts version from PortProtonQt log
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 18:03:40 +05:00
Boria138 cdf36315f1 chore(pre-commit): improve meson file inclusion checks
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 17:28:57 +05:00
Boria138 6b9e33e1f1 chore(build): added conf and img
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 17:24:34 +05:00
Dervart 4bcfd1ae65 fix: set frameless popup with translucent background for context menu view to eliminate color underlay 2026-05-14 11:48:24 +00:00
Dervart aeb74ea38d fix: set frameless popup with translucent background for combobox view to eliminate color underlay 2026-05-14 11:48:24 +00:00
Boria138 7b8127679c fix: stop pending PortProton launch process group
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 16:30:25 +05:00
Boria138 1364164524 chore: route keyboard shortcuts through pygame keys
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 15:38:26 +05:00
Boria138 0339906d4c dev-scripts: call extract_strings in l10n.py only with --update-all
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 10:56:14 +05:00
Codeberg TranslateandBoria138 38881b93c2 Translated using Weblate (Russian)
Currently translated at 100.0% (650 of 650 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-05-14 05:48:44 +00:00
Codeberg Translateandgallegonovato b16bd492af Translated using Weblate (Spanish)
Currently translated at 5.0% (33 of 649 strings)

Co-authored-by: gallegonovato <gallegonovato@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/es/
Translation: PortProtonQt/PortProtonQt
2026-05-14 10:42:58 +05:00
Boria138 afcfef4d03 chore localization update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 10:23:29 +05:00
Boria138 92ba82ae63 feat: add Steam Wine download target setting
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 10:22:49 +05:00
Boria138 832eb97597 feat: add Steam game desktop and menu shortcuts
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 10:06:24 +05:00
Boria138 ab2596b6e8 fix: prefer portrait Steam covers over capsules
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-14 09:25:11 +05:00
Boria138 7377ec64a8 chore: centralize desktop Exec target parsing
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-13 14:43:43 +05:00
Boria138 3503a72db0 chore: rebuild vk_gpu_info on Debian 11
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-13 11:34:27 +05:00
Boria138 803845d9e0 fix: deduplicate GPUs in vk_gpu_info output
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-13 11:25:10 +05:00
Boria138 a1b3712305 fix: restore gamepad support in PPDB file picker
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-13 10:20:50 +05:00
Boria138 2ce7eab624 fix: resume gamepad polling after focus returns
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-12 20:50:59 +05:00
Boria138 1b48890b0e chore: prepare to release
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-12 20:46:15 +05:00
Boria138 bef746596f feat: split theme family and variant selection
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-12 19:07:43 +05:00
Boria138 aa55d183d6 feat: inherit theme resources via THEME_INHERITS
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-12 18:39:11 +05:00
Dervart 56f7d37841 fix: themes adjust hint bar height 2026-05-12 13:21:45 +00:00
Dervart 8060c93e9e fix: standart-light theme remove unneeded style files 2026-05-12 13:21:45 +00:00
Dervart 4b820a831c fix: standart theme new screenshots 2026-05-12 13:21:45 +00:00
Dervart 3961927998 fix: standart theme nav bar look with standart-light theme 2026-05-12 13:21:45 +00:00
Dervart 883f3df205 fix: standart theme unified detail page look with standart-light theme 2026-05-12 13:21:45 +00:00
Dervart b20c3d270f fix: classic theme remove unneeded styles and make dependable by standart-light 2026-05-12 13:21:45 +00:00
Dervart 958a61752b feat: add standart-light theme 2026-05-12 13:21:45 +00:00
Dervart 43912fd002 fix: classic-light theme, add all styles to make it independent 2026-05-12 13:21:45 +00:00
Dervart c4cfdee072 fix: classic-light theme, add screenshots and return steam badge 2026-05-12 13:21:45 +00:00
Dervart c45f9d197c fix: classic-light theme, remove unneeded icons 2026-05-12 13:21:45 +00:00
Dervart d154011b2d feat: classic-light theme 2026-05-12 13:21:45 +00:00
Boria138 e98f4353a3 chore(cli): drop legacy flatpak from compatibility tool oops
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-12 14:29:18 +05:00
Boria138 fcea437edf fix: keep legacy PortProton shortcut launch support
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-12 13:41:38 +05:00
Boria138 582ed38c15 chore: pin default prefix entries at top
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-12 13:21:25 +05:00
Boria138 40e6b40bd9 fix: handle custom data for shortcut actions
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-12 13:14:36 +05:00
Mikhail Tergoev 39435bacb8 add variable: PW_USE_WOW64 2026-05-11 17:26:14 +03:00
Mikhail Tergoev 6349b2dfec fix: use PROTON_LG for GamesVoice 2026-05-11 17:09:09 +03:00
Dervart e58b6aa912 fix: styles for standart theme detail page when in economy mode 2026-05-11 17:17:46 +07:00
Boria138 b8e220bea1 chore: drop search_label from settings_dialog
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-11 13:35:45 +05:00
Boria138 17e78ac592 fix(ui): eliminate excessive empty space in compact detail page
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-11 11:48:30 +05:00
Boria138 2af942e7c9 fix(ui): improve layout and alignment in compact detail page
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-11 11:39:49 +05:00
Boria138 61bceca3dd chore: hide magohud and gamescope settings if disabled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-11 10:30:40 +05:00
Boria138 f010dd123a chore: drop Success QMessageBox from settings dialog
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-10 20:57:45 +05:00
Boria138 8b080ebc65 chore: drop disable gamepad polling on inactive
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-10 20:57:44 +05:00
Dervart ffef9b5145 fix: return unnecessary removed comment 2026-05-10 20:59:20 +07:00
Dervart 65b94b02e8 fix: set expanding policy for title frame to match cover height 2026-05-10 20:49:29 +07:00
Boria138 aac34b89f2 feat: refactor disc image logic and improve MDF conversion support
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-10 14:19:35 +05:00
Simple16 65c81fa7ea Fixing the translation of PPQt settings to Russian 2026-05-10 12:42:03 +05:00
Simple16 004f9139b6 Fixing the translation of PPQt settings to Russian 2026-05-10 12:36:40 +05:00
Dervart 4091fd0382 fix: adjust hint bar 2026-05-10 13:53:59 +07:00
Dervart f85e71ea7d feat: add window resize by dragging bottom-right corner 2026-05-10 13:49:31 +07:00
Boria138 0d4a8905ce chore: drop status and progress bar
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-10 11:15:53 +05:00
Dervart 70dea7c447 fix: adjust autoSizeButtonPadding for classic theme 2026-05-10 06:00:30 +00:00
Dervart 6ffa04bfac fix: remove hardcoded Height add class to action buttons 2026-05-10 06:00:30 +00:00
Dervart 510da6b95f fix: change class for QLabel hints 2026-05-10 06:00:30 +00:00
Boria138 230003fde2 feat: add dragging support for dialogs
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-10 10:59:27 +05:00
Boria138 3231f89a9e fix: gamepad polling regression after 42b5a356f8
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-10 10:52:55 +05:00
Boria138 a67db553ec fix: always start_minimized on --resolution
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-10 10:50:02 +05:00
Boria138 154ac922b1 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-10 10:25:41 +05:00
Boria138 3322bb571c fix: keep --resolution launches minimized to tray
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-10 10:22:23 +05:00
Dervart 1674efb26d classic theme: change screenshots for detail page 2026-05-09 18:09:12 +00:00
Dervart 845f7c5714 classic theme: smaller add game and refresh buttons 2026-05-09 18:09:12 +00:00
Dervart b507ca432e themes: file manager and add game dialog fixes 2026-05-09 18:09:12 +00:00
Dervart e7185cafa9 themes: add constant AutoSizeButton padding 2026-05-09 18:09:12 +00:00
Dervart cb38008519 classic theme: adjust action buttons height 2026-05-09 18:09:12 +00:00
Dervart 53e45a2265 classic theme: detail page compact layout styles 2026-05-09 18:09:12 +00:00
Dervart 4e400f95a0 fix: change main window minimum width 2026-05-09 18:09:12 +00:00
Dervart 53f250548b fix: rename PortProton Settings tab name 2026-05-09 18:09:12 +00:00
Dervart c5cfa30dce classic theme: if detail page layout mode = compact, the back button is not created 2026-05-09 18:09:12 +00:00
Dervart 799ec4a473 fix: classic_theme exe settings QTableWidget::item height 2026-05-09 18:09:12 +00:00
Boria138 a6abc3ccb9 feat: rework and clean tray
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 22:22:16 +05:00
Boria138 a0144fc8fc fix: handle missing icon data from pefile
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 20:16:09 +05:00
Boria138 f3bdb5e74b feat: replace icoextract to own module
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 20:10:23 +05:00
Boria138 6567ac3431 fix imports
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 16:57:16 +05:00
Boria138 b3c322c6be feat(scripts): added PW_FORCE_SYSTEM_DPI
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 11:51:09 +00:00
Boria138 47cbe6b0df feat(scripts): added stop autoinstall
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 11:50:59 +00:00
Boria138 f5304de50f refactor: simplify screensaver inhibition
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 11:50:53 +00:00
Boria138 949edeb0aa fix(scripts): return dgvoodoo to var
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 11:50:44 +00:00
Boria138 1d4a65def7 feat(scripts): support external wine versions
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 11:50:36 +00:00
Boria138 4fd493f961 fix: make gamemode setup init-agnostic
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 11:50:11 +00:00
Boria138 ef7ccb4755 perf(scripts): speed up Unity game detection
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 11:50:00 +00:00
Boria138 2086f29d5b feat(portwine_db): added alawar games
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 11:49:45 +00:00
Mikhail Tergoev f70cacef0a add copy .conf files 2026-05-09 13:57:16 +03:00
Mikhail Tergoev 4dc76ca5c5 add conf files from PP 2026-05-09 13:44:57 +03:00
Boria138 a3a4a606ad fix: handle MDF images without autorun fallback
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 10:37:55 +05:00
Boria138 208abcce1b chore: improve compact detail page layout
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 10:23:43 +05:00
Boria138 ce3962f27c fix: skip MDF conversion for ISO 9660 images
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-09 08:30:57 +05:00
Boria138 0f01ecafde fix: use plain QWidget for game library root
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-08 21:43:20 +05:00
Boria138 ce709cc078 feat: generate missing PortProton exe icons on startup
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-08 13:00:13 +05:00
Boria138 42b5a356f8 perf: reduce background activity when inactive
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-08 12:28:58 +05:00
Boria138 66be4780c8 feat: add mdf disc image launch support
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-08 10:30:12 +05:00
Boria138 09293ad254 feat: add theme style inheritance
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-08 10:04:10 +05:00
Simple16 23c4b662d6 Replacing icons for the classic theme 2026-05-07 23:18:07 +05:00
Boria138 2f8d9acc7f fix: prefer classic autoinstall covers in list mode
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-07 21:24:43 +05:00
Boria138 055e4e48da feat: add tray game stop action
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-07 21:13:14 +05:00
Boria138 e22f747c79 feat: add themed detail page layout mode
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-07 11:16:26 +05:00
Boria138 30306d0021 fix: detect root filesystem for PortProton data path
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-07 11:04:33 +05:00
Boria138 eadc1c199b chore(classic): returned back button to it
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-07 10:33:26 +05:00
Dervart a8a445b712 classic_theme: add screenshots 2026-05-07 05:02:26 +00:00
Dervart f58ccc6499 classic_theme: add screenshots 2026-05-07 05:02:26 +00:00
Dervart d29153debe fix: for 2e183f9c24 hide back button in classic theme. did not pass pyright test 2026-05-07 05:02:26 +00:00
Dervart 2e1d1818e1 classic theme: edit search field min-height again 2026-05-07 05:02:26 +00:00
Dervart 261c48a3db classic theme: optional - if the theme is "classic", the back button is not created on the detail page 2026-05-07 05:02:26 +00:00
Dervart 7ad81309cf themes: add font to staus bar chunk 2026-05-07 05:02:26 +00:00
Dervart eca7cd9d11 themes: unify mangohud/gamescope settings look 2026-05-07 05:02:26 +00:00
Dervart 3384be6745 pre-commit fixes 2026-05-07 05:02:26 +00:00
Dervart 524e49175a classic theme: mangohud QGroupBox style 2026-05-07 05:02:26 +00:00
Dervart 61cfd86138 classic theme: mangohud QGroupBox style 2026-05-07 05:02:26 +00:00
Dervart 45461461fd themes: mangohud add spacing constatns 2026-05-07 05:02:26 +00:00
Dervart 4ae371e3e8 themes: add style to mangohud On/Off buttons 2026-05-07 05:02:26 +00:00
Dervart e0b9f16795 themes: add constants for columns and Vertical spacing checkbox layout 2026-05-07 05:02:26 +00:00
Dervart 7db774fd9e fix: mangohud settings center checkbox layout 2026-05-07 05:02:26 +00:00
Dervart a72a8c45ab fix: remove hardcoded setMinimumHeight parameters for elements from mangohud settings 2026-05-07 05:02:26 +00:00
Dervart 801cc9e7e5 themes: add Wine settings page spacing constant 2026-05-07 05:02:26 +00:00
Dervart af92f4aa34 fix: classic theme settings title style 2026-05-07 05:02:26 +00:00
Dervart 88e724d879 themes: add constants for PortProton settings page 2026-05-07 05:02:26 +00:00
Dervart 51eb8afda0 help ): test constants 2026-05-07 05:02:26 +00:00
Dervart 0ae9bad01d themes: add font to status bar 2026-05-07 05:02:26 +00:00
Dervart 77f703ff38 themes: add max-height to hints bar 2026-05-07 05:02:26 +00:00
Dervart d0f21ee67c fix: pre-commit 2026-05-07 05:02:26 +00:00
Dervart 6c9b5dbc76 classic theme: smaller tab names for exe settings 2026-05-07 05:02:26 +00:00
Dervart e7985e351c classic theme: smaller table and combobox style 2026-05-07 05:02:26 +00:00
Dervart e1554132a9 classic theme: smaller nav buttons 2026-05-07 05:02:26 +00:00
Dervart aee583561a classic theme: addgame and search field change background 2026-05-07 05:02:26 +00:00
Dervart b6a1a3b325 classic theme: gamecard smaller buttons 2026-05-07 05:02:26 +00:00
Boria138 6159882b7a fix: restore WebP animated cover palette background
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-06 09:21:31 +05:00
Boria138 07fa91b448 perf: optimize animated cover rendering and cleanup
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-06 09:10:57 +05:00
Boria138 40450c829e chore(agents): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-06 08:57:03 +05:00
Boria138 d4efb499ad fix: optimize file explorer image previews
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-06 08:54:17 +05:00
Boria138 4d2465a5d2 feat: add APNG cover support
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-06 08:40:03 +05:00
Mikhail Tergoev cbcd3e45aa fix laptop with nvidia for Alt Linux 2026-05-05 22:15:28 +03:00
Boria138 ad43008d4c feat: support WebP, GIF and JXL covers
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-05 22:33:20 +05:00
Boria138 207504b2e1 chore localization update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-05 11:52:25 +05:00
Boria138 1e0a966e26 ci: limit code build triggers and update Fedora matrix
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-05 11:38:45 +05:00
Boria138 ff66219d51 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-04 21:33:12 +05:00
Boria138 e8bef95a38 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-04 21:24:00 +05:00
Boria138 924a50f49f chore: log PortProton scripts source
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-04 21:17:18 +05:00
Boria138 90334d3955 packaging: add scripts runtime dependencies
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-04 13:28:16 +05:00
Simple16 476cf5b34f Updating the Russian translation 2026-05-03 08:13:18 +00:00
Boria138 b3362e72cc fix: release pygame controller while game is running
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-03 09:57:19 +05:00
Boria138 261663379d chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-03 09:32:59 +05:00
Dervart cdd227be6f feat: drag frameless window with left mouse button anywhere 2026-05-02 15:36:35 +00:00
Boria138 6891e2cd2d chore(agents): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-02 19:55:19 +05:00
Boria138 66671ec8a4 Fix Steam compatibility tool launch path detection for Flatpak installs.
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-02 14:32:10 +05:00
Boria138 91a2a815ab chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-02 14:26:13 +05:00
Dervart b5039cd5ca fix: page scroll over combobox no longer blocked 2026-05-02 14:18:00 +05:00
Boria138 a81f2dbaa7 Revert "fix PW_WINE_USE on log"
This reverts commit 41908a851a.
2026-05-02 14:17:54 +05:00
Boria138 81671edff3 fix: prioritize LG wine builds on sorting
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-02 11:26:11 +05:00
Boria138 3d6ec69cf4 fix: show LG Wine aliases with resolved versions
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-02 11:20:36 +05:00
Boria138 41908a851a fix PW_WINE_USE on log
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-02 10:59:11 +05:00
Boria138 d27c0ed187 fix: remove duplicate debug log variables
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-02 10:42:03 +05:00
Boria138 0ad04b5670 chore: added Fedora 44 builds and drop Fedora 41
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-01 21:34:29 +05:00
Dervart 87eea13f3b fix for commit #27a86bae07 add spacing for scrollbar on portproton_settings page 2026-05-01 21:43:16 +07:00
Dervart 15483f56c5 pre-commit fix 2026-05-01 19:42:17 +07:00
Dervart ad828a3dfc standart theme: remove background for disabled checkbox container 2026-05-01 18:59:16 +07:00
Dervart 27a86bae07 standart theme: add spacing for scrollbar on portproton_settings page 2026-05-01 18:29:58 +07:00
Dervart dd5af74e8f standart theme: remove border-radius for detail_page background 2026-05-01 18:15:58 +07:00
Dervart bb2edcd5f2 standart theme: add min-height to search field 2026-05-01 17:18:03 +07:00
Dervart 6afb39c3bd classic theme: styles for library and card backgrounds 2026-05-01 17:06:44 +07:00
Dervart 85b0c5dcb0 game_card: add left/right padding for icon and label to self.list_layout 2026-05-01 15:45:05 +07:00
Boria138 a65551a5f1 fix: show launch dependency setup status
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-01 10:40:16 +05:00
Gitea Actions 6672cfa3af chore: update steam apps list 2026-05-01T00:01:45Z 2026-05-01 00:01:46 +00:00
Boria138 2fb58fc929 fix: block PortProton data path on filesystems without symlink support
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-01 00:41:18 +05:00
Boria138 1685d8e672 chore: disable tray minimize by default
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-01 00:21:11 +05:00
Boria138 9c99dc7b35 fix: align autoinstall list cover cropping
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-01 00:14:44 +05:00
Boria138 8b2c925e7b fix: restore grid card size sliders
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-05-01 00:10:00 +05:00
Boria138 15f0b076e3 chore: temporary drop EGS integration U/C
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-30 18:46:20 +05:00
Boria138 b13869cb6a fix: align autoinstall tab with library view
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-30 11:35:22 +05:00
Boria138 9e2e4585f0 fix: smooth detail page cover loading
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-30 11:13:19 +05:00
Boria138 b9af6578c3 fix: smooth tab switching between library and autoinstall
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-30 11:01:11 +05:00
Boria138 0f1e14b7da feat: mark cards with missing executables
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-29 20:54:20 +05:00
Boria138 be69bcfb46 feat: migrate to new FLATPAK_ID
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-29 20:12:11 +05:00
Boria138 5416e919fc docs: clarify CLI completion update workflow for agents
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-27 14:50:51 +05:00
Boria138 a304c9eaa1 feat: add --silent exe launch mode
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-27 14:48:37 +05:00
Boria138 b0e11679c6 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-27 14:42:01 +05:00
Boria138 3cdd1eb4f5 feat: split animations module and add new UI animation modes
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-27 14:26:46 +05:00
Boria138 15faff3218 refactor(config): fully remove legacy config layer
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-26 21:21:17 +05:00
Mikhail Tergoev 17a1597dec fix wine re-upload 2026-04-26 18:20:56 +03:00
Mikhail Tergoev b5f19b932f add check portdata_path from PortProtonQt.conf 2026-04-26 18:00:41 +03:00
Mikhail Tergoev 22304ede65 Merge branch 'scripts-melon' into scripts 2026-04-26 17:28:31 +03:00
Boria138 fa2e15e3cb chore(AGENTS): drop SPDX
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-26 18:38:15 +05:00
Boria138 1561c44cd9 chore: drop screensaver inhibit from pygame
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-26 18:09:21 +05:00
Boria138 cac38d20eb fix: avoid gamepad None race in monitoring loop
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-26 17:44:40 +05:00
Boria138 7c8fbb93fb fix: always prefer current repo start.sh for env Exec
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-26 16:04:08 +05:00
Boria138 d961ffa231 refactor: rewrite gamepad input around pygame
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-26 13:21:32 +05:00
Boria138 9e9e38fec2 chore(todo): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-25 16:52:04 +05:00
Boria138 5f5c1042c9 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-25 16:50:34 +05:00
Boria138 1650302a26 fix: avoid redundant network requests with local metadata cache
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-25 16:26:00 +05:00
Boria138 0d3106aa29 fix: enable virtual keyboard slide animation globally
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-25 11:02:15 +05:00
Boria138 9f7498fd04 fix: enable Steam flows in economy mode without cover downloads
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-25 10:57:58 +05:00
Boria138 9aeeebcf82 feat(file-explorer): add folder actions
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-25 10:49:27 +05:00
Boria138 911540ccfe fix: enable context menu in port data path dialog
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-24 22:47:53 +05:00
Boria138 d01ca79ce2 feat(scripts): added fix for MelonLoader
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-24 19:53:22 +05:00
Boria138 536273bc56 Revert "fix(system): add PipeWire backend detection and pw-cli node parsing"
This reverts commit 934edc09a6.
2026-04-24 17:02:40 +05:00
Boria138 cad8444dbc fix(audio): show PipeWire output candidates in playback list
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-23 23:30:23 +05:00
Boria138 475f3c465e fix: avoid UI freeze when bluetooth adapter is missing
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-23 23:16:28 +05:00
Boria138 809086fed2 chore(appimage): deploy scripts in data_dir
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-23 22:01:44 +05:00
Boria138 369b329eec chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-23 21:42:01 +05:00
Boria138 8c8b0522fc chore(appimage): install PKGBUILD optdepends in build script
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-23 21:32:13 +05:00
Boria138 934edc09a6 fix(system): add PipeWire backend detection and pw-cli node parsing
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-23 21:26:55 +05:00
Boria138 1ebababba7 chore(build): drop unused build_i586_req_dummy
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-23 16:45:13 +05:00
Boria138 12c2e1b187 Merge branch 'scripts' 2026-04-23 16:13:31 +05:00
Boria138 b4508ff8a6 fix: fail pre-commit on CRLF shebang in script DB files
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-23 16:03:37 +05:00
Boria138 c8710cb778 chore: rename classic autoinstalls covers
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-23 11:10:54 +05:00
Boria138 18f8ffa3e8 fix: fallback autoinstall icons in economy mode
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-23 10:57:43 +05:00
Boria138 0a82312d98 fix: extract PORT_DATA_PATH selector and bootstrap gamepad UI 2026-04-23 10:34:44 +05:00
Boria138 bd1208e54f chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-23 00:04:32 +05:00
Boria138 428f7eadc5 feat: allow selecting PortProton data folder
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-22 23:44:50 +05:00
Codeberg TranslateandBoria138 03ab9ad489 Translated using Weblate (Russian)
Currently translated at 100.0% (658 of 658 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-04-22 18:16:16 +00:00
Boria138 8714849b00 chore(localization): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-22 23:14:40 +05:00
Boria138 aff95eba9e chore(build): package scripts too
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-22 23:13:30 +05:00
Boria138 5af4f580b1 fix: support PortProton scripts in Flatpak and AppImage layouts
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-22 23:08:16 +05:00
Boria138 fed5b46a0a Merge branch 'scripts' 2026-04-22 23:04:01 +05:00
Dervart a20260e421 Fix extra empty space in QComboBox dropdown by setting min-height on list items 2026-04-22 22:16:18 +07:00
Boria138 ffc0b04699 refactor(scripts): drop locale/vulkaninfo/xrandr/gamescope/glxinfo
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-22 12:42:23 +05:00
Boria138 2a7405b246 fix: rename standart badge icons and hide overflowing badges on list themes
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-22 12:20:39 +05:00
Mikhail Tergoev cce0958f44 fix PW_GPU_USE disabled in settings and harden vulkan ext check 2026-04-21 22:44:12 +03:00
Mikhail Tergoev d0a84b610e drop ... 2026-04-21 22:21:53 +03:00
Boria138 392b66fce2 feat: simplify detail page in economy mode and harden UI updates
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-21 23:42:46 +05:00
Boria138 77b182797a Merge branch 'main' into scripts 2026-04-21 23:24:04 +05:00
Boria138 3aef1db0c2 fix(settings): show description tooltip only when clipped
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-21 23:23:19 +05:00
Boria138 df6c0bb46e feat(theme): add configurable card stripe/fill hover styles
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-21 23:01:09 +05:00
Boria138 db171e6d52 chore: start of make classic theme
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-21 20:26:46 +05:00
Boria138 2277cf807a chore(renovate): drop automerge
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-21 19:30:39 +05:00
Boria138 8349db3c10 chore: update code to Qt 6.11
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-21 19:22:52 +05:00
Renovate Bot 86055b86c7 fix(deps): update python dependencies 2026-04-21 14:16:31 +00:00
Mikhail Tergoev 3e895b55ad return DISABLE_EDIT_DB_LIST 2026-04-21 12:03:42 +03:00
Mikhail Tergoev 70c011632e fix update ppdb file 2026-04-21 11:38:09 +03:00
Mikhail Tergoev 598194c4a2 add PW_GPU_USE=disabled for user.conf 2026-04-21 11:16:43 +03:00
Mikhail Tergoev d70a3eeae4 rename start-stop portwine to portproton 2026-04-21 04:07:06 +03:00
Mikhail Tergoev 272a32895b yad no more! 2026-04-21 03:49:40 +03:00
Mikhail Tergoev baad92d97c move update gamescope args to pw_init_db 2026-04-21 03:11:12 +03:00
Mikhail Tergoev e50ca1f0da drop yad from gui_proton_downloader 2026-04-21 02:18:22 +03:00
Mikhail Tergoev 4a0d2d4ab6 add PORT_IMG_PATH variable 2026-04-21 01:55:47 +03:00
Mikhail Tergoev ad0af96600 add notify svg 2026-04-21 01:48:41 +03:00
Mikhail Tergoev cf9243e67e fix error masages 2026-04-21 01:45:23 +03:00
Mikhail Tergoev b2705c4ed7 drop legacy variables 2026-04-21 01:12:37 +03:00
Mikhail Tergoev 069cb781a6 closer interaction with ppqt 2026-04-21 01:11:28 +03:00
Mikhail Tergoev a86dee1008 replace PW_USER_TEMP to PORT_WINE_TMP_PATH 2026-04-21 01:09:30 +03:00
Mikhail Tergoev 4f003b6108 drop find and update ppdb functions 2026-04-21 00:21:26 +03:00
Mikhail Tergoev c8badbcf65 move base functions to cli case 2026-04-21 00:05:33 +03:00
Mikhail Tergoev f7a33d64ce global cleanup of scripts again 2026-04-20 23:42:18 +03:00
Mikhail Tergoev 707fd261d5 drop legacy emulators scripts 2026-04-20 22:39:19 +03:00
Renovate Bot 2a9f67ec75 chore(deps): update archlinux:base-devel docker digest to c528201 2026-04-20 18:09:37 +00:00
Renovate Bot 8ea369a20a chore(deps): update ghcr.io/renovatebot/renovate:latest docker digest to 2ccc5b1 2026-04-20 05:35:40 +00:00
Renovate Bot 7de1efaf97 chore(config): migrate config renovate.json 2026-04-20 05:24:06 +00:00
Boria138 9f63dd4925 chore: try to return renovate
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-20 10:17:23 +05:00
Boria138 88aa056a18 Merge branch 'main' into scripts 2026-04-20 09:50:11 +05:00
Boria138 b606965d9f chore: migrate links and CI refs to Linux-Gaming repo
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-20 09:48:17 +05:00
Boria138 3739d1f7e0 chore: migrate custom_data to Linux-Gaming/PortProtonQt-Custom-Metadata repo
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-19 20:26:28 +05:00
Boria138 c02a64f5bf fix: stop games via PortProton CLI instead of force kill
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-19 18:08:06 +05:00
Boria138 cd7bf7ba1e feat: enforce LG dist versions
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-19 17:13:48 +05:00
Boria138 8e964823f9 refactor: unify scripts path resolution and remove duplicate helpers
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-19 17:09:25 +05:00
Boria138 0e80f60ac7 fix: resolve autoinstall dir from start.sh
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-19 16:53:03 +05:00
Mikhail Tergoev f4cca57a1a add CLI: --stop 2026-04-19 13:43:32 +03:00
Mikhail Tergoev bb64c6d2cd again, and again global cleanup of scripts 2026-04-19 13:33:00 +03:00
Mikhail Tergoev 2774c67b7f global cleanup of scripts again 2026-04-19 11:14:58 +03:00
Mikhail Tergoev 2420c53c25 firt work without PP 2026-04-19 11:00:27 +03:00
Boria138 8e6a338575 feat: resolve PortProton scripts from repo or system paths
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-19 12:13:38 +05:00
Mikhail Tergoev 2999eeeb97 second global cleanup of scripts 2026-04-18 20:43:28 +03:00
Mikhail Tergoev 8543698099 first global cleanup of scripts 2026-04-18 19:17:21 +03:00
Mikhail Tergoev c4081f1933 add scripts from PortWINE (PortProton) 2026-04-18 16:58:06 +03:00
Boria138 d76f06d0b6 fix: use Annotated DBus signatures in bluetooth agent
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-17 15:36:08 +05:00
Boria138 945b8ca24e fix: drop dbus-fast annotations from bluetooth agent
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-17 14:56:46 +05:00
Boria138 300c08626b bump to 0.1.12
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-17 12:52:08 +05:00
Boria138 c573f45337 chore localization update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-16 18:30:37 +05:00
Boria138 4321d215ea chore(settings): drop PW_USE_SAREK_ASYNC
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-16 18:29:55 +05:00
Boria138 662f0bf494 fix(polkit): allow ppqtos child nmcli for VPN import
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-16 14:01:02 +05:00
Boria138 75f216ca6c chore(agents): added sign and license rule
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-16 12:21:48 +05:00
Boria138 c462925477 chore(localization): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-16 12:09:57 +05:00
Boria138 2a34b08a0a chore(system): drop scan from Wi-Fi
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-16 11:47:10 +05:00
Boria138 33fd22af23 chore(system): replace Wi-Fi show hide text to icon
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-16 11:42:57 +05:00
Boria138 a7d43068ed fix(system): migrate to dbus and drop bluetoothctl
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-16 11:34:43 +05:00
Boria138 d522ece132 fix(system): fix bluetooth with passkey
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-16 09:38:10 +05:00
Codeberg TranslateandBoria138 dab39e2821 Translated using Weblate (Russian)
Currently translated at 100.0% (662 of 662 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-04-15 13:31:23 +00:00
Codeberg TranslateandBoria138 d7121db730 Translated using Weblate (Russian)
Currently translated at 100.0% (662 of 662 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-04-15 13:27:49 +00:00
Boria138 4a44d95055 I forget update po oops
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-15 18:25:53 +05:00
Boria138 ae084974dd refactor: trim system i18n keys and simplify UI labels
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-15 18:24:17 +05:00
Codeberg TranslateandBoria138 1cb7d08479 Translated using Weblate (Russian)
Currently translated at 99.3% (660 of 664 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-04-15 13:17:26 +00:00
Boria138 980fb964b7 refactor: reduce i18n scope for system tab and managers
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-15 18:00:22 +05:00
Boria138 7aa3b04ff4 chore(locale): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-15 13:58:50 +05:00
Boria138 68829bc00b chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-15 13:34:36 +05:00
Boria138 71a8ebd89a feat: added system tab with wifi and bluetooth
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-15 08:31:20 +00:00
Boria138 b17575dece fix: open launch file via IPC in existing app instance
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-13 10:29:48 +05:00
Boria138 60135211e5 feat: fix stop icon after wine download during launch
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-12 17:37:31 +05:00
Boria138 082be63f7d fix: parse MangoHud and Gamescope toggles from PPDB 2026-04-12 13:57:40 +05:00
Boria138 fc5572a262 fix: prevent badge overlay on app startup
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-09 22:51:11 +05:00
Boria138 ab67e9bf4e fix: allow hidden badge_view_mode from ui config
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-09 22:41:28 +05:00
Codeberg TranslateandBoria138 a7ae3b834f Translated using Weblate (Russian)
Currently translated at 100.0% (619 of 619 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-04-09 16:27:09 +00:00
Boria138 00b0c0fdfc feat: Add hidden badge mode
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-09 21:24:24 +05:00
Boria138 cf46e3b67f feat: Add Steam compat tool toggle to settings
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-09 21:13:46 +05:00
Boria138 044abe9543 fix: reorder MangoHud Actions section above Presets
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-09 18:27:20 +05:00
Boria138 07da5368b2 chore(build): added dummy dependency linker for ALT Linux
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-09 13:01:14 +05:00
Codeberg TranslateandBoria138 f40b93b6ed Translated using Weblate (Russian)
Currently translated at 100.0% (617 of 617 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-04-08 15:47:09 +00:00
Boria138 4db56869d1 fix: avoid /dev/stdout in autoinstall log
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-08 20:43:33 +05:00
Boria138 0e782b3463 feat: refine MangoHud preset sections
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-08 20:36:55 +05:00
Boria138 9bc1760107 fix: enlarge and center compact badge icons at 1.5x
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-08 20:10:49 +05:00
Boria138 ce6a28c2d9 fix: use anticheat slug for AWACY links and cache refresh
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-08 17:49:35 +05:00
Boria138 a8dfc19b04 chore: drop default WINE button in wine settings tab
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-07 09:29:52 +05:00
Boria138 8e87c2183c Revert "fix: correct gamepad face button mapping"
This reverts commit 5beec85ee8.
2026-04-07 09:20:28 +05:00
Boria138 5070f1fdc7 fix: refresh library grid after game card deletion
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-07 09:17:27 +05:00
Boria138 5beec85ee8 fix: correct gamepad face button mapping
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-06 18:52:22 +05:00
Boria138 a964b2882e fix: restore library loading after fast cli launch
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-05 18:07:25 +05:00
Boria138 14c5b0406a fix: detect bluetooth gamepad scroll axis
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-04 20:34:40 +05:00
Boria138 0adc218908 fix: update GameCard Property declarations for PySide6
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-04 09:47:37 +05:00
Boria138 ccdf79f89f fix(settings): block PW_USE_SAREK_ASYNC for Steam games
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-03 14:38:54 +05:00
Boria138 650653399b fix(settings): block D3D Extras and return EAC for Steam games
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-03 10:16:31 +05:00
Boria138 ad565ea3e5 fix(settings): block Galium Nine for Steam games
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-02 20:03:47 +05:00
Boria138 771fc8990a fix(settings): block EAC and BE runtime for Steam games
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-02 19:54:40 +05:00
Boria138 e8cc1f919e fix: remove runtime ExeSettingsDialog cast in Gamescope settings
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-02 19:06:02 +05:00
Boria138 9a6a83db23 fix: remove runtime ExeSettingsDialog cast in MangoHud settings
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-02 19:03:56 +05:00
Boria138 4f823d4ebc refactor: move MangoHud layout section below switches
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-02 18:54:37 +05:00
Boria138 28d3333269 fix: preserve toggle settings order in dialog
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-02 18:46:48 +05:00
Boria138 4bce23b83c chore(locale): add localized comments to desktop file
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-02 12:26:07 +05:00
Codeberg TranslateandBoria138 471a9c1099 Translated using Weblate (Russian)
Currently translated at 100.0% (621 of 621 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-04-02 05:41:04 +00:00
Boria138 a291c54e14 feat: add toggle buttons for MangoHud and Gamescope in settings
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-02 10:37:50 +05:00
Boria138 53bc799e4f refactor: reorder toggle settings in logical groups
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-02 09:17:25 +05:00
Boria138 b48fbd3383 fix: normalize Gamescope args before change detection
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-02 00:07:55 +05:00
Boria138 91b434a5d9 chore(data): drop unneded now linux-gaming_topics
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-04-01 11:26:53 +05:00
Gitea Actions ac1ed68b86 chore: update steam apps list 2026-04-01T00:01:47Z 2026-04-01 00:01:48 +00:00
Boria138 50f1fbd1d6 fix: remove deprecated AST node usage in theme checks
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-31 20:38:50 +05:00
Boria138 fa93eacd3a rework blocked check style
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-31 20:34:10 +05:00
Boria138 1f72d6edb6 Revert "fix(theme-security): harden custom theme loading and validation"
This reverts commit 605b80850f.
2026-03-31 19:05:52 +05:00
Boria138 605b80850f fix(theme-security): harden custom theme loading and validation
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-30 21:52:01 +05:00
Boria138 78d04a7a5f Reapply "fix: improve theme fallbacks for preloader and custom themes"
This reverts commit 02ab53c996.
2026-03-30 21:10:55 +05:00
Boria138 007713f1be chore: drop renovate i'm too lazy for fix rate limit
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-30 10:23:41 +05:00
Boria138 a28465fd7f fix: simplify file URI handling in CLI path normalization
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-30 10:13:41 +05:00
Boria138 21696eea9b feat(settings): add custom preset buttons for Gamescope
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-29 19:06:02 +05:00
Boria138 4d732c8f22 fix(cli): support file:// URIs from pcmanfm for launch files
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-29 19:02:23 +05:00
Boria138 8cee173ed2 feat: add remove Steam compat tool CLI flag 2026-03-29 16:15:33 +05:00
Boria138 02ab53c996 Revert "fix: improve theme fallbacks for preloader and custom themes"
This reverts commit 04ca284807.
2026-03-29 15:27:06 +05:00
Boria138 04ca284807 fix: improve theme fallbacks for preloader and custom themes
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-29 15:20:55 +05:00
Boria138 c12e1996cb feat(cli): add reinstall option to shell completions
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-28 23:51:38 +05:00
Boria138 76e922a431 feat(cli): added --reinstall-steam-compat-tool
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-28 23:45:40 +05:00
Codeberg TranslateandBoria138 51e903e961 Translated using Weblate (Russian)
Currently translated at 100.0% (615 of 615 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
Translation: PortProtonQt/PortProtonQt
2026-03-28 17:34:27 +00:00
Codeberg TranslateandBoria138 052a804c14 Translated using Weblate (Spanish)
Currently translated at 1.3% (8 of 615 strings)

Co-authored-by: Boria138 <boria138@noreply.codeberg.org>
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/es/
Translation: PortProtonQt/PortProtonQt
2026-03-28 17:34:27 +00:00
Boria138 f2a2013ba7 chore: clean MangoHud preview warnings ignore
Code check / Check code (push) Successful in 1m10s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-28 20:16:55 +05:00
Boria138 0f394b8974 Translated using Weblate (Russian)
Code check / Check code (push) Successful in 1m12s
Check Translations / check-translations (push) Failing after 16s
Currently translated at 100.0% (617 of 617 strings)

Translation: PortProtonQt/PortProtonQt
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
2026-03-28 14:42:47 +00:00
Boria138 a1817abe65 chore(localization): unify
Code check / Check code (push) Has been cancelled
Check Translations / check-translations (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-28 19:42:25 +05:00
Boria138 1a48635582 chore(localization): simplify Mangohud preview error text
Code check / Check code (push) Successful in 1m9s
Check Translations / check-translations (push) Failing after 18s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-28 19:32:22 +05:00
Boria138 183dbb8253 Translated using Weblate (Russian)
Code check / Check code (push) Successful in 1m14s
Check Translations / check-translations (push) Failing after 17s
Currently translated at 100.0% (614 of 614 strings)

Translation: PortProtonQt/PortProtonQt
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
2026-03-28 14:27:45 +00:00
Boria138 d2f21aa585 chore(changelog): update
Code check / Check code (push) Has been cancelled
Check Translations / check-translations (push) Failing after 17s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-28 19:27:13 +05:00
Boria138 eb6e4dcb40 feat: add default WINE button in wine settings tab
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-28 19:25:56 +05:00
Boria138 a1f2913e88 feat(mangohud): added preview
Check Translations / check-translations (push) Failing after 18s
Code check / Check code (push) Successful in 1m9s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-28 17:45:51 +05:00
Boria138 841da7eed0 feat(settings): block gstreamer/runtime/dgvoodoo2 for Steam games
Code check / Check code (push) Successful in 1m13s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-28 12:33:51 +05:00
Boria138 bb1f3ba1ee chore(changelog): update
Code check / Check code (push) Successful in 1m10s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-28 10:53:58 +05:00
Boria138 a3b9e8b5e1 fix: make virtual keyboard width responsive
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-28 10:49:58 +05:00
Boria138 c7f3ee79bb fix(input_manager): resolve combobox tab-switch regression from 169ff00
Code check / Check code (push) Successful in 1m9s
2026-03-27 21:41:32 +05:00
Boria138 2aab2b0286 chore(changelog): update
Code check / Check code (push) Successful in 1m7s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-27 20:56:39 +05:00
Boria138 ca3fd2947a refactor: remove screenshot captions
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-27 20:54:56 +05:00
Boria138 627d708e81 fix: keep PPQt settings tab active after save
Code check / Check code (push) Successful in 1m10s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-27 20:04:12 +05:00
Boria138 513c9872da Revert "fix: drop from Steam LD_LIBRARY_PATH only curl"
Code check / Check code (push) Successful in 1m9s
This reverts commit 26aa44c0d4.
2026-03-27 12:44:27 +05:00
Boria138 26aa44c0d4 fix: drop from Steam LD_LIBRARY_PATH only curl
Code check / Check code (push) Successful in 1m9s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-26 21:18:15 +05:00
Boria138 53664b2ab7 fix: lock 3D Api field in Steam game settings
Code check / Check code (push) Successful in 1m9s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-25 16:15:45 +05:00
Boria138 6e07e56741 Translated using Weblate (Russian)
Check Translations / check-translations (push) Successful in 20s
Code check / Check code (push) Successful in 1m9s
Currently translated at 100.0% (612 of 612 strings)

Translation: PortProtonQt/PortProtonQt
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
2026-03-25 06:57:34 +00:00
Boria138 dd22838e25 chore: drop PPQT_GUI
Code check / Check code (push) Successful in 1m8s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-24 20:49:20 +05:00
Boria138 fa721ad84c fix(locales): update only entries
Check Translations / check-translations (push) Failing after 17s
Code check / Check code (push) Successful in 1m4s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-24 10:53:27 +05:00
Boria138 8a1a1582a2 fix: lock prefix field in Steam game settings
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-24 10:45:12 +05:00
Boria138 4a2649a33d chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-24 10:41:36 +05:00
Boria138 cd39183e47 fix: replace Steam Add Game button with Open Game Folder
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-24 10:39:16 +05:00
Boria138 de004667d4 chore(changelog): update
Check Translations / check-translations (push) Successful in 18s
Code check / Check code (push) Successful in 1m2s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-23 23:53:36 +05:00
Boria138 8c0f8bb657 feat: add MangoHud system config export button
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-23 23:53:04 +05:00
Boria138 ae8c264da7 fix: dont unset ld preload
Code check / Check code (push) Successful in 1m8s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-23 20:51:28 +05:00
Boria138 b1f5b001b2 chore: Prefer 7zz over 7z when extracting ISO files.
Code check / Check code (push) Successful in 1m3s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-23 19:33:16 +05:00
Boria138 cf80c92a5d fix: replace udisks ISO flow with pure 7z extraction
Code check / Check code (push) Successful in 1m2s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-23 19:25:46 +05:00
Boria138 2c1cd96e43 chore(build): added udisks2 dep for ISO mount
Code check / Check code (push) Successful in 1m4s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-23 18:33:55 +05:00
Boria138 ca0293474b chore(changelog): update
Code check / Check code (push) Successful in 1m4s
Check Translations / check-translations (push) Successful in 18s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-23 18:23:07 +05:00
Boria138 3408d71003 feat: add ISO launch support
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-23 18:21:26 +05:00
Boria138 4a0378686d fix: start from steam
Code check / Check code (push) Successful in 1m4s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-23 12:53:39 +05:00
Boria138 30ddac4cab chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-23 10:56:49 +05:00
Boria138 cb2c3baf10 fix: resolve .desktop lookup via custom_data metadata
Code check / Check code (push) Successful in 1m4s
2026-03-23 10:35:53 +05:00
Boria138 bf65f451d1 chore(changelog): update
Code check / Check code (push) Successful in 1m2s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 22:27:54 +05:00
Boria138 7a02b6b666 fix: resolve stats by exact exe path and clean on delete
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 22:27:48 +05:00
Boria138 0b5013df2b chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 21:08:00 +05:00
Boria138 2e7a977fec fix: refresh tray submenus on tray menu open
Code check / Check code (push) Successful in 1m6s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 21:06:49 +05:00
Boria138 dc0a402113 fix: sync autostart checkbox with desktop file presence
Code check / Check code (push) Successful in 1m0s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 17:13:03 +05:00
Boria138 d53a5f7ce9 fix: prioritize custom/steam/sgdb/exe cover on CLI launch
Code check / Check code (push) Successful in 1m2s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 16:56:19 +05:00
Boria138 b0b1bf2fcb chore(localization): compile locales after extract
Code check / Check code (push) Successful in 1m4s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 16:32:44 +05:00
Boria138 7de71798b9 chore(build): fix locales generate
Code check / Check code (push) Successful in 1m5s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 16:18:02 +05:00
Simple16 39e92cf437 Translated using Weblate (Russian)
Check Translations / check-translations (push) Failing after 29s
Code check / Check code (push) Successful in 1m9s
Currently translated at 100.0% (609 of 609 strings)

Translation: PortProtonQt/PortProtonQt
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
2026-03-22 09:54:54 +00:00
Boria138 d7071c84e7 Translated using Weblate (Spanish)
Currently translated at 0.6% (4 of 609 strings)

Translation: PortProtonQt/PortProtonQt
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/es/
2026-03-22 09:54:54 +00:00
Boria138 4dcd845978 fix: use direct venv binary in xdg autostart Exec
Code check / Check code (push) Failing after 27s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 14:54:29 +05:00
Boria138 4dcf257a38 i18n: reduce Weblate conflicts in l10n updates
Check Translations / check-translations (push) Failing after 33s
Code check / Check code (push) Failing after 35s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 14:24:51 +05:00
Boria138 9782de831b Translated using Weblate (Russian)
Code check / Check code (push) Failing after 31s
Check Translations / check-translations (push) Failing after 31s
Currently translated at 100.0% (609 of 609 strings)

Translation: PortProtonQt/PortProtonQt
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/
2026-03-22 09:08:17 +00:00
Boria138 4d367abcc5 chore(localization): drop mo for avoid weblate conflict
Code check / Check code (push) Failing after 34s
Check Translations / check-translations (push) Failing after 42s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 14:02:44 +05:00
Boria138 ced8e6a2b9 chore(localization): fix dev script
Check Translations / check-translations (push) Failing after 42s
Code check / Check code (push) Failing after 39s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 13:51:12 +05:00
Boria138 72821f1ac6 chore(localization): update pot
Code check / Check code (push) Failing after 26s
Check Translations / check-translations (push) Failing after 39s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-22 09:56:33 +05:00
Boria138 a46959f7db Revert "chore(localization): add initial es AI translate for test Codeberg sync"
This reverts commit 813275a049.
2026-03-22 09:55:19 +05:00
Boria138 31f28eba1e fix: route autoinstall process output to stdout
Code check / Check code (push) Failing after 35s
renovate / renovate (push) Failing after 1m6s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-21 20:47:25 +05:00
Boria138 33f26f9559 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-21 19:23:35 +05:00
Boria138 28884e56c1 feat: add xdg autostart and start-in-tray settings
Code check / Check code (push) Failing after 37s
2026-03-21 19:18:17 +05:00
Boria138 9bdbbb6b30 fix: handle clicked bool in run-after exe selector
Code check / Check code (push) Failing after 39s
2026-03-21 12:58:20 +05:00
Boria138 24eb968371 chore(changelog): update
Code check / Check code (push) Failing after 30s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-21 12:19:14 +05:00
Boria138 89090409a4 feat: add PW_RUN_AFTER_EXE picker in exe settings 2026-03-21 12:17:04 +05:00
Boria138 813275a049 chore(localization): add initial es AI translate for test Codeberg sync
Check Translations / check-translations (push) Failing after 42s
Code check / Check code (push) Failing after 29s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-20 22:16:42 +05:00
Boria138 674bcec476 build: add Codeberg Translate url to metainfo
Code check / Check code (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-20 14:08:39 +05:00
Boria138 4210f43130 docs: add Codeberg Translate widget and update localization guide
Code check / Check code (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-20 14:04:53 +05:00
Boria138 7518e948e7 chore(localization): fix weblate checks
Code check / Check code (push) Has been cancelled
Check Translations / check-translations (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-20 13:49:45 +05:00
Boria138 1543b3b42b chore(localization): update
Code check / Check code (push) Has been cancelled
Check Translations / check-translations (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-20 13:39:34 +05:00
Boria138 5a9bd455e1 chore(tranlations): drop unneded tranlate
Code check / Check code (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-20 13:38:44 +05:00
Boria138 239ace42c9 Translated using Weblate (Russian)
Code check / Check code (push) Has been cancelled
Check Translations / check-translations (push) Has been cancelled
Currently translated at 100.0% (605 of 605 strings)

Translation: PotrtProtonQt/PortProtonQt
Translate-URL: https://translate.codeberg.org/projects/potrtprotonqt/portprotonqt/ru/
2026-03-20 08:30:57 +00:00
Boria138 6c43289c85 Translated using Weblate (Spanish)
Code check / Check code (push) Has been cancelled
Check Translations / check-translations (push) Has been cancelled
Currently translated at 0.3% (2 of 605 strings)

Translation: PortProtonQt/PortProtonQt
Translate-URL: https://translate.codeberg.org/projects/portprotonqt/portprotonqt/es/
2026-03-20 07:27:08 +00:00
Simple16 ca32ce4e25 Boria138 small fib about translations. Updating the translation
Check Translations / check-translations (push) Has been cancelled
Code check / Check code (push) Has been cancelled
2026-03-19 17:42:48 +00:00
Boria138 3fbabc0267 docs: add fish shell instruction to README
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-19 22:37:41 +05:00
Boria138 ef5a302ff5 fix: use custom_data cover for CLI launched games
Code check / Check code (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-19 20:12:34 +05:00
Boria138 d05665be15 fix: improve dialog and detail page controller navigation
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-19 20:10:06 +05:00
Boria138 b51174c172 fix: use saved Exec line for edited shortcut actions
Code check / Check code (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-19 19:56:43 +05:00
Boria138 169ff005ce feat(detail_page): added add game and edit shortcut
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-19 19:53:42 +05:00
Boria138 6792abdac6 chore(changelog): update
Code check / Check code (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-19 18:51:36 +05:00
Boria138 f2f11b608e feat: add compact badge mode with hover accordion text 2026-03-19 18:47:31 +05:00
Boria138 2fd91b9556 fix: skip cover copy when source and destination match
Code check / Check code (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-19 18:23:52 +05:00
Boria138 40b50de937 chore: use horizontal layout for checkbox in add game dialog
Code check / Check code (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-19 15:58:35 +05:00
Boria138 f39267e979 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-19 15:38:55 +05:00
Boria138 710c876374 feat: add shortcut toggles to add game dialog with state sync 2026-03-19 15:36:34 +05:00
Boria138 d00d789246 perf: reduce git requests and stream autoinstall asset updates
Code check / Check code (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-19 14:49:14 +05:00
Boria138 edcdb7cef4 chore(changelog): update
Code check / Check code (push) Successful in 1m24s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-18 23:45:08 +05:00
Boria138 03cf25492f fix: disable accidental wheel scrolling on comboboxes
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-18 23:43:32 +05:00
Boria138 9f84d2e9c3 fix: unify desktop entry generation and enforce 0755 perms
Code check / Check code (push) Successful in 1m18s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-18 23:34:24 +05:00
Boria138 38c162f38a fix: run downloader callbacks in Qt thread to avoid cross-thread UI
Code check / Check code (push) Successful in 1m13s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-18 23:25:06 +05:00
Boria138 41046f3439 chore(downloader): added user-agent
Code check / Check code (push) Successful in 1m10s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-18 22:27:20 +05:00
Boria138 5428cd311b chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-18 22:01:31 +05:00
Boria138 21580d76ba feat: use Yandex as primary server for internet connectivity check
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-18 21:59:50 +05:00
Boria138 174e439509 fix: skip SGDB and SteamCDN covers when custom_data exists
Code check / Check code (push) Successful in 1m8s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-18 16:58:26 +05:00
Boria138 b7f8e1edf2 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-18 16:50:22 +05:00
Boria138 b52785791a fix: constrain theme tab gamepad focus and add visible focus styles 2026-03-18 16:49:09 +05:00
Boria138 b280dc1f54 fix: reduce SGDB timeout to avoid startup delays
Code check / Check code (push) Successful in 1m8s
2026-03-17 14:42:24 +05:00
Boria138 1775911416 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-16 14:19:04 +05:00
Boria138 9f47dafb24 feat: normalize wine tool prefix to uppercase before cli launch
Code check / Check code (push) Successful in 1m5s
2026-03-15 21:36:53 +05:00
Boria138 0996b90ba3 fix: normalize PW_PREFIX_NAME and prefix directory names
Code check / Check code (push) Successful in 1m12s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-15 18:13:40 +05:00
Renovate Bot 07e3850bce chore(deps): update archlinux:base-devel docker digest to b3c1ff7
Code check / Check code (push) Successful in 1m8s
2026-03-15 11:43:14 +00:00
Simple16 4536ce09bd Updating the translation of the Gamescope settings
Check Translations / check-translations (pull_request) Successful in 19s
Code check / Check code (push) Has been cancelled
Code check / Check code (pull_request) Successful in 1m15s
Check Translations / check-translations (push) Successful in 19s
2026-03-15 07:58:12 +05:00
Simple16 4d61cb3316 merge upstream 2026-03-14 19:02:01 +00:00
Boria138 c40caeae5c feat(gamescope): rework layout
renovate / renovate (push) Successful in 1m9s
Code check / Check code (push) Successful in 1m16s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-14 17:48:27 +05:00
Boria138 74085a2d0b feat: clean user.conf CLI
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-14 17:32:26 +05:00
Simple16 3d55994962 Updating the translation of the MangoHud and Gamescope settings
Check Translations / check-translations (push) Successful in 18s
Code check / Check code (push) Successful in 1m8s
2026-03-14 10:09:48 +00:00
Simple16 769c84edbd Updating the translation of the main Gamescope settings 2026-03-14 10:09:48 +00:00
Simple16 4ec1174bcd Updating the translation of the MangoHud setting №2 2026-03-14 10:09:48 +00:00
Simple16 6fe2fe08ba Updating the translation of the MangoHud settings №1 2026-03-14 10:09:48 +00:00
Simple16 cda1340293 Updating the translation of the MangoHud and Gamescope settings
Code check / Check code (pull_request) Successful in 1m15s
Check Translations / check-translations (pull_request) Successful in 42s
2026-03-14 14:55:41 +05:00
Simple16 773569773e Updating the translation of the main Gamescope settings 2026-03-14 13:13:33 +05:00
Simple16 f9cd038aa1 Updating the translation of the MangoHud setting №2 2026-03-14 12:11:49 +05:00
Boria138 c0bae645e4 feat: hide unsupported gamescope options and handle aliases
Code check / Check code (push) Successful in 1m12s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-14 11:02:35 +05:00
Boria138 6c63815ec3 feat: force PW_GAMESCOPE and PW_MANGOHUD on tab save
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-14 10:46:03 +05:00
Simple16 5c006a5b7e Updating the translation of the MangoHud settings №1 2026-03-14 09:21:26 +05:00
Boria138 c6a9031ee2 Reapply "fix: use short gamescope args for PortProton compatibility"
Code check / Check code (push) Successful in 1m17s
This reverts commit 3f6a4f538d.
2026-03-13 15:43:15 +05:00
Boria138 91a3cb4c26 refactor: switch user.conf helpers to PortProton CLI
Code check / Check code (push) Successful in 1m9s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-13 14:14:52 +05:00
Boria138 c93f10c2a2 chore(changelog): update
Code check / Check code (push) Successful in 1m18s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-13 14:02:20 +05:00
Boria138 ab055f3708 fix: wrap control hints in small window sizes
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-13 14:00:48 +05:00
Boria138 823fff912e chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-13 13:57:16 +05:00
Boria138 100556e1d0 fix: use two-column layout for prefix backup action buttons
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-13 13:53:50 +05:00
Dervart d639283db5 fix scroll for exe settings
Code check / Check code (push) Successful in 1m22s
2026-03-12 09:59:24 +00:00
Dervart 7f4d06f825 fix end of file 2026-03-12 09:59:24 +00:00
Dervart b4baf8e230 Unified styles for comboboxes, checkboxes, input fields, scrollbars, and titlebars. 2026-03-12 09:59:24 +00:00
Boria138 3f6a4f538d Revert "fix: use short gamescope args for PortProton compatibility"
Code check / Check code (push) Successful in 1m18s
This reverts commit 0ac7959031.
2026-03-12 10:40:45 +05:00
Boria138 0ac7959031 fix: use short gamescope args for PortProton compatibility
Code check / Check code (push) Successful in 1m14s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-12 10:06:08 +05:00
Boria138 3397e633c6 chore(completion): drop .bash ext
Code check / Check code (push) Successful in 1m15s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-12 09:53:04 +05:00
Boria138 9abeddfb51 chore(compltion): added fish and zsh
Code check / Check code (push) Successful in 1m23s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-12 00:22:20 +05:00
Boria138 754fc039f9 chore(changelog): update
Code check / Check code (push) Successful in 1m14s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 23:36:13 +05:00
Boria138 0b9b2f6e48 feat(gamescope): added gamepad navigation
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 23:35:11 +05:00
Boria138 b8fd7aff1b refactor: unify toggle grid layout for mangohud and gamescope
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 23:22:14 +05:00
Boria138 92f84d9c9c chore(changelog): update
Code check / Check code (push) Successful in 1m13s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 23:19:33 +05:00
Boria138 228db2bbf1 refactor: centralize settings context menu and tooltip handling
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 23:17:36 +05:00
Boria138 5277f88b80 revert: remove gamescope screen-size validation on parse
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 23:04:52 +05:00
Boria138 f0de078dcd ui: move gamescope presets and toggles above resolution
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 23:02:55 +05:00
Boria138 ff20458ffb fix: drop invalid gamescope short resolution args
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 22:58:43 +05:00
Dervart 22956d7140 add styles for editable QComboBox
Code check / Check code (push) Successful in 1m20s
2026-03-11 15:33:39 +00:00
Dervart f31c8409cc remove background in checkbox container 2026-03-11 15:33:39 +00:00
Boria138 dc2eaa71ba feat(gamescope): added initial
Code check / Check code (push) Has been cancelled
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 20:33:17 +05:00
Boria138 e66dffeef0 feat: added create pfx
Code check / Check code (push) Successful in 1m20s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 17:42:20 +05:00
Boria138 eac9583252 refactor: extract MangoHud settings into separate dialog module
Code check / Check code (push) Successful in 1m12s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 10:10:18 +05:00
Boria138 39df4d7946 chore(changelog): update
Code check / Check code (push) Successful in 1m11s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 09:54:16 +05:00
Boria138 9ffb563280 fix: keep focused input visible when virtual keyboard opens 2026-03-11 09:46:08 +05:00
Boria138 c0c4eea813 fix(mangohud): fix gamepad navigation
Code check / Check code (push) Successful in 1m16s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 09:40:58 +05:00
Boria138 27ea663f7d chore(mangohud): added Default value placeholder
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-11 09:17:21 +05:00
Boria138 ca851735e6 docs: clarify and align AGENTS.md policy rules
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-10 23:59:01 +05:00
Boria138 ac1270a7fd refactor: move hardcoded styles to theme files
Code check / Check code (push) Successful in 1m10s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-10 23:33:22 +05:00
Boria138 8e76ee8789 chore(mangohud): drop translate from MANGOHUD_TOGGLE_SPECS
Code check / Check code (push) Successful in 1m11s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-10 23:05:02 +05:00
Boria138 f11f7d594b chore: rework custom tooltip
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-10 23:02:33 +05:00
Boria138 2014a89c27 feat(mangohud): added gpu_list
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-10 22:38:46 +05:00
Boria138 4ae38a1f55 chore(mangohud): use gamepad tooltip insted system tooltip
Code check / Check code (push) Successful in 1m12s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-10 20:58:57 +05:00
Boria138 a3853ef1a6 feat(mangohud): added short description to button
Code check / Check code (push) Successful in 2m30s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-10 20:21:29 +05:00
Boria138 f3ac329e54 fix(mangohud): fix gamepad navigation
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-10 20:06:27 +05:00
Boria138 94f2c6df2e chore(mangohud): fix preset Layout
Code check / Check code (push) Failing after 1m16s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-10 11:42:52 +05:00
Dervart 7fccaa4b0d Styles for mangohud settings
Code check / Check code (pull_request) Failing after 1m18s
Code check / Check code (push) Failing after 1m17s
2026-03-09 20:56:28 +07:00
Boria138 9c1a80add5 feat(mangohud): added background_alpha and round_corners
Code check / Check code (push) Successful in 1m15s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-09 13:47:39 +05:00
Boria138 6b859f6bdf fix MANGOHUD_VALUE_SPECS
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-09 13:19:03 +05:00
Boria138 aacabd81d9 chore(mangohud): rework layout
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-09 13:15:30 +05:00
Simple16 b1dc9d87dd Updating the translation of the main MangoHud settings. FIX
Check Translations / check-translations (pull_request) Successful in 19s
Code check / Check code (pull_request) Successful in 1m16s
Check Translations / check-translations (push) Successful in 17s
Code check / Check code (push) Successful in 1m5s
2026-03-09 09:38:49 +05:00
Simple16 63b8d26b1c Updating the translation of the main MangoHud settings
Check Translations / check-translations (pull_request) Failing after 19s
Code check / Check code (pull_request) Successful in 1m17s
2026-03-09 09:21:53 +05:00
Boria138 858314a21c feat(mangohud): added network
Code check / Check code (push) Successful in 1m20s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-08 23:45:16 +05:00
Boria138 622baaa31c feat(mangohud): added device_battery
Code check / Check code (push) Successful in 1m13s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-08 23:09:33 +05:00
Boria138 2e93af677c feat(mangohud): added gamepad navigation
Code check / Check code (push) Successful in 1m14s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-08 22:47:18 +05:00
Boria138 f55701b963 chore(mangohud): replace QPlainTextEdit to QLineEdit
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-08 22:21:47 +05:00
Boria138 188f2925ba chor(mangohud): hide font size
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-08 22:18:30 +05:00
Boria138 ce334fb232 chore(mangohud): added custom preset system
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-08 22:04:01 +05:00
Boria138 f4eca46112 chore(changelog): update
Code check / Check code (push) Successful in 1m16s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-08 21:45:54 +05:00
Boria138 811083748c chore: update screenshots
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-08 21:44:06 +05:00
Dervart 6bd8593300 Increased the width of setting titles
Code check / Check code (pull_request) Failing after 1m20s
Code check / Check code (push) Failing after 1m18s
2026-03-08 23:13:38 +07:00
Dervart aa629e79a2 Separated checkbox and combobox classes for settings titles 2026-03-08 23:12:37 +07:00
Dervart 3508248e53 Added font styles for tab titles in get_wine & winetricks
Code check / Check code (push) Successful in 1m14s
2026-03-08 15:49:14 +00:00
Dervart abe8ee0575 Removed underline in block title. 2026-03-08 15:49:14 +00:00
Dervart d0e9d721d1 Increased the width of the combobox in the game settings as requested by @Simple16 2026-03-08 15:49:14 +00:00
Dervart 343ed115a1 styles for PortProton settings tab 2026-03-08 15:49:14 +00:00
Boria138 9f78196c8d feat: added initial mangohud settings
Code check / Check code (push) Failing after 11s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-08 19:49:38 +05:00
Renovate Bot bc4748ca56 chore(deps): update archlinux:base-devel docker digest to a4e49d3
Code check / Check code (push) Failing after 31s
2026-03-08 10:12:10 +00:00
Renovate Bot 5718584809 chore(deps): update https://gitea.com/actions/setup-node digest to 53b8394
Code check / Check code (pull_request) Successful in 1m52s
Code check / Check code (push) Has been cancelled
2026-03-08 00:01:20 +00:00
Simple16 1fb4ced62f Update of Russian localization
Code check / Check code (pull_request) Successful in 1m15s
Code check / Check code (push) Successful in 1m10s
Check Translations / check-translations (pull_request) Successful in 19s
Check Translations / check-translations (push) Successful in 17s
renovate / renovate (push) Successful in 46s
2026-03-07 20:49:14 +05:00
Boria138 98cfa3e50e chore(localization): update
Code check / Check code (push) Successful in 1m14s
Check Translations / check-translations (push) Successful in 16s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-07 20:21:02 +05:00
Boria138 006b6a6dd1 chore(changelog): update
Code check / Check code (push) Successful in 1m21s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-07 20:16:30 +05:00
Boria138 8ab3b796f3 fix: translate QMessageBox Yes/No buttons
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-07 20:16:29 +05:00
Boria138 3730fa1183 refactor: Unify cache management with CacheManager
Code check / Check code (push) Successful in 1m23s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-07 16:43:42 +05:00
Boria138 d6d415d184 feat: Add --resolution CLI argument for custom window size
Code check / Check code (push) Successful in 1m35s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-07 16:07:05 +05:00
Boria138 af90c5fdff chore(todo): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-07 16:06:21 +05:00
Boria138 e8e3fefbf0 fix: Correct locale links in localization guide
Code check / Check code (push) Successful in 1m35s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-07 15:39:35 +05:00
Simple16 9c29a66314 Update of English and Russian strings. Update of Russian localization
Check Translations / check-translations (push) Successful in 18s
Check Translations / check-translations (pull_request) Successful in 19s
Code check / Check code (pull_request) Successful in 1m20s
Code check / Check code (push) Successful in 1m16s
2026-03-06 22:27:18 +05:00
Simple16 c26dd358e5 Update of English and Russian strings. Update of Russian localization
Check Translations / check-translations (pull_request) Failing after 20s
Code check / Check code (pull_request) Successful in 1m18s
2026-03-06 21:34:21 +05:00
Simple16 ad469c6755 Update locale 2026-03-06 21:06:17 +05:00
Boria138 fad86df55f fix: add setuptools package discovery config for uv build
Code check / Check code (push) Successful in 1m12s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-06 20:22:56 +05:00
Boria138 20ebb51f9a fix: restore project.scripts entry point for uv installation
Code check / Check code (push) Successful in 1m9s
2026-03-06 19:45:40 +05:00
Boria138 85b7f6a70c chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-06 12:29:06 +05:00
Boria138 7542be7bfd chore: simplify pyproject.toml for uv-only usage
Code check / Check code (push) Successful in 1m10s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-06 12:25:39 +05:00
Boria138 9dce0bc2ef revert broken hook
Code check / Check code (push) Successful in 1m15s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-05 13:44:34 +05:00
Boria138 d813be7e29 fix: added exclude for pre-commit hooks
Code check / Check code (push) Failing after 1m18s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-05 13:32:25 +05:00
Boria138 b460fd507e chore(localization): sync russian and english strings
Check Translations / check-translations (push) Successful in 18s
Code check / Check code (push) Failing after 1m16s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-05 13:20:22 +05:00
Boria138 b377759db4 chore localization update
Code check / Check code (push) Successful in 1m25s
Check Translations / check-translations (push) Successful in 20s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-05 12:44:06 +05:00
Boria138 ba3233dabf chore(changelog): update
Code check / Check code (push) Successful in 1m22s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-05 11:49:39 +05:00
Boria138 aeaef9b6d7 feat: add cancel button to ProtonManager dialog
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-05 11:47:41 +05:00
Boria138 08808cf975 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-04 23:42:30 +05:00
Boria138 b23a83c96d feat: lazy load autoinstall
Code check / Check code (push) Successful in 2m8s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-04 23:31:57 +05:00
Boria138 69e38452bf feat: batch download for autoinstall assets with rate limiting 2026-03-04 22:34:37 +05:00
Boria138 dd66585c52 fix: reduce CPU load and memory leak on card resize
Code check / Check code (push) Successful in 1m11s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-04 20:38:38 +05:00
Boria138 b8e0359367 chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-04 13:31:40 +05:00
Boria138 8d264ac743 fix: avoid library hang and reduce asset requests
Code check / Check code (push) Successful in 1m21s
2026-03-04 13:07:11 +05:00
Boria138 732f5e5f60 style: update PortProton Settings tab layout
Code check / Check code (push) Successful in 1m18s
2026-03-03 18:18:32 +05:00
Boria138 2b735aadbd perf: incremental library render
Code check / Check code (push) Successful in 1m20s
2026-03-03 13:41:02 +05:00
Boria138 0cef434c2e chore(changelog): update
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-03 12:44:12 +05:00
Boria138 757bd34885 fix: Steam CEF API detection and restart-free add/remove
Code check / Check code (push) Successful in 1m23s
2026-03-03 12:07:51 +05:00
Boria138 da79f07780 fix: fix get anticheat status for Steam Games
Code check / Check code (push) Successful in 1m41s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-02 14:32:42 +05:00
Boria138 55d5b097d9 debug: add SGDB cache logging and reduce URL log verbosity
Code check / Check code (push) Successful in 1m37s
2026-03-02 13:39:38 +05:00
Boria138 650844c704 fix: check local cache before SteamCDN request to prevent redundant network calls
Code check / Check code (push) Successful in 1m37s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-02 13:12:18 +05:00
Boria138 c4e3e30bf7 fix: remove blocking SGDB and URL check calls to prevent UI freeze
Code check / Check code (push) Successful in 1m10s
2026-03-02 00:56:48 +05:00
Boria138 97d6d54c93 fix: detect VDF format by first byte to avoid load errors 2026-03-02 00:56:42 +05:00
Boria138 be09e152e4 refactor: split steam_api.py into package with separate modules
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-03-02 00:56:36 +05:00
Renovate Bot 54df09f94a chore(deps): update archlinux:base-devel docker digest to f7227ef
Code check / Check code (push) Successful in 1m19s
2026-03-01 05:40:01 +00:00
Gitea Actions eb39264578 chore: update steam apps list 2026-03-01T00:01:59Z 2026-03-01 00:01:59 +00:00
Simple16 f9ea5e992b Update the Russian translation in the settings menu
Code check / Check code (push) Successful in 1m6s
Check Translations / check-translations (push) Successful in 16s
renovate / renovate (push) Successful in 35s
Fetch Data / build (push) Successful in 49s
2026-02-28 15:30:53 +00:00
Boria138 81637c3729 feat: auto-add MANGOHUD_CONFIG from var when enabling PW_MANGOHUD
Code check / Check code (push) Successful in 1m7s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-28 20:29:15 +05:00
Boria138 80a79ed45b feat: add settings button for Steam games using PortProtonQt
Code check / Check code (push) Successful in 1m9s
2026-02-28 13:25:40 +05:00
Boria138 c6b997366f feat: launch games directly in Steam compatibility mode
Code check / Check code (push) Successful in 1m6s
2026-02-28 09:53:24 +05:00
Boria138 2bdcf107f2 feat: skip desktop file creation for steamapps/common games
Code check / Check code (push) Successful in 1m48s
2026-02-27 21:35:14 +05:00
Boria138 25f3e526ae feat: prioritize var.log for environment variables
Code check / Check code (push) Successful in 1m6s
2026-02-27 16:23:09 +05:00
Boria138 d081ae68db refactor: extract common process.log parsing function
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-27 16:13:56 +05:00
Boria138 d1b8f0fa93 feat: add PW_USE_INHIBIT_SLEEP_INFO setting 2026-02-27 16:10:39 +05:00
Boria138 23e19a14d0 feat: add Wine download progress monitoring
Code check / Check code (push) Successful in 1m2s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-27 16:05:15 +05:00
Boria138 f9ef6751dd fix: tray use correct exec line
Code check / Check code (push) Successful in 1m6s
2026-02-27 15:23:18 +05:00
Boria138 6363c08781 refactor: extract dialogs to separate package and fix UI updates
Code check / Check code (push) Successful in 1m11s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-26 23:26:11 +05:00
Boria138 7eb2934b44 fix: Run initial PortProton command in QThread to avoid UI blocking
Code check / Check code (push) Successful in 1m15s
2026-02-26 22:14:37 +05:00
Boria138 2519ccd6d0 fix: create UInput mouse in QThread to avoid blocking UI 2026-02-26 22:08:11 +05:00
Boria138 da204786c1 refactor: remove redundant branch input from nightly build workflow
Code check / Check code (push) Successful in 1m6s
2026-02-26 21:41:43 +05:00
Boria138 f6e871feaf fix: PKGBUILD steam-compat directory delete
Code check / Check code (push) Successful in 1m8s
2026-02-26 20:29:38 +05:00
Boria138 a9e0304437 fix: resolve file conflict between main and steam-compat packages
Code check / Check code (push) Successful in 1m8s
2026-02-26 19:50:56 +05:00
Boria138 994769d3cf feat: Add Steam compatibility tool as separate package
Code check / Check code (push) Successful in 1m9s
2026-02-26 17:58:54 +05:00
Boria138 6fd2e9b34a feat: Add CLI option to install PortProtonQt as Steam compatibility tool 2026-02-26 17:42:53 +05:00
Boria138 387133b87f feat: add direct exe launch via CLI 2026-02-26 17:22:49 +05:00
Boria138 8bd6e30e0b refactor: split config_utils into config package with validation
Code check / Check code (push) Successful in 1m9s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-24 20:30:40 +05:00
Boria138 b168e32fc8 refactor: split detail_pages into package
Code check / Check code (push) Successful in 1m10s
2026-02-24 13:02:22 +05:00
Boria138 1812b8de5f refactor: split debug_utils into submodules
Code check / Check code (push) Successful in 1m13s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-22 16:40:43 +05:00
Boria138 cfc4532edd fix: CSS comment syntax validation and winetricks.py typos
Code check / Check code (push) Successful in 1m13s
2026-02-22 16:03:52 +05:00
Boria138 50d6d952dd fix: invalid CSS comments in combobox styles
Code check / Check code (push) Successful in 1m4s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-22 15:53:15 +05:00
Boria138 18f277e707 fix: adaptive width for PortProton settings tab
Code check / Check code (push) Successful in 1m9s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-22 13:20:30 +05:00
Boria138 a769263aa1 refactor: split get_graphics_info_detailed into small functions
Code check / Check code (push) Successful in 1m5s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-22 12:57:44 +05:00
Boria138 159cd49a16 chore(agents): update again
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-22 12:57:38 +05:00
Renovate Bot 68c8ca07b9 chore(deps): update archlinux:base-devel docker digest to 839e930
Code check / Check code (pull_request) Successful in 1m12s
Code check / Check code (push) Successful in 1m21s
2026-02-22 00:01:07 +00:00
Boria138 ee22a5d8fb docs(agents): add dev-scripts exemption policy
renovate / renovate (push) Successful in 33s
2026-02-20 13:55:43 +05:00
Boria138 48f156e433 refactor: replace print() with logger and add exception logging
Code check / Check code (push) Successful in 1m11s
2026-02-20 13:50:00 +05:00
Boria138 85b199d5ea chore: translate comments to English and clean up TODOs
Code check / Check code (push) Successful in 1m14s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-20 11:26:24 +05:00
Boria138 8d0bab134e feat(agents): finalize AI Governance Policy and consolidate LLM restrictions
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-20 11:08:57 +05:00
Boria138 5525a6988a docs(agents): remove redundant manual lint commands 2026-02-20 10:28:40 +05:00
Boria138 d6dc7db5e4 chore(agents): rework agents rules
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-19 23:49:07 +05:00
Boria138andQwen-Coder 09313e30cf fix(pre-commit): fix pyright exclude pattern for theme files
Code check / Check code (push) Successful in 1m5s
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-19 17:41:46 +05:00
Boria138 8d539469a3 fix(agents): rewrite pre-commit manual start
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-19 17:39:40 +05:00
Boria138 45f9b2950f fix(build): Fix vk_gpu_info Fedora BR
Code check / Check code (push) Successful in 1m15s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-19 15:17:22 +05:00
Boria138 0d6df9ed6c chore: added AI Instruction (CLAUDE, GEMINI, QWEN, CURSOR, CODEX, OPENCODE)
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-19 15:09:32 +05:00
Boria138 b92eb1fe9d chore(portproton_settings): drop favorites adaptive
Code check / Check code (push) Successful in 1m11s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-19 11:14:29 +05:00
Boria138 b200d73879 feat(portproton_settings): make it adaptive
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-19 11:12:44 +05:00
Boria138 335f3223db feat(detail_page): make it adaptive
Code check / Check code (push) Successful in 1m7s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2026-02-19 10:32:14 +05:00
838 changed files with 128953 additions and 27906 deletions

No files matched your search

-147
View File
@@ -1,147 +0,0 @@
name: Nightly Build - AppImage, Arch, Fedora
on:
workflow_dispatch:
inputs:
branch:
description: 'Branch to build'
required: false
default: 'main'
env:
BUILD_BRANCH: ${{ inputs.branch || 'main' }}
PKGDEST: "/tmp/portprotonqt"
PACKAGE: "portprotonqt"
jobs:
build-appimage:
name: Build AppImage
runs-on: ubuntu-22.04
container:
image: archlinux:base-devel@sha256:7c81df532d6307c5bccb3d2561c90bfc981e6c4384d2a61c9e49b7f2d8aa27c0
options: --privileged --device /dev/fuse
steps:
- name: Prepare container
run: |
pacman-key --init
pacman -Sy --noconfirm archlinux-keyring
pacman -Syu --noconfirm --disable-download-timeout --needed git wget gnupg nodejs npm xorg-server-xvfb zsync
- uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
ref: ${{ env.BUILD_BRANCH }}
- name: Install appimage dependencies
run: |
cd build-aux/AppImage
chmod +x get-dependencies.sh portprotonqt-appimage.sh
./get-dependencies.sh --local --branch "${{ env.BUILD_BRANCH }}"
- name: Build AppImage
run: |
cd build-aux/AppImage
./portprotonqt-appimage.sh
- name: Upload AppImage
uses: https://gitea.com/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-AppImage
path: build-aux/AppImage/dist/*.AppImage
build-fedora:
name: Build Fedora RPM
runs-on: ubuntu-latest
strategy:
matrix:
fedora_version: [41, 42, 43, rawhide]
container:
image: fedora:${{ matrix.fedora_version }}
options: --privileged
steps:
- name: Install build dependencies
run: |
dnf install -y git rpmdevtools meson ninja-build python3-devel \
systemd-rpm-macros vulkan-loader-devel redhat-rpm-config nodejs npm \
gcc
- name: Setup rpmbuild environment
run: |
useradd rpmbuild -u 5002 -g users || true
mkdir -p /home/rpmbuild/{BUILD,RPMS,SPECS,SRPMS,SOURCES}
chown -R rpmbuild:users /home/rpmbuild
echo '%_topdir /home/rpmbuild' > /home/rpmbuild/.rpmmacros
- name: Checkout repo
uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
ref: ${{ env.BUILD_BRANCH }}
- name: Copy fedora.spec
run: |
sed "s|git clone https://git.linux-gaming.ru/Boria138/PortProtonQt.git|git clone -b ${{ env.BUILD_BRANCH }} https://git.linux-gaming.ru/Boria138/PortProtonQt.git|" \
build-aux/fedora-git.spec > /home/rpmbuild/SPECS/${{ env.PACKAGE }}.spec
chown -R rpmbuild:users /home/rpmbuild
- name: Build RPM
run: |
su rpmbuild -c "rpmbuild -ba /home/rpmbuild/SPECS/${{ env.PACKAGE }}.spec"
- name: Upload RPM package
uses: https://gitea.com/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-RPM-Fedora-${{ matrix.fedora_version }}
path: /home/rpmbuild/RPMS/**/*.rpm
build-arch:
name: Build Arch Package
runs-on: ubuntu-22.04
container:
image: archlinux:base-devel@sha256:7c81df532d6307c5bccb3d2561c90bfc981e6c4384d2a61c9e49b7f2d8aa27c0
steps:
- name: Prepare container
run: |
pacman -Syuu --noconfirm --disable-download-timeout --needed git wget gnupg nodejs npm
sed -i 's/#MAKEFLAGS="-j2"/MAKEFLAGS="-j$(nproc) -l$(nproc)"/g' /etc/makepkg.conf
sed -i 's/OPTIONS=(.*)/OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge lto)/g' /etc/makepkg.conf
yes | pacman -Scc
pacman-key --init
pacman -S --noconfirm archlinux-keyring
mkdir -p /__w/portproton-repo
pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
pacman-key --lsign-key 3056513887B78AEB
pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst'
pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'
cat << EOM >> /etc/pacman.conf
[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist
EOM
pacman -Syy
useradd -m user -G wheel && echo "user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
echo "PACKAGER=\"Boris Yumankulov <boria138@altlinux.org>\"" >> /etc/makepkg.conf
chown user -R /tmp
chown user -R ..
- name: Checkout
uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
ref: ${{ env.BUILD_BRANCH }}
- name: Build
run: |
cd /__w/portproton-repo
cp -r "$GITHUB_WORKSPACE" PortProtonQt
cd /__w/portproton-repo/PortProtonQt/build-aux
sed -i "s|source=(\"git+https://git.linux-gaming.ru/Boria138/PortProtonQt.git\")|source=(\"git+https://git.linux-gaming.ru/Boria138/PortProtonQt.git#branch=${{ env.BUILD_BRANCH }}\")|" PKGBUILD-git
chown user -R ..
su user -c "yes '' | makepkg --noconfirm -s -p PKGBUILD-git"
- name: Upload Arch package
uses: https://gitea.com/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-Arch
path: ${{ env.PKGDEST }}/*
@@ -5,6 +5,7 @@ on:
push:
branches:
- main
- scripts
paths:
- 'build-aux/vk_gpu_info.c'
- '.gitea/workflows/build-vk-gpu-info-debian.yml'
@@ -24,12 +25,12 @@ jobs:
apt-get install -y build-essential pkg-config libvulkan-dev git curl wget nodejs npm
- name: Set up Node.js
uses: https://gitea.com/actions/setup-node@v2
uses: https://git.linux-gaming.ru/actions/setup-node@v2
with:
node-version: 20
- name: Checkout code
uses: https://gitea.com/actions/checkout@v3
uses: https://git.linux-gaming.ru/actions/checkout@v3
- name: Compile vk_gpu_info
run: |
@@ -50,7 +51,7 @@ jobs:
fi
- name: Upload vk_gpu_info binary
uses: https://gitea.com/actions/gitea-upload-artifact@v4
uses: https://git.linux-gaming.ru/actions/gitea-upload-artifact@v4
with:
name: vk_gpu_info-debian11-binary
path: build-aux/vk_gpu_info
+45 -15
View File
@@ -1,14 +1,14 @@
name: Build AppImage, Arch and Fedora Packages
name: Build AppImage, Arch, Fedora and Debian Packages
on:
workflow_dispatch:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
- 'v[0-9]*.[0-9]*'
env:
# Common version, will be used for tagging the release
VERSION: 0.1.11
VERSION: 1.2.0
PKGDEST: "/tmp/portprotonqt"
PACKAGE: "portprotonqt"
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
@@ -27,7 +27,7 @@ jobs:
pacman -Sy --noconfirm archlinux-keyring
pacman -Syu --noconfirm --disable-download-timeout --needed git wget gnupg nodejs npm xorg-server-xvfb zsync
- uses: https://gitea.com/actions/checkout@v4
- uses: https://git.linux-gaming.ru/actions/checkout@v4
- name: Install appimage dependencies
run: |
@@ -41,7 +41,7 @@ jobs:
./portprotonqt-appimage.sh
- name: Upload AppImage
uses: https://gitea.com/actions/gitea-upload-artifact@v4
uses: https://git.linux-gaming.ru/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-AppImage
path: build-aux/AppImage/dist/*.AppImage
@@ -78,7 +78,7 @@ jobs:
chown user -R ..
- name: Checkout
uses: https://gitea.com/actions/checkout@v4
uses: https://git.linux-gaming.ru/actions/checkout@v4
- name: Build
run: |
@@ -89,7 +89,7 @@ jobs:
su user -c "yes '' | makepkg --noconfirm -s"
- name: Upload Arch package
uses: https://gitea.com/actions/gitea-upload-artifact@v4
uses: https://git.linux-gaming.ru/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-Arch
path: ${{ env.PKGDEST }}/*
@@ -100,7 +100,7 @@ jobs:
strategy:
matrix:
fedora_version: [41, 42, 43, rawhide]
fedora_version: [42, 43, 44, rawhide]
container:
image: fedora:${{ matrix.fedora_version }}
@@ -111,7 +111,7 @@ jobs:
run: |
dnf install -y git rpmdevtools meson ninja-build python3-devel \
systemd-rpm-macros vulkan-loader-devel redhat-rpm-config nodejs npm \
gcc
gcc gettext
- name: Setup rpmbuild environment
run: |
@@ -121,7 +121,7 @@ jobs:
echo '%_topdir /home/rpmbuild' > /home/rpmbuild/.rpmmacros
- name: Checkout repo
uses: https://gitea.com/actions/checkout@v4
uses: https://git.linux-gaming.ru/actions/checkout@v4
- name: Copy fedora.spec
run: |
@@ -133,16 +133,46 @@ jobs:
su rpmbuild -c "rpmbuild -ba /home/rpmbuild/SPECS/${{ env.PACKAGE }}.spec"
- name: Upload RPM package
uses: https://gitea.com/actions/gitea-upload-artifact@v4
uses: https://git.linux-gaming.ru/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-RPM-Fedora-${{ matrix.fedora_version }}
path: /home/rpmbuild/RPMS/**/*.rpm
build-debian:
name: Build Debian Package
runs-on: ubuntu-latest
container:
image: debian:13
options: --privileged
steps:
- name: Install build dependencies
run: |
apt-get update
apt-get install -y build-essential debhelper dpkg-dev gettext git \
libvulkan-dev meson ninja-build nodejs npm \
pkgconf python3
- name: Checkout
uses: https://git.linux-gaming.ru/actions/checkout@v4
- name: Build Debian package
run: |
dpkg-buildpackage -us -uc -b
mkdir -p dist/deb
mv ../*.deb ../*.buildinfo ../*.changes dist/deb/
- name: Upload Debian package
uses: https://git.linux-gaming.ru/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-DEB-Debian-13
path: dist/deb/*
release:
name: Create and Publish Release
runs-on: ubuntu-latest
steps:
- uses: https://gitea.com/actions/checkout@v4
- uses: https://git.linux-gaming.ru/actions/checkout@v4
- name: Install required dependencies
run: |
@@ -150,7 +180,7 @@ jobs:
sudo apt install -y original-awk unzip
- name: Download all artifacts
uses: https://gitea.com/actions/download-artifact@v3
uses: https://git.linux-gaming.ru/actions/download-artifact@v3
continue-on-error: true
with:
path: release/
@@ -170,13 +200,13 @@ jobs:
awk "/^## \\[$VERSION\\]/ {flag=1; next} /^## \\[/ || /^---/ {flag=0} flag" CHANGELOG.md > changelog.txt
- name: Release
uses: https://gitea.com/actions/gitea-release-action@v1
uses: https://git.linux-gaming.ru/actions/gitea-release-action@v1
env:
NODE_OPTIONS: '--experimental-fetch' # if nodejs < 18
with:
body_path: changelog.txt
token: ${{ env.GITEA_TOKEN }}
tag_name: v${{ env.VERSION }}
prerelease: true
prerelease: false
files: release/**/*
sha256sum: false
+17 -4
View File
@@ -2,7 +2,7 @@ name: Check Translations
run-name: Check spelling in translation files
on:
push:
branches: [main]
branches: [main, scripts]
paths:
- 'portprotonqt/locales/**'
pull_request:
@@ -15,10 +15,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
fetch-depth: 0
- name: Set up Python
uses: https://gitea.com/actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
uses: https://git.linux-gaming.ru/actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version-file: "pyproject.toml"
@@ -26,4 +28,15 @@ jobs:
run: pip install pyaspeller babel
- name: Run spell check
run: python dev-scripts/l10n.py --spellcheck
run: |
if [ "${{ gitea.event_name }}" = "pull_request" ]; then
base="${{ gitea.event.pull_request.base.sha }}"
else
base="${{ gitea.event.before }}"
fi
if [ -z "$base" ] || [ "$base" = "0000000000000000000000000000000000000000" ]; then
python dev-scripts/l10n.py --spellcheck
else
python dev-scripts/l10n.py --spellcheck --changed-since "$base" --changed-to "${{ gitea.sha }}"
fi
-192
View File
@@ -1,192 +0,0 @@
name: Build Check - AppImage, Arch, Fedora
on:
workflow_dispatch:
pull_request:
paths:
- 'build-aux/**'
env:
PKGDEST: "/tmp/portprotonqt"
PACKAGE: "portprotonqt"
PR_REPO_URL: ${{ github.event.pull_request.head.repo.clone_url }}
PR_BRANCH: ${{ github.head_ref }}
jobs:
changes:
runs-on: ubuntu-latest
outputs:
appimage: ${{ steps.check.outputs.appimage }}
fedora: ${{ steps.check.outputs.fedora }}
arch: ${{ steps.check.outputs.arch }}
steps:
- uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0
- name: Ensure git is installed
run: |
sudo apt update
sudo apt install -y git
- name: Check changed files
id: check
run: |
# Get changed files
git diff --name-only ${{ github.event.pull_request.base.sha }}...${{ github.event.pull_request.head.sha }} > changed_files.txt
echo "Changed files:"
cat changed_files.txt
# Check AppImage files
if grep -q "build-aux/AppImage/" changed_files.txt; then
echo "appimage=true" >> $GITHUB_OUTPUT
else
echo "appimage=false" >> $GITHUB_OUTPUT
fi
# Check Fedora spec files (only fedora-git.spec)
if grep -q "build-aux/fedora-git.spec" changed_files.txt; then
echo "fedora=true" >> $GITHUB_OUTPUT
else
echo "fedora=false" >> $GITHUB_OUTPUT
fi
# Check Arch PKGBUILD-git
if grep -q "build-aux/PKGBUILD-git" changed_files.txt; then
echo "arch=true" >> $GITHUB_OUTPUT
else
echo "arch=false" >> $GITHUB_OUTPUT
fi
build-appimage:
name: Build AppImage
runs-on: ubuntu-22.04
needs: changes
if: needs.changes.outputs.appimage == 'true' || github.event_name == 'workflow_dispatch'
container:
image: archlinux:base-devel@sha256:7c81df532d6307c5bccb3d2561c90bfc981e6c4384d2a61c9e49b7f2d8aa27c0
options: --privileged --device /dev/fuse
steps:
- name: Prepare container
run: |
pacman-key --init
pacman -Sy --noconfirm --disable-download-timeout --needed archlinux-keyring
pacman -Syu --noconfirm --disable-download-timeout --needed git wget gnupg nodejs npm xorg-server-xvfb zsync
- uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Install appimage dependencies
run: |
cd build-aux/AppImage
chmod +x get-dependencies.sh portprotonqt-appimage.sh
./get-dependencies.sh --local --branch "${{ env.PR_BRANCH }}" --repo "${{ env.PR_REPO_URL }}"
- name: Build AppImage
run: |
cd build-aux/AppImage
./portprotonqt-appimage.sh
- name: Upload AppImage
uses: https://gitea.com/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-AppImage
path: build-aux/AppImage/dist/*.AppImage
build-fedora:
name: Build Fedora RPM
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.fedora == 'true' || github.event_name == 'workflow_dispatch'
strategy:
matrix:
fedora_version: [41, 42, rawhide]
container:
image: fedora:${{ matrix.fedora_version }}
options: --privileged
steps:
- name: Install build dependencies
run: |
dnf install -y git rpmdevtools meson ninja-build python3-devel \
systemd-rpm-macros redhat-rpm-config nodejs npm \
gcc vulkan-loader-devel
- name: Setup rpmbuild environment
run: |
useradd rpmbuild -u 5002 -g users || true
mkdir -p /home/rpmbuild/{BUILD,RPMS,SPECS,SRPMS,SOURCES}
chown -R rpmbuild:users /home/rpmbuild
echo '%_topdir /home/rpmbuild' > /home/rpmbuild/.rpmmacros
- name: Checkout repo
uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Copy fedora-git.spec
run: |
sed "s|git clone https://git.linux-gaming.ru/Boria138/PortProtonQt.git|git clone -b ${{ env.PR_BRANCH }} ${{ env.PR_REPO_URL }}|" \
build-aux/fedora-git.spec > /home/rpmbuild/SPECS/${{ env.PACKAGE }}.spec
chown -R rpmbuild:users /home/rpmbuild
- name: Build RPM
run: |
su rpmbuild -c "rpmbuild -ba /home/rpmbuild/SPECS/${{ env.PACKAGE }}.spec"
- name: Upload RPM package
uses: https://gitea.com/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-RPM-Fedora-${{ matrix.fedora_version }}
path: /home/rpmbuild/RPMS/**/*.rpm
build-arch:
name: Build Arch Package
runs-on: ubuntu-22.04
needs: changes
if: needs.changes.outputs.arch == 'true' || github.event_name == 'workflow_dispatch'
container:
image: archlinux:base-devel@sha256:7c81df532d6307c5bccb3d2561c90bfc981e6c4384d2a61c9e49b7f2d8aa27c0
steps:
- name: Prepare container
run: |
pacman -Sy --noconfirm --disable-download-timeout --needed git wget gnupg nodejs npm
sed -i 's/#MAKEFLAGS="-j2"/MAKEFLAGS="-j$(nproc) -l$(nproc)"/g' /etc/makepkg.conf
sed -i 's/OPTIONS=(.*)/OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge lto)/g' /etc/makepkg.conf
yes | pacman -Scc
pacman-key --init
pacman -S --noconfirm archlinux-keyring
mkdir -p /__w/portproton-repo
pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
pacman-key --lsign-key 3056513887B78AEB
pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst'
pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'
cat << EOM >> /etc/pacman.conf
[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist
EOM
pacman -Syy
useradd -m user -G wheel && echo "user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
echo "PACKAGER=\"Boris Yumankulov <boria138@altlinux.org>\"" >> /etc/makepkg.conf
chown user -R /tmp
chown user -R ..
- name: Checkout
uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Build
run: |
cd /__w/portproton-repo
git clone -b ${{ env.PR_BRANCH }} ${{ env.PR_REPO_URL }} PortProtonQt
cd /__w/portproton-repo/PortProtonQt/build-aux
sed -i "s|source=(\"git+https://git.linux-gaming.ru/Boria138/PortProtonQt.git\")|source=(\"git+${{ env.PR_REPO_URL }}#branch=${{ env.PR_BRANCH }}\")|" PKGBUILD-git
chown user -R ..
su user -c "yes '' | makepkg --noconfirm -s -p PKGBUILD-git"
- name: Upload Arch package
uses: https://gitea.com/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-Arch
path: ${{ env.PKGDEST }}/*
+4 -4
View File
@@ -2,13 +2,13 @@ name: Code check
on:
pull_request:
branches: [main]
branches: [main, scripts]
paths-ignore:
- "data/**"
- "*.md"
- "dev-scripts/**"
push:
branches: [main]
branches: [main, scripts]
paths-ignore:
- "data/**"
- "*.md"
@@ -20,10 +20,10 @@ jobs:
name: Check code
runs-on: ubuntu-latest
steps:
- uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- name: Set up Node.js
uses: https://gitea.com/actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
uses: https://git.linux-gaming.ru/actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: 20
+3 -3
View File
@@ -7,14 +7,14 @@ on:
jobs:
build:
if: gitea.repository == 'Boria138/PortProtonQt'
if: gitea.repository == 'Linux-Gaming/PortProtonQt'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- name: Set up Python
uses: https://gitea.com/actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
uses: https://git.linux-gaming.ru/actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version-file: "pyproject.toml"
+283
View File
@@ -0,0 +1,283 @@
name: Package Build - AppImage, Arch, Fedora, Debian
on:
workflow_dispatch:
pull_request:
paths:
- 'build-aux/AppImage/**'
- 'build-aux/fedora-git.spec'
- 'build-aux/PKGBUILD-git'
- 'debian/**'
- '.gitea/workflows/package-build.yml'
env:
BUILD_BRANCH: ${{ github.ref_name }}
PKGDEST: "/tmp/portprotonqt"
PACKAGE: "portprotonqt"
PR_REPO_URL: ${{ github.event.pull_request.head.repo.clone_url }}
PR_BRANCH: ${{ github.head_ref }}
jobs:
changes:
runs-on: ubuntu-latest
outputs:
appimage: ${{ steps.check.outputs.appimage }}
fedora: ${{ steps.check.outputs.fedora }}
arch: ${{ steps.check.outputs.arch }}
debian: ${{ steps.check.outputs.debian }}
steps:
- uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
if: github.event_name == 'pull_request'
with:
fetch-depth: 0
- name: Ensure git is installed
if: github.event_name == 'pull_request'
run: |
sudo apt update
sudo apt install -y git
- name: Check changed files
if: github.event_name == 'pull_request'
id: check
run: |
git diff --name-only ${{ github.event.pull_request.base.sha }}...${{ github.event.pull_request.head.sha }} > changed_files.txt
echo "Changed files:"
cat changed_files.txt
if grep -q "build-aux/AppImage/" changed_files.txt; then
echo "appimage=true" >> $GITHUB_OUTPUT
else
echo "appimage=false" >> $GITHUB_OUTPUT
fi
if grep -q "build-aux/fedora-git.spec" changed_files.txt; then
echo "fedora=true" >> $GITHUB_OUTPUT
else
echo "fedora=false" >> $GITHUB_OUTPUT
fi
if grep -q "build-aux/PKGBUILD-git" changed_files.txt; then
echo "arch=true" >> $GITHUB_OUTPUT
else
echo "arch=false" >> $GITHUB_OUTPUT
fi
if grep -q "debian/" changed_files.txt; then
echo "debian=true" >> $GITHUB_OUTPUT
else
echo "debian=false" >> $GITHUB_OUTPUT
fi
- name: Skip change detection
if: github.event_name == 'workflow_dispatch'
run: true
build-appimage:
name: Build AppImage
runs-on: ubuntu-22.04
needs: changes
if: needs.changes.outputs.appimage == 'true' || github.event_name == 'workflow_dispatch'
container:
image: archlinux:base-devel@sha256:c84ad63503efc5d386e30a5f44945fa8eee10fcb21b3d5fceda260783de394ff
options: --privileged --device /dev/fuse
steps:
- name: Prepare container
run: |
pacman-key --init
pacman -Sy --noconfirm archlinux-keyring
pacman -Syu --noconfirm --disable-download-timeout --needed git wget gnupg nodejs npm xorg-server-xvfb zsync
- uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
if: github.event_name == 'pull_request'
- uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
if: github.event_name == 'workflow_dispatch'
with:
ref: ${{ env.BUILD_BRANCH }}
- name: Install appimage dependencies
run: |
cd build-aux/AppImage
chmod +x get-dependencies.sh portprotonqt-appimage.sh
if [ "${{ github.event_name }}" = "pull_request" ]; then
./get-dependencies.sh --local --branch "${{ env.PR_BRANCH }}" --repo "${{ env.PR_REPO_URL }}"
else
./get-dependencies.sh --local --branch "${{ env.BUILD_BRANCH }}"
fi
- name: Build AppImage
run: |
cd build-aux/AppImage
./portprotonqt-appimage.sh
- name: Upload AppImage
uses: https://git.linux-gaming.ru/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-AppImage
path: build-aux/AppImage/dist/*.AppImage
build-fedora:
name: Build Fedora RPM
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.fedora == 'true' || github.event_name == 'workflow_dispatch'
strategy:
matrix:
fedora_version: [42, 43, 44, rawhide]
container:
image: fedora:${{ matrix.fedora_version }}
options: --privileged
steps:
- name: Install build dependencies
run: |
dnf install -y git rpmdevtools meson ninja-build python3-devel \
systemd-rpm-macros vulkan-loader-devel redhat-rpm-config nodejs npm \
gcc gettext
- name: Setup rpmbuild environment
run: |
useradd rpmbuild -u 5002 -g users || true
mkdir -p /home/rpmbuild/{BUILD,RPMS,SPECS,SRPMS,SOURCES}
chown -R rpmbuild:users /home/rpmbuild
echo '%_topdir /home/rpmbuild' > /home/rpmbuild/.rpmmacros
- name: Checkout PR
uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
if: github.event_name == 'pull_request'
- name: Checkout branch
uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
if: github.event_name == 'workflow_dispatch'
with:
ref: ${{ env.BUILD_BRANCH }}
- name: Copy fedora.spec
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
sed "s|git clone https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt.git|git clone -b ${{ env.PR_BRANCH }} ${{ env.PR_REPO_URL }}|" \
build-aux/fedora-git.spec > /home/rpmbuild/SPECS/${{ env.PACKAGE }}.spec
else
sed "s|git clone https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt.git|git clone -b ${{ env.BUILD_BRANCH }} https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt.git|" \
build-aux/fedora-git.spec > /home/rpmbuild/SPECS/${{ env.PACKAGE }}.spec
fi
chown -R rpmbuild:users /home/rpmbuild
- name: Build RPM
run: |
su rpmbuild -c "rpmbuild -ba /home/rpmbuild/SPECS/${{ env.PACKAGE }}.spec"
- name: Upload RPM package
uses: https://git.linux-gaming.ru/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-RPM-Fedora-${{ matrix.fedora_version }}
path: /home/rpmbuild/RPMS/**/*.rpm
build-arch:
name: Build Arch Package
runs-on: ubuntu-22.04
needs: changes
if: needs.changes.outputs.arch == 'true' || github.event_name == 'workflow_dispatch'
container:
image: archlinux:base-devel@sha256:c84ad63503efc5d386e30a5f44945fa8eee10fcb21b3d5fceda260783de394ff
steps:
- name: Prepare container
run: |
pacman -Syuu --noconfirm --disable-download-timeout --needed git wget gnupg nodejs npm
sed -i 's/#MAKEFLAGS="-j2"/MAKEFLAGS="-j$(nproc) -l$(nproc)"/g' /etc/makepkg.conf
sed -i 's/OPTIONS=(.*)/OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge lto)/g' /etc/makepkg.conf
yes | pacman -Scc
pacman-key --init
pacman -S --noconfirm archlinux-keyring
mkdir -p /__w/portproton-repo
pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
pacman-key --lsign-key 3056513887B78AEB
pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst'
pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'
cat << EOM >> /etc/pacman.conf
[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist
EOM
pacman -Syy
useradd -m user -G wheel && echo "user ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
echo "PACKAGER=\"Boris Yumankulov <boria138@altlinux.org>\"" >> /etc/makepkg.conf
chown user -R /tmp
chown user -R ..
- name: Checkout PR
uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
if: github.event_name == 'pull_request'
- name: Checkout branch
uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
if: github.event_name == 'workflow_dispatch'
with:
ref: ${{ env.BUILD_BRANCH }}
- name: Build
run: |
cd /__w/portproton-repo
if [ "${{ github.event_name }}" = "pull_request" ]; then
git clone -b ${{ env.PR_BRANCH }} ${{ env.PR_REPO_URL }} PortProtonQt
else
cp -r "$GITHUB_WORKSPACE" PortProtonQt
fi
cd /__w/portproton-repo/PortProtonQt/build-aux
if [ "${{ github.event_name }}" = "pull_request" ]; then
sed -i "s|source=(\"git+https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt.git\")|source=(\"git+${{ env.PR_REPO_URL }}#branch=${{ env.PR_BRANCH }}\")|" PKGBUILD-git
else
sed -i "s|source=(\"git+https://git.linux-gaming.ru/Boria138/PortProtonQt.git\")|source=(\"git+https://git.linux-gaming.ru/Boria138/PortProtonQt.git#branch=${{ env.BUILD_BRANCH }}\")|" PKGBUILD-git
fi
chown user -R ..
su user -c "yes '' | makepkg --noconfirm -s -p PKGBUILD-git"
- name: Upload Arch package
uses: https://git.linux-gaming.ru/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-Arch
path: ${{ env.PKGDEST }}/*
build-debian:
name: Build Debian Package
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.debian == 'true' || github.event_name == 'workflow_dispatch'
container:
image: debian:13@sha256:4ae67669760b807c19f23902a3fd7c121a6a70cf2ae709035674b23e712e4d62
options: --privileged
steps:
- name: Install build dependencies
run: |
apt-get update
apt-get install -y build-essential debhelper dpkg-dev gettext git \
libvulkan-dev meson ninja-build nodejs npm \
pkgconf python3
- name: Checkout PR
uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
if: github.event_name == 'pull_request'
- name: Checkout branch
uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
if: github.event_name == 'workflow_dispatch'
with:
ref: ${{ env.BUILD_BRANCH }}
- name: Build Debian package
run: |
dpkg-buildpackage -us -uc -b
mkdir -p dist/deb
mv ../*.deb ../*.buildinfo ../*.changes dist/deb/
- name: Upload Debian package
uses: https://git.linux-gaming.ru/actions/gitea-upload-artifact@v4
with:
name: PortProtonQt-DEB-Debian-13
path: dist/deb/*
+9 -5
View File
@@ -8,12 +8,12 @@ on:
jobs:
renovate:
runs-on: ubuntu-latest
container: ghcr.io/renovatebot/renovate:latest@sha256:eec497df1ca6ebe8bccf577c5dab8825ab5f3673a42a58f066e31dbf070664e6
container: ghcr.io/renovatebot/renovate:latest@sha256:47421f2f3f82048e969b5195dd808d5ac2c5f69d43d192191c4a3dca390afe06
steps:
- uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: https://git.linux-gaming.ru/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- name: Set up Node.js
uses: https://gitea.com/actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6
uses: https://git.linux-gaming.ru/actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
with:
node-version: 20
@@ -30,9 +30,13 @@ jobs:
-o /tmp/renovate-config/config.js
- name: Run Renovate
run: renovate
run: |
. $HOME/.local/bin/env
uv --version
renovate
env:
RENOVATE_CONFIG_FILE: "/tmp/renovate-config/config.js"
RENOVATE_BINARY_SOURCE: "global"
GITHUB_COM_TOKEN: ${{ secrets.GITHUB_COM_TOKEN }}
LOG_LEVEL: "debug"
RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }}
RENOVATE_GITHUB_COM_TOKEN: ${{ secrets.RENOVATE_GITHUB_COM_TOKEN }}
+12
View File
@@ -8,6 +8,7 @@ wheels/
# Meson
builddir/
build-deb/
# Virtual environments
.venv
@@ -39,3 +40,14 @@ Thumbs.db
# get_wine debug folder
proton_downloads
# Need for refactoring
REFRACTORING_PLAN.md
AUDIT_CHECKLIST.md
# Compiled gettext catalogs
portprotonqt/locales/*/LC_MESSAGES/*.mo
# AI
.codex
+11 -2
View File
@@ -28,7 +28,16 @@ repos:
language: system
types_or: [python, pyi]
require_serial: true
exclude: '^portprotonqt/themes/[^/]+/styles\.py$'
exclude: 'themes/.*/styles\.py$'
- repo: local
hooks:
- id: bash-n
name: bash -n
entry: ./dev-scripts/check_bash_scripts.sh
language: system
files: ^build-aux/share/portproton/scripts/
types: [file]
- repo: local
hooks:
@@ -46,5 +55,5 @@ repos:
name: Check meson.build syntax and file inclusion
entry: ./dev-scripts/check_meson_files.py
language: system
files: (^portprotonqt/.*\.py$|meson\.build$)
files: (^portprotonqt/.*\.py$|^build-aux/share/portproton/|meson\.build$)
pass_filenames: false
+836
View File
@@ -0,0 +1,836 @@
# PortProtonQt — AI Agent Guidelines
**Project:** PortProtonQt — GUI for PortProton, Steam, Epic Games Store
**Language:** Python 3.10+
**Platform:** Linux (POSIX)
**License:** GPL-3.0
**Build:** Meson + uv
---
**Summary:** AI agents MUST behave as conservative patching assistants, prioritizing minimal changes and existing patterns over architectural refactoring or code cleanup. AI MUST NOT perform architectural improvements unless explicitly requested.
**Scope:** These guidelines apply exclusively to AI-generated code. Documentation updates and human maintainers are exempt from line limits and these constraints.
## License and Attribution
- All code MUST be compatible with GPL-3.0.
- AI agents MUST NOT add `Signed-off-by` tags.
When AI contributes to the project, add an `Assisted-by` tag:
`Assisted-by: AGENT_NAME:MODEL_VERSION`
Where:
- `AGENT_NAME` is the AI agent or framework name.
- `MODEL_VERSION` is the specific model version.
Example:
`Assisted-by: Claude:claude-3-opus`
---
## Core Principles
| Principle | Required | Forbidden |
|-----------|----------|-----------|
| KISS | New/rewritten functions ≤50 lines | Deep nesting |
| YAGNI | Concrete code | Future abstractions |
| DRY | Extract methods (if directly related to task) | Copy-paste |
| SRP | 1 task per method | God functions |
| Linux | POSIX paths, shebangs | Windows-specific code |
| Minimal changes | Modify relevant section only | Rewrite entire files |
**Priority order (highest to lowest):**
1. Minimal changes (overrides DRY, SRP)
2. Security (no shell=True, no hardcoded credentials)
3. Linux compatibility
4. KISS / YAGNI
5. DRY / SRP
**When principles conflict:**
- Prefer minimal diff over extracting methods
- Prefer existing patterns over "correct" refactoring
- Prefer small targeted fix over comprehensive cleanup
- Never break security for code quality
- Remove duplicates only if directly related to current task
- Do not split untouched legacy functions only to satisfy line limits
- Do not rewrite untouched legacy files or blocks only to satisfy metrics
---
## Code Metrics
| Check | Limit |
|-------|-------|
| Functions | ≤50 lines, ≤4 params (required for new/fully rewritten functions) |
| Files | ≤800 lines (required for new/fully rewritten files) |
| Nesting | ≤4 levels (required in new/modified code) |
| Comments | English, 1-2 lines max |
| Indentation | 4 spaces (no tabs) |
| Whitespace | No trailing spaces |
| Blank lines | No excessive blank lines |
| EOF | Exactly one newline |
| Commits | English, ≤72 chars |
---
## Forbidden Patterns
```python
# NEVER: 6+ parameters
def process_game(user, ctx, log, val, map, cache): ...
# NEVER: Deep nesting
if c1:
if c2:
if c3:
if c4: ...
# NEVER: print statements
print(f"Game {name} started")
# NEVER: shell=True
subprocess.run(cmd, shell=True)
# NEVER: Hardcoded credentials
API_KEY = "sk-abc123"
# NEVER: Path traversal
file_path = f"/data/{user_filename}"
# NEVER: Hardcoded styles or constants (colors, sizes, etc.)
shadow.setBlurRadius(20)
shadow.setColor(QColor(0, 0, 0, 150))
label.setStyleSheet("color: #bbbbbb;")
QColor(128, 128, 128)
```
```python
# ALWAYS: ≤4 parameters
def process_game(game_id: str, config: dict) -> Game:
"""Process game data."""
...
# ALWAYS: Early returns
if not condition1:
return
if not condition2:
return
# ALWAYS: Logging
from portprotonqt.logger import get_logger
logger = get_logger(__name__)
logger.info("Game %s started", name)
# ALWAYS: Explicit subprocess arguments
subprocess.run(["cmd", "arg1", "arg2"])
# ALWAYS: Environment variables
API_KEY = os.getenv("API_KEY")
# ALWAYS: Sanitize paths
file_path = os.path.join(BASE_DIR, os.path.basename(user_filename))
# ALWAYS: Use theme constants for styles
shadow.setBlurRadius(self.theme.shadow_blur_radius)
shadow.setColor(QColor(self.theme.color_shadow_card))
label.setStyleSheet(self.theme.CONTENT_STYLE)
QColor(self.theme.color_disabled_text)
# ALWAYS: Add new constants to theme files
# New colors → portprotonqt/themes/standart/styles/constants.py
# New QSS styles → portprotonqt/themes/standart/styles/base.py or submodule
# Never add style constants to application code
```
---
## Code Modification Rules
- NEVER rewrite entire file unless explicitly requested
- Modify only the relevant section
- Preserve existing architecture and naming
- Do not auto-format unrelated code
- Do not change formatting-only lines without explicit user request
- Do not reorder imports unless necessary
- Do not introduce abstractions without request
- Do not change logging system
- Do not change public APIs without reason
- Do not add dependencies unless required
- Do not refactor unrelated code
- Do not modify localization files (`portprotonqt/locales/`) unless explicitly requested
- Do not extract single-use logic into a helper function without a clear need
- Do not add comments for obvious code
- **NEVER leave outdated comments after refactoring** (e.g., "without numpy" after numpy removal, "legacy" after rewrite)
- **ALWAYS update or remove comments that reference removed dependencies, patterns, or context**
- **NEVER leave stub/no-op functions** (e.g., `def func(): pass` with comment "removed")
- **When removing a feature, delete the function entirely, not stub it**
- Never invent modules
- Do not move files unless requested
- Do not create new files for organization (unless task requires a new module)
- No circular imports
- Prefer dedicated functions for subprocess calls when practical within task scope
- No shared mutable global state (except logger and explicit cache/session infrastructure)
**ALWAYS:**
- Minimal diff
- Targeted changes only
- Preserve existing patterns
- Keep surrounding code unchanged
- Keep formatting changes limited to touched logic or required hook fixes
---
## LLM Prohibitions
**Specific prohibitions for AI-generated code:**
- Add type hints to existing code unless requested (new code MUST include type hints)
- Replace existing patterns with "better" alternatives
- Consolidate similar code blocks
- Extract methods or functions without request
- Add validation or error handling outside the modified block unless it fixes a security issue or directly supports the current change
- Generate boilerplate or scaffolding
- Add configuration options
- Create new files for "organization" (unless explicitly requested for a new module)
- Split or merge existing modules
- Change function signatures
- Modify docstrings unnecessarily
- Add or remove blank lines for "style"
- Normalize or standardize code patterns
- Invent CLI arguments, config files, API endpoints, environment variables, theme structures, or localization keys
---
## AI Permissions
AI agents MAY:
- Fix obvious bugs within the modified block
- Improve variable naming inside the modified block
- Add missing logging if required by policy
- Add missing validation or error handling in new/modified code when required by this policy
- Add missing type hints in new functions
---
## Performance Rules
- No blocking I/O in UI thread
- No synchronous HTTP in UI thread
- Cache API responses in `~/.cache/PortProtonQt`
- Avoid repeated disk reads in loops
- Avoid O(n²) in game lists
- Lazy load images
- Limit threads to CPU cores
### Clarification: "No Shared Mutable Global State" Does NOT Mean Removing Caches
Rule intent: avoid shared mutable globals that hold application state or cause hidden side effects.
This does not prohibit:
- Module-level cache constants (e.g., cache TTL values)
- Dedicated cache managers or classes with explicit lifecycle
- Disk caches under `~/.cache/PortProtonQt`
- `requests.Session()` objects if they are encapsulated and not mutated unpredictably
Do not delete or disable caching or downloaders to satisfy this rule. Caching is required by the Performance Rules ("Cache API responses in `~/.cache/PortProtonQt`" and "Avoid repeated disk reads in loops").
---
## PySide6 Rules
- No business logic in widgets
- Use signals/slots (no direct coupling)
- No heavy operations in paintEvent
- Use methods instead of lambda for complex logic
- Use QThread for long tasks
---
## Refactoring Constraints
- Max 1 business module per task (unless explicitly requested)
- Related technical files are allowed in the same task (`meson.build`, tests, theme constants)
- Preserve git blame
- Avoid renaming unless necessary
---
## When Uncertain
Ask before proceeding if unsure about:
- Architecture
- Naming
- Design decisions
Do not assume conventions. Never invent behavior.
---
## Development Workflow
```bash
# Setup
uv python install 3.10
uv sync
source .venv/bin/activate
pre-commit install --install-hooks
# Run
portprotonqt
# Manual checks
pre-commit run --all-files
# Build
meson setup builddir && meson compile -C builddir
# Localization
python dev-scripts/l10n.py --update-all
python dev-scripts/l10n.py
# Commit
git commit -m "feat: description in English ≤72 chars"
```
### Pre-commit Hooks
| Hook | Checks |
|------|--------|
| uv-lock | uv.lock up to date |
| ruff-check | Linting (E, W, F, B, C4, UP) |
| pyright | Type checking |
| bash-n | Bash syntax check and shebang `CRLF` check for `build-aux/share/portproton/scripts/` |
| check-meson | meson.build syntax + files |
| check-qss-properties | Theme QSS validation |
| trailing-whitespace | Whitespace cleanup |
| end-of-file-fixer | EOF newline |
### Linting and Type-Checking
AI agents MUST NOT run linting or type-checking tools directly.
#### Forbidden
- Running `ruff`
- Running `pyright`
- Running `uv run ruff`
- Running `uv run pyright`
- Running any linter/type checker binary directly
- Installing dev tools automatically
These tools are executed ONLY via pre-commit hooks.
#### Allowed
- `pre-commit run --all-files`
- `pre-commit run ruff-check`
- `pre-commit run pyright`
#### Rationale
`ruff` and `pyright` are managed by pre-commit.
Direct execution bypasses project configuration and is forbidden.
Do not attempt to execute binaries manually.
---
## AI Agent Checklist
### Writing Code
- [ ] New/rewritten functions ≤50 lines, ≤4 params
- [ ] New/modified code nesting ≤4 levels
- [ ] LF line endings, 4-space indent
- [ ] No excessive blank lines, no trailing whitespace
- [ ] Type hints (required for new code)
- [ ] Logging via `portprotonqt.logger`
- [ ] New/modified code handles expected/recoverable failures
- [ ] New installable Python files added to `portprotonqt/meson.build`
- [ ] If CLI arguments are changed: update `dev-scripts/generate-completions.sh` (do not regenerate `completions/` unless explicitly requested for build/release)
- [ ] Comments in English, concise
- [ ] No circular imports introduced by the change
- [ ] Prefer dedicated functions for subprocess calls when practical within task scope
- [ ] No shared mutable global state (except logger and explicit cache/session infrastructure)
- [ ] No blocking calls introduced in the UI thread
- [ ] **No hardcoded styles or constants (use theme constants)**
- [ ] **New constants added to theme files only**
### Refactoring
- [ ] No code duplicates (only if directly related to current task)
- [ ] No unused imports
- [ ] No commented-out code
- [ ] No TODO without tickets
- [ ] Clear variable names
### Dependencies
- [ ] Prefer standard library
- [ ] No heavy frameworks
- [ ] No async frameworks (use QThread instead)
- [ ] No additional logging libraries
- [ ] License GPL-3.0 compatible
- [ ] If dependencies are added: added to `pyproject.toml`
- [ ] If dependencies change: `uv lock` run
---
## Error Handling Policy
### When to Rethrow
| Condition | Action | Example |
|-----------|--------|---------|
| Cannot handle locally | Rethrow | API errors in business logic |
| Need to add context | Wrap & rethrow | `raise ValueError(f"Invalid game ID: {game_id}") from e` |
| Public API boundary | Rethrow | Let caller decide |
| Expected & recoverable | Handle with fallback (log when useful) | Cache miss → fetch from source |
```python
# Bad: Silent swallow
try:
data = load_config()
except Exception:
pass
# Good: Rethrow with context
try:
data = load_config()
except FileNotFoundError as e:
raise ConfigError(f"Config not found: {path}") from e
```
### When to Log and Continue
| Condition | Action | Example |
|-----------|--------|---------|
| Non-critical failure | Log, continue | Thumbnail download failed |
| Fallback available | Log, use fallback | Cache miss → network request |
| Best-effort operation | Log, skip | Optional metadata |
| User notification only | Log, notify UI | Network timeout |
```python
# Log and continue for non-critical
try:
cover = download_cover(url)
except requests.RequestException as e:
logger.warning("Cover download failed: %s", e)
cover = QPixmap() # Use placeholder
```
### When to Fail Fast
| Condition | Action | Example |
|-----------|--------|---------|
| Critical dependency | Raise immediately | Database connection lost |
| Data corruption | Raise immediately | Invalid config format |
| Security violation | Raise immediately | Path traversal attempt |
| Unrecoverable state | Raise immediately | Missing required file |
```python
# Fail fast for critical
if not config_path.exists():
raise ConfigError(f"Required config missing: {config_path}")
```
### Exception Hierarchy
```python
# Base exception for application errors
class PortProtonError(Exception):
"""Base exception for PortProtonQt."""
# Domain-specific exceptions
class ConfigError(PortProtonError):
"""Configuration-related errors."""
class APIError(PortProtonError):
"""External API errors."""
class ValidationError(PortProtonError):
"""Input validation errors."""
class ParseError(PortProtonError):
"""Parsing-related errors."""
```
### Error Handling Patterns
```python
# Pattern 1: Guard clauses for validation
def process_game(game_id: str) -> Game:
if not game_id:
raise ValidationError("Game ID required")
...
# Pattern 2: Context manager for resources
with open(path) as f:
data = json.load(f)
# Pattern 3: Specific exception handling
try:
response = requests.get(url, timeout=5)
except requests.Timeout:
logger.warning("Request timeout for %s", url)
return None
except requests.ConnectionError:
logger.error("Connection failed for %s", url)
raise APIError("Network unavailable") from None
# Pattern 4: Exception chaining
try:
value = int(text)
except ValueError as e:
raise ParseError(f"Invalid integer: {text}") from e
```
### UI Thread Rules
| Context | Strategy |
|---------|----------|
| UI thread | Never block, use signals for errors |
| Worker thread | Catch, emit error signal |
| Async operations | Return error in result tuple |
```python
# Worker thread pattern
def run_in_thread():
try:
result = long_operation()
success_signal.emit(result)
except Exception as e:
logger.error("Operation failed: %s", e)
error_signal.emit(str(e))
```
### Logging Guidelines
| Level | When to Use |
|-------|-------------|
| DEBUG | Detailed diagnostic info |
| INFO | Normal operation events |
| WARNING | Recoverable issues |
| ERROR | Failures requiring attention |
| CRITICAL | System-wide failures |
```python
# Log with context
logger.error("Failed to load game %s: %s", game_id, e)
# Include stack trace for unexpected errors
try:
...
except Exception as e:
logger.exception("Unexpected error processing %s", game_id)
```
### Forbidden Patterns
```python
# NEVER: Bare except
try:
...
except:
pass
# NEVER: Catch Exception without logging
try:
...
except Exception:
pass
# NEVER: Silent failures in critical paths
if not critical_file.exists():
return None # Should raise
# NEVER: Multiple exceptions in one handler (unless re-throwing as a unified domain exception)
try:
...
except (FileNotFoundError, ValueError, TypeError, KeyError):
pass # Each needs separate handling
```
---
## Code Style
### Imports
```python
# Standard library
import os
from pathlib import Path
# Third-party
from PySide6.QtWidgets import QApplication
import requests
# Local
from portprotonqt.steam_api import SteamAPI
from portprotonqt.logger import get_logger
```
### Type Hints
```python
def get_game(game_id: str, cache: dict | None = None) -> Game | None:
...
class Game:
name: str
playtime: int
cover_url: str | None
```
### Theme Constants
All style-related constants MUST be defined in theme files, not in application code.
**File structure for theme constants:**
- `portprotonqt/themes/standart/styles/constants.py` — Color constants, sizes, shadow values
- `portprotonqt/themes/standart/styles/base.py` — Global widget styles (MAIN_WINDOW_STYLE, etc.)
- `portprotonqt/themes/standart/styles/game_card.py` — Game card specific styles
- `portprotonqt/themes/standart/styles/detail_page.py` — Detail page styles
- `portprotonqt/themes/standart/styles/settings.py` — Settings dialog styles
- `portprotonqt/themes/standart/styles/get_wine.py` — Wine manager styles
- `portprotonqt/themes/standart/styles/winetricks.py` — Winetricks styles
- `portprotonqt/themes/standart/styles/theme_utils.py` — Utility styles (context menus, etc.)
**Adding new constants:**
```python
# In constants.py — add color constant
color_new_feature = "#FF5733"
# In constants.py — add size constant
new_widget_size = 42
# In base.py or submodule — add QSS style
NEW_WIDGET_STYLE = f"""
QWidget {{
background: {color_new_feature};
border-radius: {border_radius_a};
}}
"""
```
**Usage in application code:**
```python
# Bad: Hardcoded in application code
shadow.setBlurRadius(20)
label.setStyleSheet("color: #bbbbbb;")
# Good: Use theme constants
shadow.setBlurRadius(self.theme.shadow_blur_radius)
label.setStyleSheet(self.theme.CONTENT_STYLE)
```
**Tooltip rule:**
- Prefer the themed `gamepad_tooltip`/`TOOLTIP_STYLE` mechanism for in-app `QWidget` tooltips
- Avoid `setToolTip()` for regular widgets when the themed tooltip can be used
- `setToolTip()` is acceptable only for APIs that are not regular widgets, such as `QSystemTrayIcon`
### Comments
```python
# NEVER: Russian or verbose
# Проверить существование файла
# ALWAYS: Concise English
# Check if file exists
if os.path.exists(path):
...
# ALWAYS: Docstrings for public APIs
def check_file_exists(path: str) -> bool:
"""Check if file exists at given path."""
...
```
---
## Code Review Guidelines
Review scope: prioritize new/modified code. Existing unrelated legacy issues should not block unless they are CRITICAL security issues. Development scripts under `dev-scripts/` follow their exemption rules unless explicitly requested.
### Security (CRITICAL)
- Hardcoded credentials
- SQL injection risks
- Missing input validation on external boundaries (user input, files, network, subprocess args)
- Insecure dependencies
- Path traversal risks
- `shell=True` in subprocess
### Code Quality (HIGH)
- New/rewritten functions >50 lines
- New/rewritten functions >4 params
- New/rewritten files >800 lines
- New/modified code nesting >4 levels
- Missing error handling for expected/recoverable failures in new/modified code
- Circular imports introduced by the change
- Shared mutable global state introduced in new/modified code (except logger and explicit cache/session infrastructure)
- Blocking calls introduced in the UI thread
### Performance (MEDIUM)
- O(n²) when O(n log n) possible
- Missing caching
- N+1 queries
### Best Practices (MEDIUM)
- Emoji usage
- TODO without tickets
- Poor variable naming (x, tmp, data)
- Magic numbers
- Non-English comments
- **Hardcoded styles or constants (colors, sizes, shadow values, etc.)**
### Review Output
```
[CRITICAL] Hardcoded API key
File: portprotonqt/steam_api.py:42
Issue: API key exposed in source code
Fix: Use environment variable
API_KEY = "sk-abc123" # Bad
API_KEY = os.getenv("API_KEY") # Good
[MEDIUM] Hardcoded style value
File: portprotonqt/game_card.py:81
Issue: Shadow color hardcoded instead of using theme
Fix: Use theme constant
shadow.setColor(QColor(0, 0, 0, 150)) # Bad
shadow.setColor(QColor(self.theme.color_shadow_card)) # Good
```
### Approval
- **Approve:** No CRITICAL or HIGH issues
- **Warning:** MEDIUM issues only
- **Block:** CRITICAL or HIGH issues found
---
## Meson Build Guidelines
The `check-meson` hook validates `meson.build` on commit.
**Checks:**
- Syntax: brackets, quotes, commas, control structures
- All `.py` files in `install_data()`
- No duplicates or missing files
### Adding Files
```meson
# portprotonqt/meson.build
install_data(
['existing.py',
'new_module.py',
],
install_dir: pythondir / meson.project_name(),
)
```
### Common Errors
```meson
# Bad: Missing comma # Bad: Unclosed
install_data( install_data(
'file1.py' 'file1.py',
'file2.py' 'file2.py'
) # Missing )
# Good
install_data(
'file1.py',
'file2.py',
)
```
---
## Project Structure
```
PortProtonQt/
├── portprotonqt/ # Python package
│ ├── app.py # Entry point
│ ├── main_window.py # Main window
│ ├── game_card.py # Game card widget
│ ├── steam_api.py # Steam integration
│ ├── egs_api.py # Epic Games integration
│ ├── theme_manager.py # Theme management
│ ├── logger.py # Logging
│ └── themes/ # Theme files
├── build-aux/ # Build resources
├── dev-scripts/ # Development scripts
├── documentation/ # Documentation
├── meson.build # Meson config
├── pyproject.toml # Python config
└── .pre-commit-config.yaml
```
---
## Development Scripts
**`dev-scripts/`** contains development utilities that are not part of the application codebase.
**Policy:**
- Scripts in `dev-scripts/` are exempt from code quality guidelines
- No type hints, linting, or code style requirements apply
- These scripts are for developer convenience only
- Do not refactor or improve dev-scripts unless explicitly requested
## PortProton Scripts
- In `build-aux/share/portproton/scripts/`, run `portprotonqt.scripts_utils` modules through the existing `python_module` function
- Do not add direct `python3 -m portprotonqt.scripts_utils.*` calls where `python_module` is available
---
## Dependencies
### Core
| Package | Purpose | License |
|---------|---------|---------|
| PySide6 | GUI | LGPL |
| Legendary | EGS integration | GPL-3.0 |
| Icoextract | Icon extraction | MIT |
| Requests | HTTP | Apache-2.0 |
| Pillow | Image handling | MIT |
### Compatibility
- Keep `dbus-fast` 2.x compatibility for Fedora
- Do not use `dbus_fast.annotations` or `DBusSignature`
**License compatibility:**
- MIT, Apache-2.0, BSD: Compatible
- LGPL: Requires dynamic linking
- Proprietary: Incompatible
---
## Resources
- [Theme documentation](documentation/theme_guide)
- [Localization guide](documentation/localization_guide)
- [Metadata override guide](documentation/metadata_override)
- [TODO list](TODO.md)
- [Changelog](CHANGELOG.md)
---
**Last updated:** 2026-03-10
**Version:** 1.2
**Status:** Release
+307
View File
@@ -3,6 +3,313 @@
Все заметные изменения в этом проекте фиксируются в этом файле.
Формат основан на [Keep a Changelog](https://keepachangelog.com/) и придерживается принципов [Semantic Versioning](https://semver.org/).
## [1.2.0] - 2026-06-10
### Added
- Добавлено удаление и переименование файла в файловом менеджере
- Добавлена поддержка Special K
- Добавлены настройки Wine, префикса и 3D Api по умолчанию
- Добавлена настройка выбора звукового драйвера
- Добавлена поддержка команд в настройке `запуск после`
- Добавлена кнопка выхода во вкладку `Система`
- Добавлена поддержка перетаскивания `.ppack` для восстановления префиксов
- Добавлен скрытый тип отображения времени, скрывающий последний запуск и проведённое время
- Добавлена сборка Deb-пакета (Debian 13+ и Ubuntu 25.04+)
- Добавлена кнопка открытия установленного приложения из карточки автоустановки
- Добавлено создание `.desktop` ярлыков под AppImage и их миграция при смене AppImage
- Добавлено обновление `steam_scripts` в миграции ярлыков
- Добавлена вкладка избранных параметров в диалог настроек exe
- Добавлена вкладка настроек vkBasalt в диалог настроек exe
- Добавлена проверка хэш-суммы после скачивания компонентов
- Добавлена поддержка запуска `.nrg`
- Начат португальский перевод `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/pt_BR/`
### Changed
- Действия управления питанием во вкладке `Система` переведены на использование `loginctl`
- В пресет MangoHud `PortProton` добавлен параметр `display_server`
- Возвращена настройка типа геймпада для подсказок: Авто, Xbox или PlayStation (для авто нужен libSDL3)
- Убрано лишнее сообщение об успешной очистке PPDB в диалоге настроек exe
- Улучшено выделение строк и читаемость комбобоксов в настройках exe
- Увеличена скорость передвижения курсора при эмуляции мыши
- Ярлыки по умолчанию создаются только внутри PortProtonQt, без копирования в меню приложений и на рабочий стол
- Обновлён WINE_LG: 11-1 -> 11-10
- Обновлён испанский перевод `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/es/`
### Fixed
- Исправлена работа Winetricks с версиями Proton/Wine имеющими путь `files/bin/wine`
- `exiftool` больше не запускается, если он не установлен
- Исправлено копирование PPDB к exe
- Исправлено отображение настроек `.bat`, `.cmd`, `.msi` и `.reg`
- Исправлена настройка запуска нативного Wayland
- Исправлен запуск PortProtonQt AppImage в режиме `--silent`
- Исправлен запуск добавленных в Steam приложений из AppImage
- Исправлено отключение скачивания контейнера во Flatpak
- Исправлено чтение XDG Base Directory в скриптах: теперь пути читаются всегда, если заданы, без привязки к Flatpak
- Исправлена миграция ярлыков на рабочем столе
- Исправлен выбор системного `MangoHud.conf` в Flatpak: сначала проверяется `~/.config`, затем `XDG_CONFIG_HOME`
- Исправлен выбор системного `vkBasalt.conf` в Flatpak: сначала проверяется `~/.config`, затем `XDG_CONFIG_HOME`
- Исправлено авто-включение MangoHud при наличии `MANGOHUD_CONFIG`
- Добавлена пропущенная поддержка `.cmd` рядом с `.bat`
- Исправлено определение каталога Steam на OpenSUSE и Deb-based системах
- Исправлен запуск игр Steam с учётом native, Snap и Flatpak установок
- Исправлена передача параметров запуска игр в Steam compatibility mode
- Исправлено определение установленных автоустановок по `.desktop`
- Исправлена загрузка встроенных цветовых схем терминала
- Исправлено попадание NFS и SMB шар в список смонтированных дисков
- Исправлено создание папки в файловом менеджере
- Исправлено редактирование имени папки в файловом менеджере
- Исправлен сброс фокуса в файловом менеджере при навигации геймпадом
- Исправлено прерывание автоустановки при выходе из карточки
- Исправлено чтение последнего запуска для приложений с пробелами в имени exe
- Исправлено отображение настроек exe с расширением в верхнем регистре
- Исправлена неработоспособность правого стика геймпада из-за обработки прокрутки
- Получение списка компонентов winetricks теперь занимает 0.11 с, а не 6.8
- Исправлено бесконечное скачивание компонентов из автоустановок, если скорость скачивания падает до нуля
### Contributors
- @VanoMJ
- @CastroFidel
- @Dervart
- @rogerio-mattos
- @gallegonovato
---
## [1.1.0] - 2026-05-26
### Added
- Добавлен диалог прогресса для создания и восстановления резервных копий префиксов
- Добавлено автосоздание ярлыков GOG игр
- Для обложек добавлена поддержка SVG
- Добавлена поддержка `.bat`, `.msi` и `.reg`
- Добавлена кнопка `Быстрый запуск` в библиотеку для открытия детальной страницы любого исполняемого файла без создания ярлыка
- Добавлена проверка доступа на чтение и запись для `PORT_DATA_PATH` при выборе и запуске
### Changed
- Обезличен интерфейс: игровые термины (Игра, Игровое время, Играть и т.д.) заменены на более общие (Приложение, Время в приложении, Запуск)
- Резервные копии `.ppack` теперь создаются через `libarchive-c` в формате `pax` с `zstd` вместо SquashFS (лучше скорость и качество сжатия)
- При ошибке загрузки обложки Steam/SGDB теперь используется иконка из `.exe`
- Удалены заголовки вкладок `Библиотека` и `Автоустановка`
- Улучшена навигация по библиотеке с клавиатуры и геймпада: фокус ставится на первую карточку, а верхние кнопки доступны из первого ряда
- Пустая библиотека теперь корректно обновляется после запуска приложения через правую кнопку мыши
- Для тем с режимом библиотеки `list` теперь используются обложки автоустановок
- Установка Wine/LG-сборок в `data/dist` теперь не зависит от настройки загрузки Proton в Steam
- При сбросе настроек PortProtonQt теперь также сбрасывается `user.conf` PortProton
- Удалён отдельный пакет `portprotonqt-steam-compat` теперь установленный через галочку режим совместимости self-update
- D-Bus операции скриптов перенесены в `scripts_utils.dbus_tools` на базе `dbus-fast`
- Настройка авто-перехода в полноэкранный режим при подключении геймпада перенесена в подпункт настройки полноэкранного запуска
### Fixed
- Исправлена некорректная установка DPI в Wine, когда опция `Использовать системный DPI` отключена
- Исправлено определение версии DXVK в логе, если у приложения отсутствует PPDB
- Исправлена пустая вкладка настроек Wine при отсутствии каталога `data/dist`
- Исправлено обновление прогресса кнопок при загрузке библиотек и зависимостей PortProton
- Исправлен повторный запуск восстановления префикса после смены темы сразу после восстановления
- Исправлена эмуляция мыши с геймпада после запуска приложений через лаунчеры
- Исправлен запуск PortProtonQt в полноэкранном режиме, если геймпад подключён до старта приложения
- Исправлено отображение префиксов `DEFAULT` и `DOTNET` при отсутствии соответствующих каталогов
- Исправлена локализация AppImage на РОСА «ФРЕШ»
- Исправлено обновление библиотеки после создания ярлыков PortProton
- Исправлен запуск `exiftool` для ярлыков с отсутствующими `.exe`
- Исправлено восстановление профиля питания после остановки приложения из трея
- Исправлено применения языка `Китайский (упрощённый)`
- Исправлено попадание служебных строк PortProton в список видеокарт и скрытие выбора видеокарты при одной доступной GPU
### Contributors
- @Castro-Fidel
- @Simple16
- @Dervart
---
## [1.0] - 2026-05-23
### Added
- Окно теперь можно перетаскивать левой кнопкой мыши по любой области
- В файловый менеджер добавлены действия создания, удаления и переименования папки
- В файловый менеджер добавлены иконки для резервных копий префиксов PortProton
- Достигнут 100% паритет с PortProton
- Добавлен экономный режим с минимальным количеством сетевых запросов
- Добавлено больше типов анимаций для карточки
- PortProtonQT теперь имеет встроенные скрипты, и не требуют установленного PortProton для работы
- Проведена общая чистка кода, как скриптов PortProton так и кода PortProtonQT
- В скриптах добавлен фикс для работы Melon Mod-Loader
- В скриптах улучшен код запрета ухода в сон и удалена зависимость от systemd
- В настройки PortProtonQt добавлена галочка `Использовать системный DPI для Wine`
- В настройки PortProtonQt добавлена галочка `Отключить скачивание контейнера` которая позволяет не скачивать Steam Runtime
- Аргумент командной строки `--silent` для запуска `exe` с минимальным треем
- В трей добавлена остановка запущенной игры
- В скриптах добавлена поддержка внешних Proton из каталогов Steam `steamapps` и `compatibilitytools.d`
- Добавлена классическая тема, приближенная по внешнему виду к PortProton для облегчения перехода на PortProtonQt
- Добавлены светлые темы
- Добавлен выбор цветовой схемы во вкладку `Темы`
- Для обложек добавлена поддержка APNG, animated WebP, GIF и JXL
- Добавлена поддержка запуска `.mdf`
- Добавлена MIME-ассоциация `.ppack` с PortProtonQt для восстановления резервных копий префиксов из файлового менеджера
- Добавлен аргумент командной строки `--restore-prefix` для восстановления резервной копии префикса
- Добавлен аргумент командной строки `--create-backup` для создания резервной копии префикса
- Добавлена приостановка фоновой активности при потере фокуса окна
- При запуске теперь генерируются отсутствующие изображения в `data/img` для найденных `.exe`
- Для игр из Steam добавлено создание ярлыков на рабочем столе и в меню
- В контекстное меню игр из Steam добавлено открытие папки игры
- В настройки добавлена загрузка Wine/Proton в Steam `compatibilitytools.d`
- В настройки добавлен выбор зеркала загрузок PortProton
- В настройки `.exe` добавлена кнопка очистки PPDB
- Аргументы командной строки `--clear-cache` и `--reset-settings`
- Добавлено переключение вкладок при клике по стрелкам навигации
- При запуске через инструмент совместимости Steam добавлена поддержка переменных PortProton
### Changed
- Бейджи источников (Steam и PortProton) теперь отображаются при любом фильтре библиотеки
- В стандартных закладках файлового менеджера добавлена домашняя папка пользователя и удалён корневой каталог `/`
- Обложки к играм из Steam теперь полностью локальные
- Улучшен механизм кеширования данных
- Тип геймпада `Xbox` `PS` теперь выбирается автоматически
- Улучшено общее управление геймпадом
- По умолчанию приложение больше не скрывается в трей при закрытии
- `PROTON_LG` и `WINE_LG` теперь отображаются первыми в списках Wine/Proton
- Вкладка автоустановок приведена к виду библиотеки
- В настройках `.exe` и debug-логе `PROTON_LG` и `WINE_LG` теперь отображаются с текущей версией
- Из debug-лога убран повторный вывод `PW_WINE_USE`, `PW_SCREEN_RESOLUTION` и `PW_SCREEN_PRIMARY`
- Карточки игр теперь помечают потерянные `.exe` и делают обложку блеклой
- При запуске игры теперь отображаются загрузка и распаковка контейнера и плагинов
- Формат BMP больше не поддерживается для обложек игр
- Автоматическое фоновое обновление Bluetooth-устройств удалено
- Улучшенно качестве иконок из `exe` файлов
- В трей добавлены компактный и детальный режимы меню
- Автоустановки теперь можно остановить
- Префиксы `DEFAULT` и `DOTNET` теперь всегда отображаются вверху списков префиксов
- Из лога удалена версия скриптов, так как скрипты теперь внутри PortProtonQt
- Из downloader удалена отдельная проверка сети через Yandex и Google
- Выбор видеокарты теперь не отображается в настройках PortProtonQt если видеокарта всего одна
- Через тему теперь можно указать режим сетки библиотеки
- Теме теперь можно указать из какой темы наследоваться, а не только из стандартной
- Виртуальная клавиатура теперь имеет анимацию появления
- В настройках MangoHud и Gamescope при выключении, а также при использовании системного конфига MangoHud теперь скрываются лишние элементы управления
- Поле запуска второго `.exe` теперь поддерживает относительные пути
- Сетка библиотеки теперь обновляется после восстановления резервной копии префикса
- Xterm заменён на самописный терминал с улучшенной интеграцией с winecmd
- `PROTON_LG` обновлён до версии `10-30`
- Удалена поддержка запуска через `muvm` и аргумент командной строки `--force-muvm`
- Начат испанский перевод `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/es/`
- Добавлен перевод на Китайский (упрощённый) `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/zh_Hans/`
- Пресет MangoHud `Стандартный PortProton` переименован в `PortProton`
### Fixed
- Исправлено определение `PW_USE_RUNTIME` в debug-логе
- SGDB теперь не пытается получить обложки для игр из автоустовок
- Оптимизирован предпросмотр изображений в файловом менеджере
- Исправлено зависание интерфейса при открытии раздела Bluetooth в системе без физического Bluetooth-адаптера
- Исправлено лишнее пустое пространство в выпадающих списках `QComboBox`
- Исправлена прокрутка страницы колесом мыши над закрытым `QComboBox`
- Исправлено дёрганное переключение между библиотекой и автоустановками
- Детальная страница игры теперь открывается плавнее при загрузке обложки
- Steam Compatdata теперь учитывает Flatpak-установку PortProtonQt
- Аргумент `--resolution` теперь не разворачивает окно если `start_minimized = True`
- Исправлено создание и удаление ярлыков через контекстное меню для игр с именем из `custom_data`
- `custom_data` теперь применяется сразу после добавления игры из автоустановок и редактирования ярлыка
- Исправлено управление геймпадом в диалоге выбора файла для загрузки PPDB
- Исправлен повторный вывод одинаковых Vulkan GPU в `vk_gpu_info`
- Исправлена работа клавиатурного управления при раскладке, отличной от английской
- Исправлена загрузка данных HowLongToBeat
- Исправлена навигация геймпадом к кнопке выбора второго `.exe`
- Исправлено размытие SVG-иконок при масштабировании интерфейса
- В настройках игр из Steam больше не отображаются неподдерживаемые Wine/Proton
- Исправлена работа portablle версии gamemode
- Исправлен запуск через инструмент совместимости Steam без файла `.ppdb`
### Contributors
- @Dervart
- @Castro-Fidel
- @Simple16
- @gallegonovato
- @Poesty Li
---
## [0.1.12] - 2026-04-17
### Added
- В настройки PortProton добавлена галочка добавления/удаления инструмента совместимости Steam
- В настройки библиотеки добавлен скрытый тип отображения бейджей
- Добавлена валидация конфига
- Аргумент командной строки `--add-steam-compat-tool` для использования PortProtonQt как инструмента совместимости Steam
- Аргумент командной строки `--reinstall-steam-compat-tool` для переустановки инструмента совместимости Steam в пользовательском каталоге
- Аргумент командной строки `--remove-steam-compat-tool` для удаления инструмента совместимости Steam из пользовательского каталога
- В репозиторий добавлен пакет `portprotonqt-steam-compat` для глобального добавления PortProtonQt как инструмента совместимости Steam
- Добавлена кнопка настроек для игр из Steam, если PortProtonQt используется как инструмент совместимости
- Добавлен прогресс-бар скачивания Wine на детальной странице игры
- Возможность прямого запуска `.exe` через CLI
- Ленивая загрузка данных автоустановок: обложки и метаданные не загружаются, если вкладка скрыта в настройках или пользователь на неё не заходит
- Добавлена кнопка Cancel в диалог управления Wine/Proton для закрытия в WM без рамок окна
- Аргумент командной строки `--resolution` для запуска приложения с определённым разрешением (например, 1920x1080)
- В настройки `.exe` добавлены параметры MangoHud
- В настройки `.exe` добавлены параметры Gamescope
- В настройки `.exe` добавлен выбор второго `.exe` через встроенный файловый менеджер
- В настройки библиотеки добавлен выбор типа бейджей: `Детальный` и `Компактный`
- Создания нового префикса
- Автодополнение fish и zsh для команды `portprotonqt`.
- В диалог добавления/редактирования игры добавлены галочки добавления в Steam, меню и на рабочий стол
- В настройки добавлены опции автозапуска и запуска приложения сразу в трей
- Добавлена поддержка запуска `.iso` (CLI, drag-and-drop и диалог добавления игры)
- На вкладке MangoHud добавлена кнопка записи системного `MangoHud.conf` из текущего env-конфига
- Добавлена вкладка `System` с разделами WIFI, VPN, Bluetooth, Storage, Audio и Power (включается через `--ppqtos`)
- Добавлен аргумент командной строки `--ppqtos` для открытия вкладки `System`
### Changed
- Проверка подключения к интернету теперь использует Yandex как основной сервер с Google в качестве fallback
- Переработан внешний вид вкладки «Настройки PortProton»
- Детальная страница игры адаптирована под маленькие экраны
- На детальной странице Steam-игр добавлена кнопка «Открыть папку с игрой»
- При добавлении и удалении игры из Steam теперь не пишется о необходимости перезапуска, если используется CEF, а не VDF
- Все комментарии в коде переведены на английский язык
- Все комментарии в коде теперь используют модуль logger
- При включении MangoHud в настройках exe также добавляется `MANGOHUD_CONFIG`, если его нет
- Начат рефакторинг скриптов
- Ускорен запуск программы на ~47%
- Снижение потребления памяти на ~17%
- pyproject теперь используется только как менеджер зависимостей для UV, сборка через него больше невозможна
- Скриншоты в metainfo теперь размера 1000x700 для соответствия стандартам Flathub
- Все подсказки при наведении теперь имеют общий вид
- Все константы теперь вынесены в файлы тем
- Все контекстные меню теперь имеют общий вид
- Все таблицы теперь имеют общий вид
- На вкладке «Темы» добавлена явная подсветка фокуса для списка тем, карусели скриншотов и кнопки применения
- Удалены подписи скриншотов тем
- Системный оверлей переработан и перенесён в отдельную вкладку `System`
### Fixed
- Исправлены высокая нагрузка на CPU и утечка памяти при изменении размера карточек
- Скачивание обложек со SteamGridDB теперь асинхронное и не вызывает зависание окна
- Уменьшен таймаут запроса к SteamGridDB с 10 до 3 секунд, чтобы не тормозить запуск при медленном 404
- Запуск игр из трея
- Исправлено обновление сетки библиотеки при удалении карточки игры
- Исправлено отображение пустых вложенных подменю в трее в Dank Material Shell и GNOME.
- Получение статуса античита для игр из Steam
- Кэш обложек со SteamCDN
- Исправлена эмуляция прокрутки через Bluetooth-геймпад в режиме эмуляции мыши
- Исправлен выбор статистики времени: теперь приоритет у совпадающего `sha256` `.exe`, затем у точного пути, а при удалении игры очищается её запись в `data/tmp/statistics`
- Исправлены некорректные комментарии в CSS для combobox
- Исправлена валидация синтаксиса комментариев CSS и опечатки в winetricks.py
- Перевод кнопок «Yes»/«No» в QMessageBox
- Виртуальная клавиатура теперь открывается сверху, если перекрывает поле ввода
- Кнопка «Загрузить резервную копию префикса» больше не выходит за границы окна
- Подсказки управления больше не накладываются друг на друга в маленьком окне
- Исправлено некорректное попадание фокуса на метаинформацию темы при навигации геймпадом
- Навигация геймпадом на вкладке «Темы» ограничена элементами: список тем, карусель скриншотов и кнопка «Применить тему»
- При наличии `custom_data` отключены сетевые запросы обложек к SGDB и SteamCDN для карточек игр
- Отключён автоскролл `QComboBox` колесом мыши, когда выпадающий список закрыт
- Исправлен поиск `.desktop` при несовпадении имени карточки и файла (в том числе после редактирования): добавлено сопоставление через `custom_data/*/metadata.txt` (`name`) с fallback по данным `.desktop`
- Виртуальная клавиатура теперь адаптирует ширину кнопок под размер окна
- Усилена общая безопасность механизма пользовательских тем, включая валидацию, проверки загрузки и устойчивость к некорректным/потенциально опасным темам
- Улучшено формирование ссылок WeAntiCheatYet
### Contributors
- @Simple16
- @Dervart
---
## [0.1.11] - 2026-02-18
### Added
Symlink
+1
View File
@@ -0,0 +1 @@
AGENTS.md
Symlink
+1
View File
@@ -0,0 +1 @@
AGENTS.md
+345 -9
View File
@@ -86,15 +86,351 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
==============
= legendary: =
==============
GNU General Public License v3.0
===============================
= mdf2iso : =
===============================
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (c) 2020–2025 Derek Taylor and contributors
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Legendary is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation, version 3.
Preamble
https://github.com/derrod/legendary
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
Symlink
+1
View File
@@ -0,0 +1 @@
AGENTS.md
+18 -13
View File
@@ -1,7 +1,7 @@
<div align="center">
<img src="build-aux/share/icons/hicolor/scalable/apps/ru.linux_gaming.PortProtonQt.svg" width="64">
<h1 align="center">PortProtonQt</h1>
<p align="center">Удобный графический интерфейс для управления и запуска игр из PortProton, Steam и Epic Games Store. Оно объединяет библиотеки игр в единый центр для лёгкой навигации и организации. Лёгкая структура и кроссплатформенная поддержка обеспечивают цельный игровой опыт без необходимости использования нескольких лаунчеров. Интеграция с PortProton упрощает запуск Windows-игр на Linux с минимальной настройкой.</p>
<p align="center">Современный и удобный интерфейс для управления и запуска игр из PortProton и Steam. Объединяет библиотеки в одном месте и упрощает запуск Windows-игр на Linux.</p>
</div>
### Установка (devel)
@@ -9,7 +9,9 @@
```sh
uv python install 3.10
uv sync
source .venv/bin/activate
source .venv/bin/activate # For bash/zsh
# or
source .venv/bin/activate.fish # For fish
```
Запуск производится по команде portprotonqt
@@ -22,16 +24,21 @@ source .venv/bin/activate
### Разработка
В проект встроен линтер (ruff), статический анализатор (pyright) и проверка lock файла, если эти проверки не пройдут PR не будет принят, поэтому перед коммитом введите такую команду
Для автоматической подготовки окружения (установка Python 3.10, зависимостей, pre-commit хуков и генерация переводов) выполните скрипт:
```sh
uv python install 3.10
uv sync --all-extras --dev
source .venv/bin/activate
pre-commit install
./dev-scripts/prepare_env.sh
```
pre-commit сам запустится при коммите, если вы хотите запустить его вручную введите команду
Затем активируйте виртуальное окружение. Команда активации для вашей оболочки будет выведена в конце работы скрипта. Обычно это:
```sh
source .venv/bin/activate # Для bash/zsh
# или
source .venv/bin/activate.fish # Для fish
```
pre-commit сам запустится при коммите, если вы хотите запустить его вручную введите команду:
```sh
pre-commit run --all-files
@@ -45,19 +52,17 @@ pre-commit run --all-files
### Контрибьюторы
Мы благодарим всех, кто внёс вклад в развитие PortProtonQt, включая тех, кто участвует через коммиты, а также тех, кто помогает другими способами (тестирование, идеи, переводы, документация и т.д.). Полный список участников, можно найти в [списке активности репозитория](https://git.linux-gaming.ru/Boria138/PortProtonQt/activity/contributors). Дополнительные участники также перечислены в файле [CHANGELOG.md](CHANGELOG.md). Если вы внесли вклад, но не указаны, свяжитесь с основными разработчиками, чтобы мы могли вас отметить!
Мы благодарим всех, кто внёс вклад в развитие PortProtonQt, включая тех, кто участвует через коммиты, а также тех, кто помогает другими способами (тестирование, идеи, переводы, документация и т.д.). Полный список участников, можно найти в [списке активности репозитория](https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/activity/contributors). Дополнительные участники также перечислены в файле [CHANGELOG.md](CHANGELOG.md). Если вы внесли вклад, но не указаны, свяжитесь с основными разработчиками, чтобы мы могли вас отметить!
## Зависимости и лицензии
PortProtonQt использует код и зависимости от следующих проектов:
- [Legendary](https://github.com/derrod/legendary) — инструмент для работы с Epic Games Store, лицензия [GPL-3.0](https://github.com/derrod/legendary/blob/master/LICENSE).
- [Icoextract](https://github.com/jlu5/icoextract) — библиотека для извлечения иконок, лицензия [MIT](https://github.com/jlu5/icoextract/blob/master/LICENSE).
- [HowLongToBeat Python API](https://github.com/ScrappyCocco/HowLongToBeat-PythonAPI) — библиотека для взаимодействия с HowLongToBeat, лицензия [MIT](https://github.com/ScrappyCocco/HowLongToBeat-PythonAPI/blob/master/LICENSE.md).
- [iat](https://sourceforge.net/projects/iat.berlios) — библиотека для конвертации mdf и nrg в iso, лицензия GPLv3
- [pyte](https://github.com/selectel/pyte) — разбор ANSI escape-кодов, лицензия [LGPLv3](https://github.com/selectel/pyte?tab=LGPL-3.0-1-ov-file)
Полный текст лицензий см. в файле [LICENSE](LICENSE).
> [!WARNING]
> Проект находится на стадии WIP (work in progress) корректная работоспособность не гарантирована
> [!WARNING]
> **Будьте осторожны!** Если вы берёте тему не из официального репозитория или надёжного источника, убедитесь, что в её файле `styles.py` нет вредоносного или нежелательного кода. Поскольку `styles.py` — это обычный Python-файл, он может содержать любые инструкции. Всегда проверяйте содержимое чужих тем перед использованием.
+3 -12
View File
@@ -5,11 +5,10 @@
- [X] Добавить систему тем [Документация](documentation/theme_guide)
- [X] Вынести все константы, такие как уровень закругления карточек, в темы (частично выполнено)
- [X] Добавить метаданные для тем (скриншоты, описание, домашняя страница и автор)
- [ ] Продумать систему вкладок вместо текущей
- [X] [Добавить сессию Gamescope, аналогичную той, что используется в SteamOS](https://git.linux-gaming.ru/Boria138/gamescope-session-portprotonqt)
- [X] Разобраться почему теряется часть стилей в Gamescope
- [ ] Разработать адаптивный дизайн (за эталон берётся Steam Deck с разрешением 1280×800)
- [ ] Переделать скриншоты для соответствия [гайдлайнам Flathub](https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines/quality-guidelines#screenshots)
- [x] Разработать адаптивный дизайн (за эталон берётся 1000x700 из гайдлайнов Flathub)
- [x] Переделать скриншоты для соответствия [гайдлайнам Flathub](https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines/quality-guidelines#screenshots)
- [X] Получать описания и названия игр из базы данных Steam
- [X] Получать обложки для игр из CDN Steam
- [X] Оптимизировать работу со Steam API для ускорения времени запуска
@@ -22,7 +21,7 @@
- [X] Добавить сортировку карточек по различным критериям (доступны: по недавности, количеству наигранного времени, избранному или алфавиту)
- [X] Добавить индикацию запуска приложения
- [X] Достигнуть паритета функциональности с Ingame
- [ ] Достигнуть паритета функциональности с PortProton (остались настройки игр и обновление скриптов)
- [X] Достигнуть паритета функциональности с PortProton
- [X] Добавить возможность изменения названия, описания и обложки через файлы `.local/share/PortProtonQT/custom_data/exe_name/{desc,name,cover}`
- [X] Добавить встроенное переопределение названия, описания и обложки, например, по пути `portprotonqt/custom_data` [Документация](documentation/metadata_override/)
- [X] Добавить переводы в переопределения
@@ -31,14 +30,6 @@
- [X] Добавить в карточки данные с AreWeAntiCheatYet
- [X] Продублировать бейджи с карточки на страницу с деталями игры
- [X] Добавить парсинг ярлыков из Steam
- [X] Добавить парсинг ярлыков из EGS
- [ ] Избавиться от бинарника legendary
- [X] Добавить запуск игр из EGS
- [ ] Добавить скачивание игр из EGS
- [ ] Добавить поддержку запуска сторонних игр из EGS
- [ ] Добавить авторизацию в EGS через WebView вместо ручного ввода
- [X] Получать описания для игр из EGS через их [API](https://store-content.ak.epicgames.com/api)
- [X] Получать slug через GraphQL [запрос](https://launcher.store.epicgames.com/graphql)
- [X] Добавить на карточку бейдж, указывающий, что игра из Steam
- [X] Добавить поддержку версий Steam для Flatpak и Snap
- [X] Реализовать добавление игры как сторонней в Steam без перезапуска
+18 -4
View File
@@ -5,7 +5,7 @@ set -eu
# Initialize variables
LOCAL_MODE=false
BRANCH="main"
REPO_URL="https://git.linux-gaming.ru/Boria138/PortProtonQt.git"
REPO_URL="https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt.git"
# Parse arguments
while [ $# -gt 0 ]; do
@@ -47,7 +47,7 @@ if [ "$LOCAL_MODE" = true ]; then
PPQT_PKGBUILD=""
else
echo "Using stable version of PortProtonQt from main branch..."
PPQT_PKGBUILD="https://git.linux-gaming.ru/Boria138/PortProtonQt/raw/branch/main/build-aux/PKGBUILD"
PPQT_PKGBUILD="https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/branch/main/build-aux/PKGBUILD"
fi
echo "Tweak makepkg..."
@@ -88,7 +88,7 @@ EOM
# Disable locale noextract
sed -i -E 's@[[:space:]]*usr/share/locale/\*@@g; s@[[:space:]]+@ @g; s@[[:space:]]+$@@' /etc/pacman.conf
pacman -Syy
pacman -Syyu --noconfirm --disable-download-timeout
echo "Building PortProtonQt from PKGBUILD..."
echo "---------------------------------------------------------------"
@@ -97,9 +97,23 @@ if [ "$LOCAL_MODE" = true ]; then
else
wget --retry-connrefused --tries=30 "$PPQT_PKGBUILD" -O ./PKGBUILD
fi
sed -i "s|source=(\"git+https://git.linux-gaming.ru/Boria138/PortProtonQt.git\")|source=(\"git+${REPO_URL}#branch=$BRANCH\")|" PKGBUILD
sed -i "s|source=(\"git+https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt.git\")|source=(\"git+${REPO_URL}#branch=$BRANCH\")|" PKGBUILD
makepkg -si --noconfirm
echo "Installing optional runtime dependencies from PKGBUILD..."
echo "---------------------------------------------------------------"
OPTDEPENDS_PACKAGES="$(sed -n '/optdepends=(/,/)/p' PKGBUILD \
| grep -o "'[^']*'" \
| sed "s/'//g" \
| awk -F: '{print $1}' \
| tr '\n' ' ' \
| xargs)"
if [ -n "${OPTDEPENDS_PACKAGES// /}" ]; then
# Install all optional dependencies used by system integrations.
pacman -S --needed --noconfirm $OPTDEPENDS_PACKAGES
fi
echo "Installing debloated packages..."
echo "---------------------------------------------------------------"
wget --retry-connrefused --tries=30 "$EXTRA_PACKAGES" -O ./get-debloated-pkgs.sh
+10 -1
View File
@@ -11,6 +11,7 @@ export DESKTOP=/usr/share/applications/ru.linux_gaming.PortProtonQt.desktop
export ICON=/usr/share/icons/hicolor/scalable/apps/ru.linux_gaming.PortProtonQt.svg
export OUTNAME=PortProtonQt-"$VERSION"-anylinux-"$ARCH".AppImage
export DEPLOY_OPENGL=1
export DEPLOY_SDL=1
export DEPLOY_SYS_PYTHON=1
export OPTIMIZE_LAUNCH=1
@@ -25,6 +26,14 @@ chmod +x ./quick-sharun
mkdir -p ./AppDir/etc/udev/rules.d
cp /usr/lib/udev/rules.d/60-portprotonqt.rules ./AppDir/etc/udev/rules.d
# Add PortProton scripts
mkdir -p ./AppDir/share
if [ -d /usr/local/share/portproton ]; then
cp -r /usr/local/share/portproton ./AppDir/share
elif [ -d /usr/share/portproton ]; then
cp -r /usr/share/portproton ./AppDir/share
fi
# Deploy dependencies
# Qt libs have to be passed manually due to the app being a python script
./quick-sharun \
@@ -32,7 +41,7 @@ cp /usr/lib/udev/rules.d/60-portprotonqt.rules ./AppDir/etc/udev/rules.d
/usr/lib/libQt6Core.so* \
/usr/lib/libQt6Gui.so* \
/usr/lib/libQt6Network.so* \
/usr/lib/libudev.so*
/usr/lib/qt6/plugins/imageformats/libqwebp.so
# Turn AppDir into AppImage
./quick-sharun --make-appimage
+28 -11
View File
@@ -1,15 +1,17 @@
pkgname=portprotonqt
pkgver=0.1.11
pkgname=('portprotonqt')
pkgver=1.2.0
pkgrel=1
pkgdesc="Modern GUI for managing and launching games from PortProton, Steam, and Epic Games Store"
pkgdesc="Modern GUI for managing and launching games from PortProton and Steam"
arch=('any')
url="https://git.linux-gaming.ru/Boria138/PortProtonQt"
url="https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt"
license=('GPL-3.0')
depends=('python-requests' 'python-babel' 'python-evdev' 'python-pyudev' 'python-orjson'
'python-psutil' 'python-tqdm' 'python-vdf' 'python-libarchive-c' 'pyside6' 'python-rapidfuzz' 'icoextract' 'python-pillow' 'perl-image-exiftool' 'python-beautifulsoup4' 'python-websocket-client' 'cabextract' 'unzip' 'curl' 'unrar' 'qt6-svg' 'pciutils' 'mesa-utils' 'vulkan-icd-loader')
depends_aarch64=('muvm')
makedepends=('meson' 'ninja' 'vulkan-headers')
source=("git+https://git.linux-gaming.ru/Boria138/PortProtonQt#tag=v$pkgver")
depends=('python-requests' 'python-babel' 'python-evdev' 'python-pygame' 'python-orjson'
'python-psutil' 'python-tqdm' 'python-vdf' 'python-libarchive-c' 'pyside6' 'python-rapidfuzz' 'python-pefile' 'python-pillow' 'perl-image-exiftool' 'python-websocket-client' 'cabextract' 'unzip' 'curl' 'jq' 'file' 'findutils' 'gawk' 'grep' 'tar' 'xz' 'zstd' 'gzip' 'unrar' 'qt6-svg' 'qt6-imageformats' 'pciutils' 'mesa-utils' 'vulkan-icd-loader' 'procps-ng' 'psmisc' '7zip' 'python-dbus-fast' 'sdl3')
makedepends=('meson' 'ninja' 'vulkan-headers' 'gettext')
conflicts=("portprotonqt-steam-compat")
provides=('portprotonqt-steam-compat')
replaces=('portprotonqt-steam-compat')
source=("git+https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt#tag=v$pkgver")
sha256sums=('SKIP')
build() {
@@ -17,6 +19,21 @@ build() {
meson compile -C build
}
package() {
meson install -C build --destdir "$pkgdir"
package_portprotonqt() {
pkgdesc="Modern GUI for managing and launching games from PortProton and Steam"
optdepends=(
'networkmanager: System tab network management'
'bluez: System tab bluetooth management'
'upower: System tab bluetooth battery level'
'libpulse: System tab audio volume/output management'
'python-qrcode: Wi-Fi QR code generation'
'squashfs-tools: for legacy PortProton prefix backup support'
)
DESTDIR="$pkgdir" meson install -C build --skip-subprojects
bash "$srcdir/PortProtonQt/dev-scripts/generate-completions.sh"
install -Dpm 0644 "$srcdir/PortProtonQt/completions/portprotonqt" -t "$pkgdir/usr/share/bash-completion/completions"
install -Dpm 0644 "$srcdir/PortProtonQt/completions/portprotonqt.fish" -t "$pkgdir/usr/share/fish/vendor_completions.d"
install -Dpm 0644 "$srcdir/PortProtonQt/completions/_portprotonqt" -t "$pkgdir/usr/share/zsh/site-functions"
}
+28 -11
View File
@@ -1,15 +1,17 @@
pkgname=portprotonqt-git
pkgname=('portprotonqt-git')
pkgver=.
pkgrel=1
pkgdesc="Modern GUI for managing and launching games from PortProton, Steam, and Epic Games Store.(developerment build)"
pkgdesc="Modern GUI for managing and launching games from PortProton and Steam (development build)"
arch=('any')
url="https://git.linux-gaming.ru/Boria138/PortProtonQt"
url="https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt"
license=('GPL-3.0')
depends=('python-requests' 'python-babel' 'python-evdev' 'python-pyudev' 'python-orjson'
'python-psutil' 'python-tqdm' 'python-vdf' 'python-libarchive-c' 'pyside6' 'python-rapidfuzz' 'icoextract' 'python-pillow' 'perl-image-exiftool' 'python-beautifulsoup4' 'python-websocket-client' 'cabextract' 'unzip' 'curl' 'unrar' 'qt6-svg' 'pciutils' 'mesa-utils' 'vulkan-icd-loader')
depends_aarch64=('muvm')
makedepends=('meson' 'ninja' 'vulkan-headers')
source=("git+https://git.linux-gaming.ru/Boria138/PortProtonQt.git")
depends=('python-requests' 'python-babel' 'python-evdev' 'python-pygame' 'python-orjson'
'python-psutil' 'python-tqdm' 'python-vdf' 'python-libarchive-c' 'pyside6' 'python-rapidfuzz' 'python-pefile' 'python-pillow' 'perl-image-exiftool' 'python-websocket-client' 'cabextract' 'unzip' 'curl' 'jq' 'file' 'findutils' 'gawk' 'grep' 'tar' 'xz' 'zstd' 'gzip' 'unrar' 'qt6-svg' 'qt6-imageformats' 'pciutils' 'mesa-utils' 'vulkan-icd-loader' 'procps-ng' 'psmisc' '7zip' 'python-dbus-fast' 'sdl3')
makedepends=('meson' 'ninja' 'vulkan-headers' 'gettext')
conflicts=("portprotonqt-steam-compat")
provides=('portprotonqt-steam-compat')
replaces=('portprotonqt-steam-compat')
source=("git+https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt.git")
sha256sums=('SKIP')
pkgver() {
@@ -18,10 +20,25 @@ pkgver() {
}
build() {
arch-meson PortProtonQt build
arch-meson PortProtonQt build -Dnightly=true
meson compile -C build
}
package() {
meson install -C build --destdir "$pkgdir"
package_portprotonqt-git() {
pkgdesc="Modern GUI for managing and launching games from PortProton and Steam (development build)"
optdepends=(
'networkmanager: System tab network management'
'bluez: System tab bluetooth management'
'upower: System tab bluetooth battery level'
'libpulse: System tab audio volume/output management'
'python-qrcode: Wi-Fi QR code generation'
'squashfs-tools: for legacy PortProton prefix backup support'
)
DESTDIR="$pkgdir" meson install -C build --skip-subprojects
bash "$srcdir/PortProtonQt/dev-scripts/generate-completions.sh"
install -Dpm 0644 "$srcdir/PortProtonQt/completions/portprotonqt" -t "$pkgdir/usr/share/bash-completion/completions"
install -Dpm 0644 "$srcdir/PortProtonQt/completions/portprotonqt.fish" -t "$pkgdir/usr/share/fish/vendor_completions.d"
install -Dpm 0644 "$srcdir/PortProtonQt/completions/_portprotonqt" -t "$pkgdir/usr/share/zsh/site-functions"
}
+50 -16
View File
@@ -1,5 +1,5 @@
%global pypi_name portprotonqt
%global pypi_version 0.1.11
%global pypi_version 1.2.0
%global oname PortProtonQt
%global build_timestamp %(date +"%Y%m%d")
%global _python_no_extras_requires 1
@@ -9,66 +9,89 @@
Name: %{pypi_name}-git
Version: %{pypi_version}
Release: %{rel_build}
Summary: Modern GUI for managing and launching games from PortProton, Steam, and Epic Games Store (development build)
Summary: Modern GUI for managing and launching games from PortProton and Steam (development build)
License: GPL-3.0
URL: https://git.linux-gaming.ru/Boria138/PortProtonQt
ExclusiveArch: x86_64 aarch64
URL: https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt
ExclusiveArch: x86_64
BuildRequires: meson >= 0.61.2
BuildRequires: ninja-build
BuildRequires: python3-devel
BuildRequires: git
BuildRequires: gettext
BuildRequires: systemd-rpm-macros
BuildRequires: vulkan-loader-devel
BuildRequires: gcc
Obsoletes: python3-%{pypi_name}-git < %{version}-%{release}
Provides: python3-%{pypi_name}-git = %{version}-%{release}
Requires: python3-babel
Requires: python3-evdev
Requires: python3-icoextract
Requires: python3-websocket-client
Requires: python3-orjson
Requires: python3-psutil
Requires: python3-pyside6
Requires: python3-pyudev
Requires: python3-pygame
Requires: python3-requests
Requires: python3-tqdm
Requires: python3-vdf
Requires: python3-pefile
Requires: python3-pillow
Requires: python3-beautifulsoup4
Requires: python3-pillow-qt
Requires: python3-rapidfuzz
Requires: python3-libarchive-c
Requires: perl-Image-ExifTool
Requires: SDL3
Requires: qt6-qtsvg
Requires: qt6-qtimageformats
Requires: cabextract
Requires: gzip
Requires: unzip
Requires: curl
Requires: jq
Requires: file
Requires: findutils
Requires: gawk
Requires: grep
Requires: tar
Requires: xz
Requires: zstd
Requires: unrar
Requires: glx-utils
Requires: pciutils
Requires: vulkan-loader
Requires: procps-ng
Requires: psmisc
Requires: 7zip
Requires: python3-dbus-fast
%ifarch aarch64
Requires: muvm
%endif
# System Tab
Recommends: NetworkManager
Recommends: bluez
Recommends: upower
Recommends: pulseaudio-utils
Recommends: python3-qrcode
# For legacy PortProton prefix backup support
Recommends: squashfs-tools
Obsoletes: %{pypi_name}-steam-compat < %{?epoch:%{epoch}:}%{version}-%{release}
Provides: %{pypi_name}-steam-compat = %{?epoch:%{epoch}:}%{version}-%{release}
%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.
A modern and intuitive interface for managing and launching games from PortProton and Steam. Combines libraries in one place and simplifies running Windows games on Linux.
%{?python_disable_dependency_generator}
BuildRequires: vulkan-loader-devel
BuildRequires: gcc
%prep
git clone https://git.linux-gaming.ru/Boria138/PortProtonQt.git
git clone https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt.git
%build
cd %{oname}
%meson \
-Dnightly=true \
-Dpython_purelibdir=%{python3_sitelib} \
-Dudev_rulesdir=%{_udevrulesdir}
%meson_build
@@ -76,16 +99,27 @@ cd %{oname}
%install
cd %{oname}
%meson_install
bash ./dev-scripts/generate-completions.sh
install -Dpm 0644 ./completions/portprotonqt -t %{buildroot}%{bash_completions_dir}
install -Dpm 0644 ./completions/portprotonqt.fish -t %{buildroot}%{fish_completions_dir}
install -Dpm 0644 ./completions/_portprotonqt -t %{buildroot}%{zsh_completions_dir}
%find_lang %{pypi_name}
%files -f %{oname}/%{pypi_name}.lang
%{_bindir}/%{pypi_name}
%{_bindir}/vk_gpu_info
%{python3_sitelib}/%{pypi_name}/
%{_datadir}/icons/hicolor/scalable/apps/ru.linux_gaming.PortProtonQt.svg
%{_metainfodir}/ru.linux_gaming.PortProtonQt.metainfo.xml
%{_udevrulesdir}/60-portprotonqt.rules
%{_datadir}/polkit-1/rules.d/ru.linux_gaming.PortProtonQt.rules
%{_datadir}/applications/ru.linux_gaming.PortProtonQt.desktop
%{_datadir}/mime/packages/ru.linux_gaming.PortProtonQt.xml
%{_datadir}/portproton/scripts/
%{_datadir}/portproton/conf/
%{_datadir}/portproton/img/
%{bash_completions_dir}/portprotonqt
%{_bindir}/vk_gpu_info
%{fish_completions_dir}/portprotonqt.fish
%{zsh_completions_dir}/_portprotonqt
%changelog
+49 -16
View File
@@ -1,67 +1,89 @@
%global pypi_name portprotonqt
%global pypi_version 0.1.11
%global pypi_version 1.2.0
%global oname PortProtonQt
%global _python_no_extras_requires 1
Name: %{pypi_name}
Version: %{pypi_version}
Release: 1%{?dist}
Summary: Modern GUI for managing and launching games from PortProton, Steam, and Epic Games Store
Summary: Modern GUI for managing and launching games from PortProton and Steam
License: GPL-3.0
URL: https://git.linux-gaming.ru/Boria138/PortProtonQt
ExclusiveArch: x86_64 aarch64
URL: https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt
ExclusiveArch: x86_64
BuildRequires: meson >= 0.61.2
BuildRequires: ninja-build
BuildRequires: python3-devel
BuildRequires: git
BuildRequires: gettext
BuildRequires: systemd-rpm-macros
BuildRequires: vulkan-loader-devel
BuildRequires: gcc
Obsoletes: python3-%{pypi_name} < %{version}-%{release}
Provides: python3-%{pypi_name} = %{version}-%{release}
Requires: python3-babel
Requires: python3-evdev
Requires: python3-icoextract
Requires: python3-websocket-client
Requires: python3-orjson
Requires: python3-psutil
Requires: python3-pyside6
Requires: python3-pyudev
Requires: python3-pygame
Requires: python3-requests
Requires: python3-tqdm
Requires: python3-vdf
Requires: python3-pefile
Requires: python3-pillow
Requires: python3-beautifulsoup4
Requires: python3-pillow-qt
Requires: python3-rapidfuzz
Requires: python3-libarchive-c
Requires: perl-Image-ExifTool
Requires: SDL3
Requires: qt6-qtsvg
Requires: qt6-qtimageformats
Requires: cabextract
Requires: gzip
Requires: unzip
Requires: curl
Requires: jq
Requires: file
Requires: findutils
Requires: gawk
Requires: grep
Requires: tar
Requires: xz
Requires: zstd
Requires: unrar
Requires: glx-utils
Requires: pciutils
Requires: vulkan-loader
Requires: procps-ng
Requires: psmisc
Requires: 7zip
Requires: python3-dbus-fast
%ifarch aarch64
Requires: muvm
%endif
# System Tab
Recommends: NetworkManager
Recommends: bluez
Recommends: upower
Recommends: pulseaudio-utils
Recommends: python3-qrcode
# For legacy PortProton prefix backup support
Recommends: squashfs-tools
Obsoletes: %{pypi_name}-steam-compat < %{?epoch:%{epoch}:}%{version}-%{release}
Provides: %{pypi_name}-steam-compat = %{?epoch:%{epoch}:}%{version}-%{release}
%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.
A modern and intuitive interface for managing and launching games from PortProton and Steam. Combines libraries in one place and simplifies running Windows games on Linux.
%{?python_disable_dependency_generator}
BuildRequires: vulkan-loader-devel
BuildRequires: gcc
%prep
git clone https://git.linux-gaming.ru/Boria138/PortProtonQt
git clone https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt
cd %{oname}
git checkout v%{pypi_version}
@@ -75,16 +97,27 @@ cd %{oname}
%install
cd %{oname}
%meson_install
bash ./dev-scripts/generate-completions.sh
install -Dpm 0644 ./completions/portprotonqt -t %{buildroot}%{bash_completions_dir}
install -Dpm 0644 ./completions/portprotonqt.fish -t %{buildroot}%{fish_completions_dir}
install -Dpm 0644 ./completions/_portprotonqt -t %{buildroot}%{zsh_completions_dir}
%find_lang %{pypi_name}
%files -f %{oname}/%{pypi_name}.lang
%{_bindir}/%{pypi_name}
%{_bindir}/vk_gpu_info
%{python3_sitelib}/%{pypi_name}/
%{_datadir}/icons/hicolor/scalable/apps/ru.linux_gaming.PortProtonQt.svg
%{_metainfodir}/ru.linux_gaming.PortProtonQt.metainfo.xml
%{_udevrulesdir}/60-portprotonqt.rules
%{_datadir}/polkit-1/rules.d/ru.linux_gaming.PortProtonQt.rules
%{_datadir}/applications/ru.linux_gaming.PortProtonQt.desktop
%{_datadir}/mime/packages/ru.linux_gaming.PortProtonQt.xml
%{_datadir}/portproton/scripts/
%{_datadir}/portproton/conf/
%{_datadir}/portproton/img/
%{bash_completions_dir}/portprotonqt
%{_bindir}/vk_gpu_info
%{fish_completions_dir}/portprotonqt.fish
%{zsh_completions_dir}/_portprotonqt
%changelog
@@ -3,8 +3,12 @@ Name=PortProtonQt
Exec=portprotonqt %u
Type=Application
Comment=A modern GUI for PortProton project
Comment[ru]=Современный графический интерфейс для проекта PortProton
Comment[es]=Una interfaz gráfica moderna para el proyecto PortProton
Comment[pt]=Uma interface gráfica moderna para o projeto PortProton
Comment[de]=Eine moderne grafische Benutzeroberfläche für das PortProton-Projekt
Terminal=false
Icon=ru.linux_gaming.PortProtonQt
StartupWMClass=ru.linux_gaming.PortProtonQt
Categories=Game;Utility;
MimeType=x-scheme-handler/portproton;
MimeType=x-scheme-handler/portproton;application/x-portproton-prefix-backup;application/x-ms-dos-exec;application/x-ms-dos-batch;application/x-bat;application/x-msi;text/x-ms-regedit;application/x-executable;application/x-dosexec;application/x-iso9660-image;application/x-cd-image;application/x-raw-disk-image;application/x-mdf;application/x-mds-disk;application/x-nrg;
@@ -1,38 +0,0 @@
_portprotonqt_completions() {
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
# Available options
opts="--fullscreen --debug-level --force-muvm --help -h"
# Debug level choices
debug_levels="ALL DEBUG INFO WARNING ERROR CRITICAL"
case "${prev}" in
--debug-level)
# Complete debug levels
COMPREPLY=( $(compgen -W "${debug_levels}" -- ${cur}) )
return 0
;;
*)
;;
esac
# Complete options
if [[ ${cur} == -* ]]; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
# Complete positional arguments (URLs) if needed
if [[ ${cur} != -* ]]; then
# Allow URL completion for portproton:// URLs
if [[ ${cur} == portproton://* ]]; then
COMPREPLY=( $(compgen -W "${cur}" -- ${cur}) )
fi
fi
}
complete -F _portprotonqt_completions portprotonqt
@@ -4,72 +4,156 @@
<id>ru.linux_gaming.PortProtonQt</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-or-later</project_license>
<summary>Modern GUI for managing and launching games from PortProton, Steam, and Epic Games Store</summary>
<summary xml:lang="ru">Современный графический интерфейс для управления и запуска игр из PortProton, Steam и Epic Games Store</summary>
<summary>Modern GUI for managing and launching games from PortProton and Steam</summary>
<summary xml:lang="ru">Современный интерфейс для управления и запуска игр из PortProton и Steam</summary>
<description>
<p>
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.</p>
A modern and intuitive interface for managing and launching games from PortProton and Steam. Combines libraries in one place and simplifies running Windows games on Linux.
</p>
<p xml:lang="ru">
Это приложение предоставляет стильный и интуитивно понятный графический интерфейс для управления и запуска игр из PortProton, Steam и Epic Games Store. Оно объединяет ваши игровые библиотеки в одном удобном хабе для простой навигации и организации. Лёгкая структура и кроссплатформенная поддержка обеспечивают целостный игровой опыт, устраняя необходимость в использовании нескольких лаунчеров. Уникальная интеграция с PortProton улучшает игровой процесс на Linux, позволяя с лёгкостью запускать Windows-игры с минимальными настройками.
</p>
Современный и удобный интерфейс для управления и запуска игр из PortProton и Steam. Объединяет библиотеки в одном месте и упрощает запуск Windows-игр на Linux.
</p>
</description>
<launchable type="desktop-id">ru.linux_gaming.PortProtonQt.desktop</launchable>
<developer id="ru.linux_gaming">
<name>Boria138</name>
</developer>
<releases>
<release version="1.2.0" date="2026-06-10">
<description></description>
</release>
<release version="1.1.0" date="2026-05-26">
<description/>
</release>
<release version="1.0" date="2026-05-23">
<description/>
</release>
<release version="0.1.12" date="2026-04-17" type="development">
<description/>
</release>
<release version="0.1.11" date="2026-02-18" type="development">
<description/>
</release>
<release version="0.1.10" date="2026-01-14" type="development">
<description/>
</release>
<release version="0.1.9" date="2025-12-08" type="development">
<description/>
</release>
<release version="0.1.8" date="2025-10-18" type="development">
<description/>
</release>
<release version="0.1.7" date="2025-10-12" type="development">
<description/>
</release>
<release version="0.1.6" date="2025-09-23" type="development">
<description/>
</release>
<release version="0.1.5" date="2025-08-31" type="development">
<description/>
</release>
<release version="0.1.4" date="2025-07-21" type="development">
<description/>
</release>
<release version="0.1.3" date="2025-07-05" type="development">
<description/>
</release>
<release version="0.1.2" date="2025-06-15" type="development">
<description/>
</release>
<release version="0.1.1" date="2025-05-17" type="development">
<description/>
</release>
</releases>
<recommends>
<control>keyboard</control>
<control>pointing</control>
<control>touch</control>
<control>gamepad</control>
</recommends>
<branding>
<color type="primary" scheme_preference="light">#007AFF</color>
<color type="primary" scheme_preference="dark">#09BEC8</color>
</branding>
<categories>
<category>Game</category>
<category>Utility</category>
</categories>
<url type="homepage">https://git.linux-gaming.ru/Boria138/PortProtonQt</url>
<url type="bugtracker">https://git.linux-gaming.ru/Boria138/PortProtonQt/issues</url>
<url type="homepage">https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt</url>
<url type="bugtracker">https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/issues</url>
<url type="translate">https://translate.codeberg.org/engage/portprotonqt</url>
<screenshots>
<screenshot type="default">
<image>https://git.linux-gaming.ru/Boria138/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/library.jpg</image>
<image>https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/1_library.png</image>
<caption>Library</caption>
<caption xml:lang="ru">Библиотека</caption>
</screenshot>
<screenshot>
<image>https://git.linux-gaming.ru/Boria138/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/game_card.jpg</image>
<caption>Card detail page</caption>
<caption xml:lang="ru">Детали игры</caption>
</screenshot>
<screenshot>
<image>https://git.linux-gaming.ru/Boria138/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/portproton_settings.jpg</image>
<caption>Settings</caption>
<caption xml:lang="ru">Настройки</caption>
</screenshot>
<screenshot>
<image>https://git.linux-gaming.ru/Boria138/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/context_menu.jpg</image>
<image>https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/2_context_menu.png</image>
<caption>Context Menu</caption>
<caption xml:lang="ru">Контекстное меню</caption>
</screenshot>
<screenshot>
<image>https://git.linux-gaming.ru/Boria138/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/wine_settings.jpg</image>
<image>https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/3_auto_installs.png</image>
<caption>Auto installs</caption>
<caption xml:lang="ru">Автоустановки</caption>
</screenshot>
<screenshot>
<image>https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/4_game_card.png</image>
<caption>Card detail page</caption>
<caption xml:lang="ru">Детали игры</caption>
</screenshot>
<screenshot>
<image>https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/5_portproton_settings.png</image>
<caption>Settings</caption>
<caption xml:lang="ru">Настройки</caption>
</screenshot>
<screenshot>
<image>https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/6_wine_settings.png</image>
<caption>Wine Settings</caption>
<caption xml:lang="ru">Настройки Wine</caption>
</screenshot>
<screenshot>
<image>https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/7_exe_settings.png</image>
<caption>Exe Settings</caption>
<caption xml:lang="ru">Настройки exe</caption>
</screenshot>
<screenshot>
<image>https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/8_exe_settings_mangohud.png</image>
<caption>MangoHud Settings</caption>
<caption xml:lang="ru">Настройки MangoHud</caption>
</screenshot>
<screenshot>
<image>https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/9_exe_settings_gamescope.png</image>
<caption>Gamescope Settings</caption>
<caption xml:lang="ru">Настройки Gamescope</caption>
</screenshot>
</screenshots>
<keywords>
<keyword translate="no">wine</keyword>
<keyword translate="no">proton</keyword>
<keyword translate="no">steam</keyword>
<keyword translate="no">windows</keyword>
<keyword translate="no">epic games store</keyword>
<keyword translate="no">egs</keyword>
<keyword translate="no">qt</keyword>
<keyword translate="no">linux gaming</keyword>
<keyword translate="no">portproton</keyword>
<keyword>game launcher</keyword>
<keyword>compatibility tool</keyword>
<keyword>games</keyword>
</keywords>
<content_rating type="oars-1.1" />
<keyword xml:lang="ru">игры</keyword>
<keyword xml:lang="ru">лаунчер игр</keyword>
<keyword xml:lang="ru">запуск игр</keyword>
</keywords>
<content_rating type="oars-1.1"/>
</component>
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-portproton-prefix-backup">
<comment>PortProton prefix backup</comment>
<comment xml:lang="ru">Резервная копия префикса PortProton</comment>
<glob pattern="*.ppack"/>
</mime-type>
</mime-info>
@@ -0,0 +1,21 @@
polkit.addRule(function(action, subject) {
var cmd_line = polkit.spawn(["ps", "-o", "args=", "-p", String(subject.pid)]);
var ppid = polkit.spawn(["ps", "-o", "ppid=", "-p", String(subject.pid)]).trim();
var parent_cmd_line = "";
if (ppid) {
parent_cmd_line = polkit.spawn(["ps", "-o", "args=", "-p", ppid]);
}
var is_ppqt_call =
cmd_line.includes("ppqtos") ||
parent_cmd_line.includes("ppqtos");
if ( (
action.id === "org.freedesktop.NetworkManager.settings.modify.system" ||
action.id == "org.freedesktop.udisks2.filesystem-mount-system" ||
action.id == "org.freedesktop.udisks2.filesystem-mount-other-seat" ||
action.id == "org.freedesktop.udisks2.filesystem-unmount-others" ) &&
is_ppqt_call)
{
return polkit.Result.YES;
}
});
+679
View File
@@ -0,0 +1,679 @@
# Expose the HDR10 ColorSpace (DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020)
# to the application by default.
# This shows to the game that the global Windows 'HDR Mode' is enabled.
# Many (broken) games will need this to be set to consider exposing HDR output
# as determine it based on the DXGIOutput's current ColorSpace instead of
# using CheckColorSpaceSupport.
# This defaults to the value of the DXVK_HDR environment variable.
#
# Supported values: True, False
# dxgi.enableHDR = True
# Create the VkSurface on the first call to IDXGISwapChain::Present,
# rather than when creating the swap chain. Some games that start
# rendering with a different graphics API may require this option,
# or otherwise the window may stay black.
#
# Supported values: True, False
# dxgi.deferSurfaceCreation = False
# d3d9.deferSurfaceCreation = False
# Enforce a stricter maximum frame latency. Overrides the application
# setting specified by calling IDXGIDevice::SetMaximumFrameLatency.
# Setting this to 0 will have no effect.
#
# Supported values : 0 - 16
# dxgi.maxFrameLatency = 0
# d3d9.maxFrameLatency = 0
# Enables frame rate limiter. The main purpose of this is to work around
# bugs in games that have physics or other simulation tied to their frame
# rate, but do not provide their own limiter.
#
# Supported values : Any non-negative integer
# dxgi.maxFrameRate = 0
# d3d9.maxFrameRate = 0
# Override PCI vendor and device IDs reported to the application. Can
# cause the app to adjust behaviour depending on the selected values.
#
# Supported values: Any four-digit hex number.
# dxgi.customDeviceDesc = "NVIDIA GeForce RTX 4090"
# dxgi.customDeviceId = 2684
# dxgi.customVendorId = 10de
# dxgi.hideAmdGpu = True
# dxgi.hideNvidiaGpu = False
# Override the reported device description
#
# Supported values: Any string.
# d3d9.customDeviceDesc = "NVIDIA GeForce RTX 4090"
# d3d9.customDeviceId = 2684
# d3d9.customVendorId = 10de
# Report Nvidia GPUs as AMD GPUs. Unless NVAPI support is explicitly
# enabled through Proton, this is done by default in order to work
# around crashes or low performance with Nvidia-speciic code paths
# in games, especially Unreal Engine.
#
# Supported values: Auto, True, False
# dxgi.hideNvidiaGpu = Auto
# Report Nvidia GPUs running on NVK as AMD GPUs.
#
# Supported values: Auto, True, False
# dxgi.hideNvkGpu = Auto
# Report AMD GPUs as Nvidia GPUs. This is only done for games that are
# known to have issues with AMDAGS or other AMD-specific code paths.
#
# Supported values: Auto, True, False
# dxgi.hideAmdGpu = Auto
# Report Intel GPUs as AMD GPUs. This is only done for games that are
# known to have issues with Intel-specific libraries such as XESS.
#
# Supported values: Auto, True, False
# dxgi.hideIntelGpu = Auto
# Override maximum amount of device memory and shared system memory
# reported to the application. This may fix texture streaming issues
# in games that do not support cards with large amounts of VRAM.
# This is not a hard cap and applications can choose to ignore it.
#
# Supported values: Any number in Megabytes.
# dxgi.maxDeviceMemory = 0
# dxgi.maxSharedMemory = 0
# Some games think we are on Intel given a lack of NVAPI or
# AGS/atiadlxx support. Report our device memory as shared memory,
# and some small amount for a "carveout".
# Supported values: True, False
# dxgi.emulateUMA = False
# Override back buffer count for the Vulkan swap chain.
# Setting this to 0 or less will have no effect.
#
# Supported values: Any number greater than or equal to 2.
# dxgi.numBackBuffers = 0
# d3d9.numBackBuffers = 0
# Overrides synchronization interval (Vsync) for presentation.
# Setting this to 0 disables vertical synchronization entirely.
# A positive value 'n' will enable Vsync and repeat the same
# image n times, and a negative value will have no effect.
#
# Supported values: Any non-negative number
# dxgi.syncInterval = -1
# d3d9.presentInterval = -1
# True enables the mailbox present mode in case regular Vsync is disabled.
# This should avoid tearing, but may be unsupported on some systems
# or require setting dxgi.numBackBuffers to a higher value in order
# to work properly.
#
# False enables the relaxed fifo present mode in case regular Vsync is enabled.
# This should result in tearing but reduce stutter if FPS are too low,
# but may be unsupported on some systems.
#
# Please do not report issues with this option.
#
# Supported values: Auto, True, False
# dxvk.tearFree = Auto
# Assume single-use mode for command lists created on deferred contexts.
# This may need to be disabled for some applications to avoid rendering
# issues, which may come at a significant performance cost.
#
# Supported values: True, False
# d3d11.dcSingleUseMode = True
# Override the maximum feature level that a D3D11 device can be created
# with. Setting this to a higher value may allow some applications to run
# that would otherwise fail to create a D3D11 device.
#
# Supported values: 9_1, 9_2, 9_3, 10_0, 10_1, 11_0, 11_1, 12_0, 12_1
# d3d11.maxFeatureLevel = 12_1
# Overrides the maximum allowed tessellation factor. This can be used to
# improve performance in titles which overuse tessellation.
#
# Supported values: Any number between 8 and 64
# d3d11.maxTessFactor = 0
# Enables relaxed pipeline barriers around UAV writes.
#
# This may improve performance in some games, but may also introduce
# rendering issues. Please don't report bugs with the option enabled.
#
# Supported values: True, False
# d3d11.relaxedBarriers = False
# Ignores barriers around UAV writes from fragment shaders.
#
# This may improve performance in some games, but may also introduce
# rendering issues. Please don't report bugs with the option enabled.
#
# Supported values: True, False
# d3d11.ignoreGraphicsBarriers = False
# Overrides anisotropic filtering for all samplers. Set this to a positive
# value to enable AF for all samplers in the game, or to 0 in order to
# disable AF entirely. Negative values will have no effect.
#
# Supported values: Any number between 0 and 16
# d3d11.samplerAnisotropy = -1
# d3d9.samplerAnisotropy = -1
# Changes the mipmap LOD bias for all samplers. The given number will be
# added to the LOD bias provided by the application, rather than replacing
# it entirely. Positive values will reduce texture detail, while negative
# values may increase sharpness at the cost of shimmer.
#
# Supported values: Any number between -2.0 and 1.0
# d3d11.samplerLodBias = 0.0
# d3d9.samplerLodBias = 0.0
# Clamps any negative LOD bias to 0. Applies after samplerLodBias has been
# applied. May help with games that use a high negative LOD bias by default.
#
# Supported values: True, False
# d3d11.clampNegativeLodBias = False
# d3d9.clampNegativeLodBias = False
# Declares vertex positions as invariant in order to solve
# potential Z-fighting issues at a small performance cost.
#
# Supported values: True, False
# d3d11.invariantPosition = True
# d3d9.invariantPosition = True
# Forces per-sample rate shading when MSAA is enabled, rather than per-pixel
# shading. May improve visual clarity at a significant performance cost, but
# may also introduce visual issues in some games.
#
# Supported values: True, False
# d3d11.forceSampleRateShading = False
# d3d9.forceSampleRateShading = False
# Forces the sample count of all textures to 1, and performs
# the needed fixups in resolve operations and shaders.
#
# Supported values: True, False
# d3d11.disableMsaa = False
# Clears workgroup memory in compute shaders to zero. Some games don't do
# this and rely on undefined behaviour. Enabling may reduce performance.
#
# Supported values: True, False
# d3d11.zeroWorkgroupMemory = False
# Resource size limit for implicit discards, in kilobytes. For small staging
# resources mapped with MAP_WRITE, DXVK will sometimes allocate new backing
# storage in order to avoid GPU synchronization, so setting this too high
# may cause memory issues, setting it to -1 disables the feature.
# d3d11.maxImplicitDiscardSize = 256
# Resource size limit for buffer-mapped dynamic images, in kilobytes.
# A higher threshold may reduce memory usage and PCI-E bandwidth in
# some games, but may also increase GPU synchronizations. Setting it
# to -1 disables the feature.
# d3d11.maxDynamicImageBufferSize = -1
# Allocates dynamic resources with the given set of bind flags in
# cached system memory rather than uncached memory or host-visible
# VRAM, in order to allow fast readback from the CPU. This is only
# useful for buggy applications, and may reduce GPU-bound performance.
#
# Supported values: Any combination of the following:
# - v: Vertex buffers
# - i: Index buffers
# - c: Constant buffers
# - r: Shader resources
# - a: All dynamic resources
# d3d11.cachedDynamicResources = ""
# Force-enables the D3D11 context lock via the ID3D10Multithread
# interface. This may be useful to debug race conditions.
#
# Supported values: True, False
# d3d11.enableContextLock = False
# Exposes or hides support for driver command lists
#
# Some games use the feature flag to decide whether to use deferred
# contexts or not. We enable this by default, but in some situations
# this can lead to issues if games detect an AMD GPU where command
# lists are not natively supported on Windows.
#
# Supported values: True, False
# d3d11.exposeDriverCommandLists = True
# Sets number of pipeline compiler threads.
#
# If the graphics pipeline library feature is enabled, the given
# number of threads will be used for shader compilation. Some of
# these threads will be reserved for high-priority work.
#
# Supported values:
# - 0 to use all available CPU cores
# - any positive number to enforce the thread count
# dxvk.numCompilerThreads = 0
# Toggles raw SSBO usage.
#
# Uses storage buffers to implement raw and structured buffer
# views. Enabled by default on hardware which has a storage
# buffer offset alignment requirement of 4 Bytes (e.g. AMD).
# Enabling this may improve performance, but is not safe on
# hardware with higher alignment requirements.
#
# Supported values:
# - Auto: Don't change the default
# - True, False: Always enable / disable
# dxvk.useRawSsbo = Auto
# Changes memory chunk size.
#
# Can be used to override the maximum memory chunk size.
#
# Supported values:
# - 0 to use the defaults
# - any positive integer to limit the chunk size, in MiB
# dxvk.maxChunkSize = 0
# Controls graphics pipeline library behaviour
#
# Can be used to change VK_EXT_graphics_pipeline_library usage for
# debugging purpose. Doing so will likely result in increased stutter
# or degraded performance.
#
# Supported values:
# - Auto: Enable if supported, and compile optimized pipelines in the background
# - True: Enable if supported, but do not compile optimized pipelines
# - False: Always disable the feature
# dxvk.enableGraphicsPipelineLibrary = Auto
# Controls pipeline lifetime tracking
#
# If enabled, pipeline libraries will be freed aggressively in order
# save memory and address space. Has no effect if graphics pipeline
# libraries are not supported or disabled.
#
# Supported values:
# - Auto: Enable tracking for 32-bit applications only
# - True: Always enable tracking
# - False: Always disable tracking
# dxvk.trackPipelineLifetime = Auto
# Sets enabled HUD elements
#
# Behaves like the DXVK_HUD environment variable if the
# environment variable is not set, otherwise it will be
# ignored. The syntax is identical.
# dxvk.hud =
# Reported shader model
#
# The shader model to state that we support in the device
# capabilities that the applicatation queries.
#
# Supported values:
# - 1: Shader Model 1
# - 2: Shader Model 2
# - 3: Shader Model 3
# d3d9.shaderModel = 3
# DPI Awareness
#
# Decides whether we should call SetProcessDPIAware on device
# creation. Helps avoid upscaling blur in modern Windows on
# Hi-DPI screens/devices.
#
# Supported values:
# - True, False: Always enable / disable
# d3d9.dpiAware = True
# Strict Constant Copies
#
# Decides whether we should always copy defined constants to
# the UBO when relative addressing is used, or only when the
# relative addressing starts a defined constant.
#
# Supported values:
# - True, False: Always enable / disable
# d3d9.strictConstantCopies = False
# Strict Pow
#
# Decides whether we have an opSelect for handling pow(0,0) = 0
# otherwise it becomes undefined.
#
# Supported values:
# - True, False: Always enable / disable
# d3d9.strictPow = True
# Lenient Clear
#
# Decides whether or not we fastpath clear anyway if we are close enough to
# clearing a full render target.
#
# Supported values:
# - True, False: Always enable / disable
# d3d9.lenientClear = False
# Max available memory
#
# Changes the max initial value used in tracking and GetAvailableTextureMem
# Value in Megabytes
#
# Supported values:
# - Max Available Memory: Any int32_t
# - Memory Tracking Testing: True, False
# d3d9.maxAvailableMemory = 4096
# d3d9.memoryTrackTest = False
# Force enable/disable floating point quirk emulation
#
# Force toggle anything * 0 emulation
# Setting it to True will use a faster but less accurate approach that works for most games.
# Supported values:
# - True: Use a faster but less accurate approach. Good enough for most games
# - False: Disable float emulation completely
# - Strict: Use a slower but more correct approach. Necessary for some games
# - Auto: DXVK will pick automatically
# d3d9.floatEmulation = Auto
# Enable dialog box mode
#
# Changes the default state of dialog box mode.
# *Disables* exclusive fullscreen when enabled.
#
# Supported values:
# - True, False: Always enable / disable
# d3d9.enableDialogMode = False
# Overrides the application's MSAA level on the swapchain
#
# Supported values: -1 (application) and 0 to 16 (user override)
# d3d9.forceSwapchainMSAA = -1
# Long Mad
#
# Should we make our Mads a FFma or do it the long way with an FMul and an FAdd?
# This solves some rendering bugs in games that have z-pass shaders which
# don't match entirely to the regular vertex shader in this way.
#
# Supported values:
# - True/False
# d3d9.longMad = False
# Device Local Constant Buffers
#
# Enables using device local, host accessible memory for constant buffers in D3D9.
# This tends to actually be slower for some reason on AMD,
# and the exact same performance on NVIDIA.
#
# Supported values:
# - True/False
# d3d9.deviceLocalConstantBuffers = False
# Support DF formats
#
# Support the vendor extension DF floating point depth formats
#
# Supported values:
# - True/False
# d3d9.supportDFFormats = True
# Use D32f for D24
#
# Useful for reproducing AMD issues on other hw.
#
# Supported values:
# - True/False
# d3d9.useD32forD24 = False
# Support X4R4G4B4
#
# Support the X4R4G4B4 format.
# The Sims 2 is a very broken game.
#
# Supported values:
# - True/False
# d3d9.supportX4R4G4B4 = True
# Support D32
#
# Support the D32 format.
#
# Supported values:
# - True/False
# d3d9.supportD32 = True
# Disable A8 as a Render Target
#
# Disable support for A8 format render targets
# Once again, The Sims 2 is a very broken game.
#
# Supported values:
# - True/False
# d3d9.disableA8RT = False
# Support for VCache Query
#
# Support for the vcache query
# Not very important as a user config.
# Used internally.
#
# Supported values:
# - True/False
# Defaults to True if vendorId == 0x10de
# d3d9.supportVCache = True
# Force Sampler Type Spec Constants
#
# Useful if games use the wrong image and sampler
# type combo like Halo: CE or Spellforce.
# Can fix rendering in older, broken games in some instances.
#
# Supported values:
# - True/False
# d3d9.forceSamplerTypeSpecConstants = False
# Force Aspect Ratio
#
# Only exposes modes with a given aspect ratio.
# Useful for titles that break if they see ultra-wide.
#
# Supported values:
# - Any ratio, ie. "16:9", "4:3"
# d3d9.forceAspectRatio = ""
# Enumerate by Displays
#
# Whether we should enumerate D3D9 adapters by display (windows behaviour)
# or by physical adapter.
# May be useful in PRIME setups.
#
# Supported values:
# - True/False
# d3d9.enumerateByDisplays = True
# Cached Dynamic Buffers
#
# Allocates dynamic resources in D3DPOOL_DEFAULT in
# cached system memory rather than uncached memory or host-visible
# VRAM, in order to allow fast readback from the CPU. This is only
# useful for buggy applications, and may reduce GPU-bound performance.
#
# Supported values:
# - True/False
# d3d9.cachedDynamicBuffers = False
# Seamless Cubes
#
# Don't use non seamless cube maps even if they are supported.
# Non seamless cubes are correct d3d9 behavior, but can produce worse looking edges.
#
# Supported values:
# - True/False
# d3d9.seamlessCubes = False
# Debug Utils
#
# Enables debug utils as this is off by default, this enables user annotations like BeginEvent()/EndEvent().
# Alternatively could be enabled with DXVK_DEBUG=markers environment variable.
#
# Supported values:
# - True/False
# dxvk.enableDebugUtils = False
# Memory limit for locked D3D9 textures
#
# How much virtual memory will be used for textures (in MB).
# 0 to disable the limit.
# THIS DOES NOT IMPACT ACTUAL MEMORY CONSUMPTION OR TEXTURE QUALITY.
# DO NOT CHANGE THIS UNLESS YOU HAVE A VERY GOOD REASON.
# d3d9.textureMemory = 100
# Hide integrated graphics from applications
#
# Only has an effect when dedicated GPUs are present on the system. It is
# not recommended to use this option at all unless absolutely necessary for
# a game to work; prefer using DXVK_FILTER_DEVICE_NAME whenever possible.
#
# Supported values:
# - True/False
# dxvk.hideIntegratedGraphics = False
# Trigger DEVICELOST when losing focus
#
# D3D9 requires the application to call Device::Reset after
# it loses focus in fullscreen.
# Some games rely on observing a D3DERR_DEVICELOST or D3DERR_NOTRESET.
# Others don't handle it correctly.
#
# Supported values:
# - True/False
# d3d9.deviceLossOnFocusLoss = False
# Reject Device::Reset if any losable resource is still alive
#
# D3D9 rejects Device::Reset if there's still any alive resources of specific types.
# (State blocks, additional swapchains, D3DPOOL_DEFAULT resources)
# Some games leak resources leading to a hang.
#
# Supported values:
# - True/False
# d3d9.countLosableResources = True
+60
View File
@@ -0,0 +1,60 @@
reshadeTexturePath = /run/pressure-vessel/pv-from-host/reshade/textures
reshadeIncludePath = /run/pressure-vessel/pv-from-host/reshade
FilmGrain2 = /run/pressure-vessel/pv-from-host/reshade/shaders/FilmGrain2.fx
Curves = /run/pressure-vessel/pv-from-host/reshade/shaders/Curves.fx
FakeHDR = /run/pressure-vessel/pv-from-host/reshade/shaders/FakeHDR.fx
LevelsPlus = /run/pressure-vessel/pv-from-host/reshade/shaders/LevelsPlus.fx
Colourfulness = /run/pressure-vessel/pv-from-host/reshade/shaders/Colourfulness.fx
Bloom = /run/pressure-vessel/pv-from-host/reshade/shaders/Bloom.fx
SMAA = /run/pressure-vessel/pv-from-host/reshade/shaders/SMAA.fx
ChromaticAberration = /run/pressure-vessel/pv-from-host/reshade/shaders/ChromaticAberration.fx
Denoise = /run/pressure-vessel/pv-from-host/reshade/shaders/Denoise.fx
Clarity = /run/pressure-vessel/pv-from-host/reshade/shaders/Clarity.fx
Emphasize = /run/pressure-vessel/pv-from-host/reshade/shaders/Emphasize.fx
FakeMotionBlur = /run/pressure-vessel/pv-from-host/reshade/shaders/FakeMotionBlur.fx
FilmicAnamorphSharpen = /run/pressure-vessel/pv-from-host/reshade/shaders/FilmicAnamorphSharpen.fx
FilmicPass = /run/pressure-vessel/pv-from-host/reshade/shaders/FilmicPass.fx
GaussianBlur = /run/pressure-vessel/pv-from-host/reshade/shaders/GaussianBlur.fx
Glitch = /run/pressure-vessel/pv-from-host/reshade/shaders/Glitch.fx
HighPassSharpen = /run/pressure-vessel/pv-from-host/reshade/shaders/HighPassSharpen.fx
HQ4X = /run/pressure-vessel/pv-from-host/reshade/shaders/HQ4X.fx
HSLShift = /run/pressure-vessel/pv-from-host/reshade/shaders/HSLShift.fx
Layer = /run/pressure-vessel/pv-from-host/reshade/shaders/Layer.fx
LiftGammaGain = /run/pressure-vessel/pv-from-host/reshade/shaders/LiftGammaGain.fx
LumaSharpen = /run/pressure-vessel/pv-from-host/reshade/shaders/LumaSharpen.fx
LUT = /run/pressure-vessel/pv-from-host/reshade/shaders/LUT.fx
MagicBloom = /run/pressure-vessel/pv-from-host/reshade/shaders/MagicBloom.fx
Monochrome = /run/pressure-vessel/pv-from-host/reshade/shaders/Monochrome.fx
MultiLUT = /run/pressure-vessel/pv-from-host/reshade/shaders/MultiLUT.fx
MXAO = /run/pressure-vessel/pv-from-host/reshade/shaders/MXAO.fx
NightVision = /run/pressure-vessel/pv-from-host/reshade/shaders/NightVision.fx
Nostalgia = /run/pressure-vessel/pv-from-host/reshade/shaders/Nostalgia.fx
PerfectPerspective = /run/pressure-vessel/pv-from-host/reshade/shaders/PerfectPerspective.fx
PPFX_Bloom = /run/pressure-vessel/pv-from-host/reshade/shaders/PPFX_Bloom.fx
PPFX_Godrays = /run/pressure-vessel/pv-from-host/reshade/shaders/PPFX_Godrays.fx
Prism = /run/pressure-vessel/pv-from-host/reshade/shaders/Prism.fx
ReflectiveBumpMapping = /run/pressure-vessel/pv-from-host/reshade/shaders/ReflectiveBumpMapping.fx
Sepia = /run/pressure-vessel/pv-from-host/reshade/shaders/Sepia.fx
Splitscreen = /run/pressure-vessel/pv-from-host/reshade/shaders/Splitscreen.fx
StageDepth = /run/pressure-vessel/pv-from-host/reshade/shaders/StageDepth.fx
SurfaceBlur = /run/pressure-vessel/pv-from-host/reshade/shaders/SurfaceBlur.fx
Technicolor = /run/pressure-vessel/pv-from-host/reshade/shaders/Technicolor.fx
Technicolor2 = /run/pressure-vessel/pv-from-host/reshade/shaders/Technicolor2.fx
TiltShift = /run/pressure-vessel/pv-from-host/reshade/shaders/TiltShift.fx
Tonemap = /run/pressure-vessel/pv-from-host/reshade/shaders/Tonemap.fx
TriDither = /run/pressure-vessel/pv-from-host/reshade/shaders/TriDither.fx
UIDetect = /run/pressure-vessel/pv-from-host/reshade/shaders/UIDetect.fx
UIMask = /run/pressure-vessel/pv-from-host/reshade/shaders/UIMask.fx
Vibrance = /run/pressure-vessel/pv-from-host/reshade/shaders/Vibrance.fx
Vignette = /run/pressure-vessel/pv-from-host/reshade/shaders/Vignette.fx
AdaptiveSharpen = /run/pressure-vessel/pv-from-host/reshade/shaders/AdaptiveSharpen.fx
ColorMatrix = /run/pressure-vessel/pv-from-host/reshade/shaders/ColorMatrix.fx
Cartoon = /run/pressure-vessel/pv-from-host/reshade/shaders/Cartoon.fx
3DFX = /run/pressure-vessel/pv-from-host/reshade/shaders/3DFX.fx
Border = /run/pressure-vessel/pv-from-host/reshade/shaders/Border.fx
AspectRatio = /run/pressure-vessel/pv-from-host/reshade/shaders/AspectRatio.fx
casSharpness = 0.5
toggleKey = Home
effects = FakeHDR:cas
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="48"
height="48"
viewBox="0 0 48 48"
version="1.1"
id="svg1"
xml:space="preserve"
sodipodi:docname="error.svg"
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
inkscape:export-filename="error.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="6.1208931"
inkscape:cx="-12.416489"
inkscape:cy="18.869795"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" /><defs
id="defs1"><inkscape:path-effect
effect="perspective-envelope"
up_left_point="800.80455,142.57841"
up_right_point="940.11735,142.57841"
down_left_point="713.0918,247.98828"
down_right_point="1027.8301,247.98828"
id="path-effect16"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="952.62987,270.86309"
up_right_point="967.78613,270.86309"
down_left_point="936.53304,284.60478"
down_right_point="983.88296,284.60478"
id="path-effect14"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="221.7625,226.76598"
up_right_point="370.33352,226.76598"
down_left_point="221.7625,303.35394"
down_right_point="370.33352,303.35394"
id="path-effect10"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="true"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="221.7625,226.76598"
up_right_point="370.33352,226.76598"
down_left_point="221.7625,303.35394"
down_right_point="370.33352,303.35394"
id="path-effect8"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="true"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="221.7625,226.76598"
up_right_point="370.33352,226.76598"
down_left_point="221.7625,303.35394"
down_right_point="370.33352,303.35394"
id="path-effect6"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="true"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="221.7625,226.76598"
up_right_point="370.33352,226.76598"
down_left_point="221.7625,303.35394"
down_right_point="370.33352,303.35394"
id="path-effect4"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="true"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="213.79951,335.28325"
up_right_point="351.18682,335.28325"
down_left_point="140.95117,410.48047"
down_right_point="424.03516,410.48047"
id="path-effect3"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="150.95065,137.3959"
up_right_point="414.0361,137.3959"
down_left_point="150.95065,400.48135"
down_right_point="414.0361,400.48135"
id="path-effect1"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="true"
overflow_perspective="false" /></defs><path
id="rect2"
style="fill:#ff0000;fill-opacity:1;stroke:#4d4c72;stroke-width:0"
d="M 7.6113281 0 C 3.3945763 0 0 3.2765372 0 7.3457031 L 0 40.654297 C 0 44.723463 3.3945763 48 7.6113281 48 L 40.388672 48 C 44.605424 48 48 44.723463 48 40.654297 L 48 7.3457031 C 48 3.2765372 44.605424 0 40.388672 0 L 7.6113281 0 z M 13.808594 10.861328 C 14.554594 10.861328 15.301408 11.156877 15.892578 11.748047 L 24 19.855469 L 32.107422 11.748047 C 33.289762 10.565707 35.091099 10.565707 36.273438 11.748047 C 37.455777 12.930386 37.455777 14.731723 36.273438 15.914062 L 28.166016 24.021484 L 36.273438 32.128906 C 37.455777 33.311245 37.455777 35.112582 36.273438 36.294922 C 35.710419 36.857941 34.979631 37.138672 34.191406 37.138672 C 33.40318 37.138672 32.67044 36.857941 32.107422 36.294922 L 24 28.1875 L 15.892578 36.294922 C 15.32956 36.857941 14.59682 37.138672 13.808594 37.138672 C 13.020369 37.138672 12.289581 36.857941 11.726562 36.294922 C 10.544223 35.112582 10.544223 33.311245 11.726562 32.128906 L 19.833984 24.021484 L 11.726562 15.914062 C 10.544223 14.731723 10.544223 12.930386 11.726562 11.748047 C 12.317732 11.156877 13.062594 10.861328 13.808594 10.861328 z " /></svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

@@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="48"
height="48"
viewBox="0 0 48 48"
version="1.1"
id="svg1"
xml:space="preserve"
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
sodipodi:docname="notify.svg"
inkscape:export-filename="notify.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="6.1208931"
inkscape:cx="-12.416489"
inkscape:cy="18.869795"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" /><defs
id="defs1"><inkscape:path-effect
effect="perspective-envelope"
up_left_point="800.80455,142.57841"
up_right_point="940.11735,142.57841"
down_left_point="713.0918,247.98828"
down_right_point="1027.8301,247.98828"
id="path-effect16"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="952.62987,270.86309"
up_right_point="967.78613,270.86309"
down_left_point="936.53304,284.60478"
down_right_point="983.88296,284.60478"
id="path-effect14"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="221.7625,226.76598"
up_right_point="370.33352,226.76598"
down_left_point="221.7625,303.35394"
down_right_point="370.33352,303.35394"
id="path-effect10"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="true"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="221.7625,226.76598"
up_right_point="370.33352,226.76598"
down_left_point="221.7625,303.35394"
down_right_point="370.33352,303.35394"
id="path-effect8"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="true"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="221.7625,226.76598"
up_right_point="370.33352,226.76598"
down_left_point="221.7625,303.35394"
down_right_point="370.33352,303.35394"
id="path-effect6"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="true"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="221.7625,226.76598"
up_right_point="370.33352,226.76598"
down_left_point="221.7625,303.35394"
down_right_point="370.33352,303.35394"
id="path-effect4"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="true"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="213.79951,335.28325"
up_right_point="351.18682,335.28325"
down_left_point="140.95117,410.48047"
down_right_point="424.03516,410.48047"
id="path-effect3"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="150.95065,137.3959"
up_right_point="414.0361,137.3959"
down_left_point="150.95065,400.48135"
down_right_point="414.0361,400.48135"
id="path-effect1"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="true"
overflow_perspective="false" /></defs><path
d="M 48,24 C 48,37.25424 37.25424,48 24,48 10.74576,48 0,37.25424 0,24 0,10.74576 10.74576,0 24,0 37.25424,0 48,10.74576 48,24 Z M 24,18.80256 c 1.41936,0 2.57064,1.151232 2.57064,2.572512 v 13.64832 c 0,1.421232 -1.151232,2.572512 -2.57064,2.572512 -1.419408,0 -2.57064,-1.151232 -2.57064,-2.572512 v -13.64832 c 0,-1.421232 1.151232,-2.572512 2.57064,-2.572512 z m 2.57064,-5.08896 c 0,-1.41936 -1.151232,-2.57064 -2.57064,-2.57064 -1.419408,0 -2.57064,1.151232 -2.57064,2.57064 v 0.04688 c 0,1.41936 1.151232,2.57064 2.57064,2.57064 1.419408,0 2.57064,-1.151232 2.57064,-2.57064 z"
fill-rule="evenodd"
id="path1"
style="stroke-width:0.48;fill:#09bec8;fill-opacity:1" /></svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="48"
height="48"
viewBox="0 0 48 48"
version="1.1"
id="svg1"
xml:space="preserve"
sodipodi:docname="warning.svg"
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
inkscape:export-filename="warning.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="6.1208931"
inkscape:cx="-12.416489"
inkscape:cy="18.706421"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg1" /><defs
id="defs1"><inkscape:path-effect
effect="perspective-envelope"
up_left_point="800.80455,142.57841"
up_right_point="940.11735,142.57841"
down_left_point="713.0918,247.98828"
down_right_point="1027.8301,247.98828"
id="path-effect16"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="952.62987,270.86309"
up_right_point="967.78613,270.86309"
down_left_point="936.53304,284.60478"
down_right_point="983.88296,284.60478"
id="path-effect14"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="221.7625,226.76598"
up_right_point="370.33352,226.76598"
down_left_point="221.7625,303.35394"
down_right_point="370.33352,303.35394"
id="path-effect10"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="true"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="221.7625,226.76598"
up_right_point="370.33352,226.76598"
down_left_point="221.7625,303.35394"
down_right_point="370.33352,303.35394"
id="path-effect8"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="true"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="221.7625,226.76598"
up_right_point="370.33352,226.76598"
down_left_point="221.7625,303.35394"
down_right_point="370.33352,303.35394"
id="path-effect6"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="true"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="221.7625,226.76598"
up_right_point="370.33352,226.76598"
down_left_point="221.7625,303.35394"
down_right_point="370.33352,303.35394"
id="path-effect4"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="true"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="213.79951,335.28325"
up_right_point="351.18682,335.28325"
down_left_point="140.95117,410.48047"
down_right_point="424.03516,410.48047"
id="path-effect3"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="true"
overflow_perspective="false" /><inkscape:path-effect
effect="perspective-envelope"
up_left_point="150.95065,137.3959"
up_right_point="414.0361,137.3959"
down_left_point="150.95065,400.48135"
down_right_point="414.0361,400.48135"
id="path-effect1"
is_visible="true"
lpeversion="1"
deform_type="perspective"
horizontal_mirror="false"
vertical_mirror="true"
overflow_perspective="false" /></defs><path
d="M 7.1971726,48 H 40.780971 c 5.527113,0 9.001299,-6.666667 6.264062,-11.884058 L 30.200495,4.0000002 c -2.737237,-5.3333336 -9.685609,-5.3333336 -12.422847,0 L 0.93310958,36.115942 C -1.7514884,41.391304 1.6700586,48 7.1971726,48 Z M 24.041711,40.869566 c -1.473897,0 -2.684598,-1.333334 -2.684598,-2.956523 0,-1.623188 1.210701,-2.956522 2.684598,-2.956522 1.473897,0 2.684598,1.333334 2.631959,3.014494 0.05264,1.565217 -1.210701,2.898551 -2.631959,2.898551 z M 23.357402,14.202898 c 1.26334,-0.347826 2.579319,0.347827 3.105711,1.68116 0.157918,0.463768 0.263196,0.927537 0.263196,1.449275 -0.05264,1.449276 -0.157917,2.956523 -0.263196,4.405797 -0.105278,2.26087 -0.263196,4.57971 -0.368474,6.84058 -0.05264,0.753624 -0.05264,1.391305 -0.05264,2.144928 -0.05264,1.217391 -0.894866,2.144928 -2.000289,2.144928 -1.105423,0 -1.94765,-0.869566 -2.000289,-2.086958 -0.157918,-3.536231 -0.368474,-7.072463 -0.526392,-10.608695 -0.05264,-0.927536 -0.105278,-1.855073 -0.157917,-2.84058 -0.05264,-1.449275 0.736948,-2.724637 2.00029,-3.130435 z"
id="path1"
style="stroke-width:0.552408;fill:#ff6600" /></svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

File diff suppressed because it is too large. Load diff
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: xuser
#AC4BFSP.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE=1
export PW_USE_FSYNC=0
export PW_USE_ESYNC=0
@@ -0,0 +1,27 @@
#!/usr/bin/env bash
#Author: xuser
#ACIII.exe
#ACLiberation.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG_9-12-2"
export PW_USE_ESYNC="0"
export PW_USE_FSYNC="1"
export PW_WINE_FULLSCREEN_FSR="1"
export PW_HIDE_NVIDIA_GPU="0"
export PW_VIRTUAL_DESKTOP="0"
export PW_USE_TERMINAL="0"
export PW_USE_D3D_EXTRAS="1"
export PW_FIX_VIDEO_IN_GAME="0"
export PW_REDUCE_PULSE_LATENCY="0"
export PW_USE_US_LAYOUT="0"
export PW_USE_GSTREAMER="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_DINPUT_PROTOCOL="0"
export LAUNCH_PARAMETERS=""
export PW_WINDOWS_VER="10"
export PW_DLL_INSTALL=""
export PW_WINE_CPU_TOPOLOGY="disabled"
export PW_MESA_GL_VERSION_OVERRIDE="disabled"
@@ -0,0 +1,9 @@
#!/usr/bin/env bash
#Author: Alek V., Dervart
#ACOdyssey.exe
#Rating=4
#####################examples###########################
export PW_USE_ESYNC="1"
export PW_USE_GSTREAMER="0"
export PW_PREFIX_NAME="ACO"
export PW_WINE_USE="WINE_LG"
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
#Author: Mels
#ACOrigins.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="PROTON_LG"
export PORTPROTON_NAME="ACOrigins"
export PW_USE_ESYNC="1"
export PW_USE_FSYNC="1"
export PW_WINE_FULLSCREEN_FSR="1"
export PW_USE_GSTREAMER="0"
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: anonymous
#ACValhalla.exe
#Rating=1-5
#####################examples###########################
export PW_DLL_INSTALL="vcrun2019" # Install DLL in port prefix (used winetricks)
export PW_VULKAN_USE=1
export NOSTSTDIR="\"${PATH_TO_GAME}\""
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#Author: xuser
#ALOTInstaller.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE=0
@@ -0,0 +1,31 @@
#!/usr/bin/env bash
#Author: deck
#APlagueTaleInnocence_x64.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="PROTON_LG"
export PW_PREFIX_NAME="PLAGUE"
export PORTPROTON_NAME="A Plague Tale: Innocence"
export PW_USE_ESYNC="1"
export PW_USE_FSYNC="0"
export PW_WINE_FULLSCREEN_FSR="1"
export PW_HIDE_NVIDIA_GPU="0"
export PW_VIRTUAL_DESKTOP="0"
export PW_USE_TERMINAL="0"
export PW_USE_D3D_EXTRAS="1"
export PW_FIX_VIDEO_IN_GAME="0"
export PW_REDUCE_PULSE_LATENCY="0"
export PW_USE_US_LAYOUT="0"
export PW_USE_GSTREAMER="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_DINPUT_PROTOCOL="0"
export PW_USE_NATIVE_WAYLAND="0"
export LAUNCH_PARAMETERS=""
export PW_WINDOWS_VER="10"
export PW_DLL_INSTALL="vcrun2017"
export WINEDLLOVERRIDES=""
export PW_WINE_CPU_TOPOLOGY="disabled"
export PW_MESA_GL_VERSION_OVERRIDE="disabled"
export PW_VKD3D_FEATURE_LEVEL="disabled"
export PW_LOCALE_SELECT="disabled"
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: deck
#APlagueTaleRequiem_x64.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="PLAGUE"
export PORTPROTON_NAME="A Plague Tale: Requiem"
@@ -0,0 +1,9 @@
#!/usr/bin/env bash
#Author: Eljeyna
#ActOfWar.exe
#ActOfWar_HighTreason.exe
#Rating=1-5
export PW_WINE_USE="WINE-9.14-AMD64"
export PW_PREFIX_NAME="ACT_OF_WAR"
gui_proton_downloader "$PW_WINE_USE"
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
#Author: vano
#AliceMadnessReturns.exe
#Rating=5
#####################examples###########################
export PW_WINDOWS_VER="10"
export PW_USE_FSYNC="0"
export PW_USE_ESYNC="0"
export PW_USE_GSTREAMER="1"
export PW_WINE_USE="PROTON_LG"
@@ -0,0 +1,33 @@
#!/usr/bin/env bash
#Author: ducksomecode
#AloneInTheDark-Win64-Shipping.exe
#Rating=1-5
#####################examples###########################
export PW_WINDOWS_VER="10"
export PW_DLL_INSTALL=""
export WINEDLLOVERRIDES=""
export LAUNCH_PARAMETERS=""
export PW_VULKAN_USE="2"
export PW_HIDE_NVIDIA_GPU="0"
export PW_VIRTUAL_DESKTOP="0"
export PW_USE_FSYNC="1"
export PW_USE_ESYNC="0"
export PW_USE_GSTREAMER="1"
export PW_REDUCE_PULSE_LATENCY="0"
export PW_USE_TERMINAL="0"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="ALONE_IN_THE_DARK"
export PW_WINE_FULLSCREEN_FSR="0"
export PW_USE_D3D_EXTRAS="1"
export PW_FIX_VIDEO_IN_GAME="0"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_USE_GALLIUM_ZINK="0"
export PW_USE_RUNTIME="1"
export PW_WINE_CPU_TOPOLOGY="disabled"
export PORTPROTON_NAME="Alone in the Dark"
export PW_DINPUT_PROTOCOL="1"
export PW_USE_NATIVE_WAYLAND="0"
export PW_MESA_GL_VERSION_OVERRIDE="disabled"
export PW_VKD3D_FEATURE_LEVEL="disabled"
export PW_LOCALE_SELECT="disabled"
@@ -0,0 +1,5 @@
#!/usr/bin/env bash
#Author: Eljeyna
#Animal Well.exe
#Rating=1-5
export PW_WINE_USE="WINE_LG"
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: fidel
#Ankama Launcher.exe
#Rating=1-5
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="ANKAMA"
export PORTPROTON_NAME="Ankama "
export FILE_DESCRIPTION="Ankama Launcher"
@@ -0,0 +1,18 @@
#!/usr/bin/env bash
#Author: xuser
#Anno4.exe
#Rating=1-5
#####################examples###########################
if [[ "$LANGUAGE" == "ru" ]] ; then
export PW_COMMENT_DB="Если после первого запуска вы увидите черный экран, просто перезапустите игру."
else
export PW_COMMENT_DB="If after the first launch you see a black screen,\njust restart the game."
fi
export PW_VULKAN_USE=1
add_in_start_portproton () {
if [[ -d "${WINEPREFIX}/drive_c/users/steamuser/AppData/Roaming/Ubisoft/Anno1404/Config/" ]] ; then
sed -i 's/<DirectXVersion>0<\/DirectXVersion>/<DirectXVersion>9<\/DirectXVersion>/' "${WINEPREFIX}/drive_c/users/steamuser/AppData/Roaming/Ubisoft/Anno1404/Config/Engine.ini"
fi
}
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: stalker
#AnomalyLauncher.exe
#Rating=1-5
#####################examples###########################
export PW_DLL_INSTALL="d3dx10 d3dx11_42 d3dx11_43" # Install DLL in port prefix (used winetricks)
export PW_VULKAN_USE=1
export PW_USE_WINE_DXGI=1
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#Author: chal55rus
#AnomalyZone.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="DEFAULT"
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
#Author: rosakodu
#GS456.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="PROTON_LG_7-54"
export PW_PREFIX_NAME="APOLLO_JUSTICE"
export WINEDLLOVERRIDES="winmm.dll=n,b"
gui_proton_downloader "$PW_WINE_USE"
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#Author: akai
#Arthur.exe
#Rating=1-5
#####################examples###########################
export PW_REDUCE_PULSE_LATENCY=1
export PW_VULKAN_USE=2
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#Author: Сергей 33 (46)
#BF2.exe
#Rating=4
################################################
export PW_WINDOWS_VER="7"
@@ -0,0 +1,23 @@
#!/usr/bin/env bash
#Author: dez
#Battle.net Launcher.exe
#Battle.net-Setup.exe
#Battle.net.exe
#Rating=5
################################################
export PW_VULKAN_USE="2"
export LAUNCH_PARAMETERS=""
export WINEDLLOVERRIDES="locationapi="
export PW_DLL_INSTALL="vcrun2019 d3dx11_42 d3dx11_43"
export PW_WINDOWS_VER="10"
export PW_WINE_FULLSCREEN_FSR="0"
export PW_WINE_USE="PROTON_LG"
export WINE_SIMULATE_WRITECOPY="1"
add_in_start_portproton () {
rm -fr "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/ProgramData/Agent/data"
rm -fr "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/Blizzard Entertainment/Battle.net/Cache"
rm -fr "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/Public/Blizzard Entertainment/Battle.net/Cache"
try_remove_file "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/windows/Fonts/sourcehansans.ttc"
# sed -i 's/"GrabFullscreen"="Y"/"GrabFullscreen"="N"/' "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg"
}
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: Mels
#BeyondTwoSouls.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PORTPROTON_NAME="BeyondTwoSouls"
export PW_USE_SHADER_CACHE="0"
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
#Author: Alek V., Eljeyna
#div.exe
#Rating=1-5
#####################examples###########################
export PW_WINE_USE="WINE_LG"
export PW_DGVOODOO2="1"
export PW_DGV2_DISABLE_D3D="1"
export PW_DGV2_VRAM="1024"
export PW_DGV2_RESOLUTION="1280x720"
export PW_DGV2_VIDEOCARD="dgVoodoo2 Virtual 3D"
add_in_start_portproton () {
if [[ -f "${PATH_TO_GAME}/fontlist.txt" ]] ; then
if grep -q "charset russian" "${PATH_TO_GAME}/fontlist.txt" ; then
sed -i 's/DEFINE $TTFONTNAME "BDFont"/DEFINE $TTFONTNAME "Arial"/g' "${PATH_TO_GAME}/fontlist.txt"
sed -i 's/DEFINE $TTFONTANAME "BDFont"/DEFINE $TTFONTANAME "Arial"/g' "${PATH_TO_GAME}/fontlist.txt"
fi
fi
}
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#Author: kosta
#Biomutant.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE=1
export PW_DLL_INSTALL="vcrun2019" # Install DLL in port prefix (used winetricks)
@@ -0,0 +1,17 @@
#!/usr/bin/env bash
#Author: deck
#Bioshock2HD.exe
#Rating=5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="DEFAULT"
export PW_VKBASALT="1"
export PW_USE_ESYNC="0"
export PW_USE_FSYNC="0"
export PW_USE_D3D_EXTRAS="1"
export PW_USE_GSTREAMER="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_USE_EAC_AND_BE="0"
export PW_VKBASALT_EFFECTS="FilmGrain2:Curves:cas"
export PW_VKBASALT_FFX_CAS="1"
@@ -0,0 +1,17 @@
#!/usr/bin/env bash
#Author: deck
#BioshockHD.exe
#Rating=5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="DEFAULT"
export PW_VKBASALT="1"
export PW_USE_ESYNC="0"
export PW_USE_FSYNC="0"
export PW_USE_D3D_EXTRAS="1"
export PW_USE_GSTREAMER="1"
export PW_USE_SHADER_CACHE="1"
export PW_USE_WINE_DXGI="0"
export PW_USE_EAC_AND_BE="0"
export PW_VKBASALT_EFFECTS="FilmGrain2:Curves:cas"
export PW_VKBASALT_FFX_CAS="1"
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
#Author: fidel
#BlackDesertLauncher.exe
#Rating=1-5
#####################examples###########################
export PW_WINDOWS_VER="10"
export PW_WINE_USE="PROTON_LG"
export PW_PREFIX_NAME="DOTNET"
export PORTPROTON_NAME="BlackDesertLauncher"
export FILE_DESCRIPTION="BlackDesertLauncher"
export WINE_DISABLE_KERNEL_WRITEWATCH="1"
export DXVK_CONFIG="dxgi.syncInterval=0"
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#Author:
#Botanicula.exe
#Rating=5
################################################
export PW_VULKAN_USE=0
export LAUNCH_PARAMETERS=""
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#Author: Eljeyna
#BrightMemoryInfinite-Win64-Shipping.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_USE_SHADER_CACHE="0"
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#Author:PortWINE
#Brokgame.exe
#Rating=5
################################################
export PW_VULKAN_USE=0
export LAUNCH_PARAMETERS=""
@@ -0,0 +1,16 @@
#!/usr/bin/env bash
#Author: fidel
#BsgLauncher.exe
#EscapeFromTarkov.exe
#EscapeFromTarkov_BE.exe
#Rating=1-5
#####################examples###########################
export PW_USE_FSYNC="0"
export PW_USE_ESYNC="0"
export PW_PREFIX_NAME="DOTNET"
# add_in_start_portproton () {
# if [[ ! -f "${PATH_TO_GAME}/dxvk.conf" ]] ; then
# echo "d3d9.shaderModel = 1" > "${PATH_TO_GAME}/dxvk.conf"
# fi
# }
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: fidel
#CWClientLauncher.exe
#Rating=1-5
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="CONTRACT_WARS"
export PORTPROTON_NAME="CWClient"
export FILE_DESCRIPTION="CWClientLauncher"
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
#Author: fidel
#caliber_launcher_pp.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE="2"
export PW_WINE_USE="PROTON_LG"
export PW_PREFIX_NAME="CALIBER"
# export DISABLE_CP_DEFPFX="1"
export WINEDLLOVERRIDES="xaudio2_7=n,b"
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#Author:
#CoJBiBGame_x86.exe
#Rating=5
################################################
export LAUNCH_PARAMETERS=""
export PW_DLL_INSTALL="d3dx9" # Install DLL in port prefix (used winetricks)
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
#Author: fidel
#CatsLauncher.exe
#Rating=5
#####################examples###########################
export PW_WINDOWS_VER="10"
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="DOTNET"
# export WINEDLLOVERRIDES="libglesv2="
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#Author: xuser
#Cinebench.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE=1
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#Author: user
#Control_DX12.exe
#Rating=1-5
#####################examples###########################
export PW_COMMENT_DB="Control (DX12)"
export WINEDLLOVERRIDES="d3d12,d3d_rmdwin10_f,renderer_rmdwin10_f,apw_rmdwin10_f,input_rmdwin10_f,renderer_rmdwin10_f,physics_rmdwin10_f,snd_rmdwin10_f,ui_rmdwin10_f=n"
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#Author: xuser
#CyberShadow.exe
#Rating=1-5
################################################
export PW_VULKAN_USE=0
export LAUNCH_PARAMETERS=""
@@ -0,0 +1,9 @@
#!/usr/bin/env bash
#Author: xuser
#Cyberpunk2077.exe
#Rating=1-5
#####################examples###########################
export WINEDLLOVERRIDES="Crash*,REDEngineErrorReporter.exe="
export PW_REDUCE_PULSE_LATENCY=1
export LAUNCH_PARAMETERS="--launcher-skip"
export VKD3D_CONFIG=force_bindless_texel_buffer,multi_queue
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#Author: xuser
#DAOriginsLauncher.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE=1
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: linux-gaming.ru
#DOOMEternalx64vk.exe
#Rating=?
################################################
export PW_VULKAN_USE=1
export PW_REDUCE_PULSE_LATENCY=1
export LAUNCH_PARAMETERS="+in_terminal 1 +com_skipIntroVideo 1 +com_skipSignInManager 1"
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
#Author: nix
#DOOMx64.exe
#DOOMx64vk.exe
#Rating=1-5
#####################examples###########################
export PW_COMMENT_DB="DOOM 2016"
export PW_DLL_INSTALL="xact xact_x64 vcrun2019"
export WINEDLLOVERRIDES="xaudio2_8=n"
export PW_VULKAN_USE=1
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
#Author: xuser
#DXHRDC.exe
#DXHumanRevolutionDC.exe
#DXHumanRevolutionDC_s.exe
#Rating=5
#####################examples###########################
export WINEDLLOVERRIDES="WINMM=n,b"
export PW_VULKAN_USE=1
export PW_USE_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
export PW_USE_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
export PW_USE_GSTREAMER=0 # 0 - disabled use winegstreamer
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: xuser
#DaysGone.exe
#Rating=1-5
#####################examples###########################
export PW_DLL_INSTALL="vcrun2019" # Install DLL in port prefix (used winetricks)
export PW_USE_FSYNC=1 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
export PW_USE_ESYNC=1 # Do not use eventfd-based in-process synchronization primitives
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#Author:
#Dead Space.exe
#Rating=1-5
################################################
export PW_VULKAN_USE=0
export LAUNCH_PARAMETERS=""
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author:
#ds.exe
#Rating=5
################################################
export PW_VULKAN_USE=1
export LAUNCH_PARAMETERS=""
export WINEDLLOVERRIDES="d3dcompiler_47,dxcompiler=n,b"
@@ -0,0 +1,18 @@
#!/usr/bin/env bash
#Author: Eljeyna
#Deathloop.exe
#Rating=4
#####################examples###########################
if [[ "$LANGUAGE" == "ru" ]] ; then
export PW_COMMENT_DB="При использовании DualSense следует оставить параметры нетронутыми\nЕсли проявляются проблемы с определением геймпада, выключите DINPUT PROTOCOL"
else
export PW_COMMENT_DB="If you use DualSense do not recommended change settings\nBut if you have problems with gamepad controls, turn off DINPUT PROTOCOL parameter"
fi
export PW_VULKAN_USE="1"
export WINEDLLOVERRIDES="xaudio2_8,xaudio2_9="
export PW_DINPUT_PROTOCOL="1"
export PW_WINDOWS_VER="10"
export PW_USE_ESYNC="0"
export PW_USE_FSYNC="0"
export PW_PREFIX_NAME="DEATHLOOP"
export PW_WINE_USE="PROTON_LG"
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#Author: xuser
#Deponia.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE=0
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#Author: spider
#Diablo II.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE=0
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: deck
#Dishonored2.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="DISHONORED"
export PORTPROTON_NAME="VoidEngine"
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: deck
#DyingLightGame.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="DL"
export PORTPROTON_NAME="DyingLight"
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
#Author: PortWINE
#EALauncher.exe
#EADesktop.exe
#Rating=5
#####################examples###########################
export PW_WINE_USE="PROTON_LG"
export PW_PREFIX_NAME="EAAPP"
export WINE_SIMULATE_WRITECOPY="1"
add_in_start_portproton () { export LC_CTYPE=C ;}
@@ -0,0 +1,15 @@
#!/usr/bin/env bash
#Author: PortWINE
#EpicGamesLauncher.exe
#Rating=5
##############################################
#export PW_COMMENT_DB="PortWINE database file for Epic Games Launcher"
export LAUNCH_PARAMETERS="-SkipBuildPatchPrereq"
export PW_DLL_INSTALL="vcrun2012 vcrun2013 vcrun2019"
export PW_WINE_USE="PROTON_LG"
export PW_USE_ESYNC="1"
export PW_USE_FSYNC="1"
export WINEDLLOVERRIDES="vulkan-1=n,b"
# add_in_start_portproton () {
# regdlloverrides "RDR2.exe:vulkan-1=n,b"
# }
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#Author: fff555w
#Esprit Games.exe
#Rating=1-5
#####################examples###########################
export PW_WINDOWS_VER=7 # Set windows version 10, 7 or XP
@@ -0,0 +1,10 @@
#!/usr/bin/env bash
#Author: xuser
#FL.exe
#FL64.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE=0
export WINEDLLOVERRIDES="FLEngine,FLEngine_x64=n"
export PW_USE_FSYNC=0 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
export PW_USE_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
@@ -0,0 +1,9 @@
#!/usr/bin/env bash
#Author: linux-gaming.ru
#FarCry.exe
#Rating=5
#################################
export PW_VULKAN_USE=0
export WINEDLLOVERRIDES="cgD3D9,cgD3D9d=n"
export PW_USE_FSYNC=0 # Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no FUTEX_WAIT_MULTIPLE support.
export PW_USE_ESYNC=0 # Do not use eventfd-based in-process synchronization primitives
@@ -0,0 +1,8 @@
#!/usr/bin/env bash
#Author: deck
#FarCry5.exe
#Rating=1-5
export PW_VULKAN_USE="2"
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="FARCRY"
export PORTPROTON_NAME="Far Cry 5"
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#Author: gamer
#FarCry6.exe
#Rating=1-5
#####################examples###########################
export VK_FORMAT_A8_UNORM=1
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#Author: xuser
#FarLoneSails.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE=0
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#Author: nixon
#farcry3_d3d11.exe
#Rating=1-5
#####################examples###########################
export PW_DLL_INSTALL="d3dx11_42 d3dx11_43"
@@ -0,0 +1,6 @@
#!/usr/bin/env bash
#Author: nixon
#farcry3.exe
#Rating=1-5
#####################examples###########################
export PW_VULKAN_USE=0
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#Author: nixon
#FarCry4.exe
#Rating=1-5
#####################examples###########################
export PW_DLL_INSTALL="d3dcompiler_43 d3dcompiler_4 xact xact_x64"
export PW_PREFIX_NAME="FARCRY_4"
@@ -0,0 +1,7 @@
#!/usr/bin/env bash
#Author: fidel
#Farlight84Launcher.exe
#Rating=1-5
export PW_WINE_USE="WINE_LG"
export PW_PREFIX_NAME="FARLIGHT_84"
export PW_NO_AUTO_CREATE_SHORTCUT="1"
Loaded 100 of 838 files, more files were not shown because too many files have changed in this diff. Show more