forked from Linux-Gaming/PortProtonQt
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2bb47c0d0e
|
||
|
|
4ef0184c81
|
||
|
|
1eb9800a30
|
||
|
|
2caab288dd
|
||
|
|
e80773c601
|
||
|
|
4b42d19bea
|
||
|
|
d04f8fdc9e
|
||
|
|
40a3cacc36
|
||
|
|
d54c84f723
|
||
|
|
2cfbe08323
|
||
|
|
d6684691a4
|
||
|
|
0bf87e172d
|
||
|
|
07bfa9611f
|
||
|
|
1f4ee890cf
|
||
|
|
8feb58c5e0
|
||
|
|
f47ff16e97
|
||
|
|
47f8faeaf2 | ||
|
|
2085fff8c3 | ||
|
|
e8ddd4372e | ||
|
|
1bfacb887b | ||
|
|
461527eb0c | ||
|
|
eb3d507f9d
|
||
|
|
d501dfcecf
|
||
|
|
e21bb09081
|
||
|
|
fa8e8478e5
|
||
|
|
51b78b506c
|
||
|
|
1776dd9e94
|
||
|
|
7f75d5386d
|
||
|
|
64aedb4a12
|
||
|
|
bc41211ab1
|
||
|
|
bf93eff67d
|
||
|
|
5d2df85d19 | ||
|
|
68ba818d74
|
||
|
|
68c89eccbc
|
||
|
|
5109c50c99
|
||
|
|
9f194fd33f
|
||
|
|
d7838eceb1 | ||
|
|
94af16ceac
|
||
|
|
d2163b84b4
|
||
|
|
a19f446b44 | ||
|
|
d1c812c5bd | ||
|
|
e76abf430c
|
||
|
|
e9473ccaeb
|
||
|
|
63997f8e1a
|
||
|
|
45235891c8
|
||
|
|
682363ded2
|
||
|
|
522e52f032
|
||
|
|
c30be1214a
|
||
|
|
a99e752ec0
|
||
|
|
91eddcb161
|
||
|
|
7f68494a57
|
||
|
|
135d53df31
|
||
|
|
893ed8f057
|
||
|
|
aaeb550fd6
|
||
|
|
0210773642
|
||
|
|
6cf0fc4650
|
||
|
|
404d7c0fd0
|
||
|
|
fd2b0fca61 | ||
|
|
5fa734c2d1
|
||
|
|
9b602181cc
|
||
|
|
7a2be0c289
|
||
|
|
7704308d63
|
||
|
|
1f9882cec8
|
||
|
|
2f8d73e074
|
||
|
|
2b36fe0a92
|
||
|
|
cf1ed31f04
|
||
|
|
066b3b6767
|
||
|
|
ebb80a3602
|
||
|
|
1c37b4c961
|
||
|
|
16060274d6
|
||
|
|
197b5266ba
|
||
|
|
3787e9b2bf
|
||
|
|
4f5499b56d
|
||
|
|
e1b8bfde7f
|
||
|
|
311039a543 | ||
|
|
fc73d80e43
|
||
|
|
498a26c00e
|
||
|
|
2234066479
|
||
|
|
d44f561c4c
|
||
|
|
1d7602bb9e
|
||
|
|
facedf6c1a
|
||
|
|
78c5302a99 | ||
|
|
3fb29751ec | ||
|
|
910c18ad37 | ||
|
|
a050c2ed35 | ||
|
|
dc7e672ec8 | ||
|
|
ee093d727c | ||
|
|
a4f4f7e60f
|
||
|
|
d1ea3d28f7
|
||
|
|
c2dca6eda9
|
||
|
|
f9c3e52275 | ||
|
|
7091d5ccbd | ||
|
|
b88567a3ae
|
||
|
|
40b3644f80
|
||
|
|
636c535a33 | ||
|
|
e01076524c
|
||
|
|
ac84f3738b | ||
|
|
49f2d044b9
|
||
|
|
21603e32a4
|
||
|
|
4a35f05893
|
||
|
|
29362b3413
|
||
|
|
166667f7cf | ||
|
|
6c560b9123
|
||
|
|
595f58195e
|
||
|
|
e58d470960
|
||
|
|
760dd359b8
|
||
|
|
27f1247a1b | ||
|
|
e25b52f3d5
|
||
|
|
523446e827
|
||
|
|
a6610e8087
|
||
|
|
4dc09df895 | ||
|
|
20c8dbe350 | ||
|
|
839b4b7523 | ||
|
|
4860c232ea | ||
|
|
704c514ba4 | ||
|
|
68b77657d6 | ||
|
|
13e89d8b2b
|
||
|
|
30c3bfb3b1
|
||
|
|
8e12ec713f
|
||
|
|
e809f031ce
|
||
|
|
1b42c672bb
|
||
|
|
07b53f3160
|
||
|
|
40d80f0ce8
|
||
|
|
0b8536b163
|
||
|
|
31f6d84537
|
||
|
|
5c86b3d943
|
||
|
|
ec2ffee64d
|
||
|
|
60e9a2866a
|
||
|
|
94269455ec
|
||
|
|
f5c07cf3ea
|
||
|
|
509d4272ab
|
||
|
|
ff560fb43a
|
||
|
|
ed78af49d2
|
||
|
|
5c5a154a0d
|
||
|
|
ae011adfdf
|
||
|
|
b0d97e0e0b
|
||
|
|
8a303bf9ed
|
||
|
|
a14563dd78
|
||
|
|
abb511c173 | ||
|
|
ef0626a069
|
||
|
|
40f06caa16
|
||
|
|
bfd4bf4065
|
||
|
|
92ecc008f3
|
||
|
|
0c78e9c689
|
||
|
|
4840d512b5 | ||
|
|
c22992b803
|
||
|
|
57f955d827 | ||
|
|
f9694e576b | ||
|
|
a74c5631ec | ||
|
|
55361797c3
|
||
|
|
f3999e9bf1
|
||
|
|
35366bbf12
|
||
|
|
bab6d6b84e
|
||
|
|
061ee7fedf
|
||
|
|
8707c93835
|
||
|
|
53a44c5708
|
||
|
|
154cf43bf8
|
||
|
|
a70bf97774
|
||
|
|
a06f76a2e9
|
||
|
|
649aec7229
|
||
|
|
0da0d55537
|
||
|
|
c2f611c73e | ||
|
|
c4f9f05363 | ||
|
|
56c8a9781b
|
||
|
|
9d72466402
|
||
|
|
4df207fa3b
|
||
|
|
bd6dc490b1 | ||
|
|
383d17f523 | ||
|
|
9b889a8d2e | ||
|
|
64c9f4d196 | ||
|
|
0de9e46485
|
||
|
|
bdc14d1d86
|
||
|
|
1fc8d62a85
|
||
|
|
0e3a0be146 | ||
|
|
6e2f7452bd | ||
|
|
37168f8892 | ||
|
|
141f98d81f | ||
|
|
7031051dc4
|
||
|
|
769ad421a2
|
||
|
|
2316efe3d6
|
||
|
|
09b790fc26
|
||
|
|
a48b9050d2
|
||
|
|
b602880907
|
||
|
|
05a5b136e9
|
||
|
|
bde4ba9602
|
||
|
|
2634370ee3 | ||
|
|
9cea141f9c | ||
|
|
3d417c1a83
|
||
|
|
27003d4967
|
||
|
|
c75755bb64
|
||
|
|
67652ea258
|
||
|
|
3735c7514c
|
||
|
|
803c98b6ff
|
||
|
|
9214018c03
|
||
|
|
d2597fa8d6
|
||
|
|
25e20c3ea1
|
||
|
|
f1a5db4f34
|
||
|
|
096d86cb7b
|
||
|
|
7b7553a1fe
|
||
|
|
7c30418d61
|
||
|
|
fa30835e97
|
||
|
|
0bdab8fd40 | ||
|
|
43f4d0a665 | ||
|
|
779a5eca65 | ||
|
|
1a30a105d0
|
||
|
|
45fe72d393
|
||
|
|
3b9e531eda
|
||
|
|
822b454bf4
|
||
|
|
77a65d9e81 | ||
|
|
eee8fb5f0e | ||
|
|
4d84d74d70 | ||
|
|
c9fea6e713
|
||
|
|
b4f39b003b
|
||
|
|
f7e44d72c8
|
||
|
|
747b85ce2f
|
||
|
|
b907b5400c
|
||
|
|
043031baec
|
||
|
|
17e7fa2690
|
||
|
|
be1e517c68
|
||
|
|
bcd089439e
|
||
|
|
cb1b984f04
|
||
|
|
22bf9b2451
|
||
|
|
c8ff25dd69
|
||
|
|
927531620a
|
||
|
|
bb14e1a346
|
||
|
|
2a5a45fabd
|
||
|
|
5e0e5b785e
|
||
|
|
90c4901e8e | ||
|
|
c1e76b8e8c
|
||
|
|
782c9cae6a | ||
|
|
725c8d371e
|
||
|
|
53d79c50d3
|
||
|
|
af8679aa08
|
||
|
|
96a2bd92e8
|
||
|
|
810d09b0ad | ||
|
|
359ac7d72e | ||
|
|
6135f640fd
|
||
|
|
58d85dcf9f
|
||
|
|
6b614ce0c5
|
||
|
|
7b563dff32
|
||
|
|
d04e637030
|
||
|
|
00a222073f
|
||
|
|
e09c87491f | ||
|
|
4f5fa36a0d | ||
|
|
6e70c92afc
|
||
|
|
ff568fad1c
|
||
|
|
254f56fe17 | ||
|
|
b0e8345517 | ||
|
|
897daf983b | ||
|
|
2effcf5505 | ||
|
|
5aaa7cbc7e
|
||
|
|
6a502711ad | ||
|
|
4889ad1f48
|
||
|
|
2d5336bc51
|
||
|
|
a7fe71558e
|
||
|
|
b9de7e40fe
|
||
|
|
9ad69007ec
|
||
|
|
6af8b31a90
|
||
|
|
18ae09f4b0
|
||
|
|
ba56c92726
|
||
|
|
b55ffc9d09 | ||
|
|
f819e495f2
|
||
|
|
4e998edae8
|
||
|
|
6ccfeffdd8
|
||
|
|
3ce2acca89
|
||
|
|
2092a08e82
|
||
|
|
79a32d392e
|
||
|
|
f1a34d352b
|
||
|
|
7afd6d0baf | ||
|
|
a0a602daf5 | ||
|
|
9d797e8072
|
||
|
|
b695ec6a2a
|
||
|
|
d562bbf18d
|
||
|
|
cf4185007a
|
||
|
|
e8dbaeb9f7
|
||
|
|
2ec44c6a5b
|
||
|
|
257f3c85cf
|
||
|
|
53f1f5857c | ||
|
|
ae1d991286
|
||
|
|
693f0cb7f4
|
||
|
|
85af880000
|
||
|
|
ed1ba4dd28
|
||
|
|
de29dd92a9
|
||
|
|
6fa6f1af2a | ||
|
|
16ef000ed2
|
||
|
|
299a3cf89e | ||
|
|
056faafd82
|
||
|
|
4615b922c2
|
||
|
|
e842840101
|
||
|
|
8e76a50b1d
|
||
|
|
e7cf33cdc0
|
||
|
|
3c47d636f2
|
||
|
|
0b253a4d6e
|
||
|
|
ded84a6130
|
||
|
|
4a17f438fd | ||
|
|
3e6e138ff9
|
||
|
|
2f7dc41c49
|
||
|
|
ce1ca0d026
|
||
|
|
6ffdd4988f
|
||
|
|
debe88f2bc
|
||
|
|
efeac02ece
|
||
|
|
08d45ddc70
|
||
|
|
7a62207063
|
||
|
|
1deaaf74d8
|
||
|
|
a45792307e
|
||
|
|
a52d4a1f49
|
||
|
|
a5ea3e220f
|
||
|
|
10b498acb7
|
||
|
|
d9f3e7fbb8
|
||
|
|
998a4234e5
|
||
|
|
97c1addedc
|
||
|
|
b9a8a07a04
|
||
|
|
9e5fd9d1a7
|
||
|
|
cea7b40b82
|
||
|
|
2a89bd7573
|
||
|
|
c66538e32f
|
||
|
|
d2e06fcbc3 | ||
|
|
4b56725559
|
||
|
|
14cf5c73f8
|
||
|
|
347685e4f0
|
||
|
|
5e512279f3
|
||
|
|
05e7366706
|
||
|
|
862bfe4f8b
|
||
|
|
12b0889566 | ||
|
|
a62bfecfd3
|
||
|
|
7ec1602be7
|
||
|
|
7ae1904bb6
|
||
|
|
527cceccc2
|
||
|
|
42eff0d44b
|
||
|
|
12f3d3b753
|
||
|
|
3afe35929f
|
||
|
|
32e363d328
|
||
|
|
6443b71c01
|
||
|
|
d5db14db54
|
||
|
|
db2cc0365d
|
||
|
|
ab073c5413
|
||
|
|
2212c7c23a
|
||
|
|
3a3ae4be2e
|
||
|
|
3d9151df7b | ||
|
|
844fcff2da | ||
|
|
cf542d5ce2 | ||
|
|
a6c25bad98
|
||
|
|
0f0155cfb7
|
||
|
|
8b7849b3fd
|
||
|
|
e0d8f587fa
|
||
|
|
393d5cce98
|
||
|
|
cf7a14983d
|
||
|
|
024a1670eb
|
||
|
|
6cc3487d59 | ||
|
|
0ce8317763 | ||
|
|
c3e1222237 | ||
|
|
bdc52c8f02 | ||
|
|
d202b03025
|
||
|
|
4e9f1ee906
|
||
|
|
2590583e98
|
||
|
|
a62c2b4ee6
|
||
|
|
c3adf4c6de
|
||
|
|
eff8436aa0
|
||
|
|
7707d348c2
|
||
|
|
6d624a59c9
|
||
|
|
87f06913f2
|
||
|
|
b193d36d42 | ||
|
|
5e12b29c5f
|
||
|
|
cdfedd1503
|
||
|
|
11dbd249ab
|
||
|
|
000220dd47
|
||
|
|
8356659108
|
||
|
|
2afa185084 | ||
|
|
a41da6b35b
|
||
|
|
bb84524b06
|
||
|
|
2cf5369892
|
||
|
|
67026aa040
|
||
|
|
0e3e300eb5
|
||
|
|
b9991f89b3
|
||
|
|
d9a6e1cca4
|
||
|
|
c4a216422e
|
||
|
|
91f92a215c
|
||
|
|
13dd00c8d5
|
||
|
|
ef7b0bce16
|
||
|
|
72546d2bd5
|
||
|
|
0e54c0451a
|
||
|
|
2d26067f37
|
||
|
|
1c9cfea1eb
|
||
|
|
7cc0873ee2
|
||
|
|
bb8fc83259
|
||
|
|
3f2c368946
|
||
|
|
0ba671ed1a
|
||
|
|
d96c78d3cb
|
||
|
|
3ad8193701
|
||
|
|
4fd947cab5
|
||
|
|
a09ee2e804
|
||
|
|
4a37d901a2
|
||
|
|
5cfea4d8fd
|
||
|
|
7ca9cb4cf5
|
||
|
|
e5021edbed
|
||
|
|
96f471336c
|
||
|
|
a1441669c1
|
||
|
|
de794d1aeb
|
||
|
|
d27ffbf407 | ||
|
|
d2448b09b7 | ||
|
|
549123657d | ||
|
|
2f89479802 | ||
|
|
6325eee8c2 | ||
|
|
83c9c9ba64
|
||
|
|
1542c5bd0c
|
||
|
|
681ba1ff89
|
||
|
|
db099bce1f
|
||
|
|
5271596481
|
||
|
|
c3d7cf4c62
|
||
|
|
7941258ba7
|
||
|
|
1a105fcf0b
|
||
|
|
95aeb4a62f
|
||
|
|
55a0a158c8
|
||
|
|
daa05187f5
|
||
|
|
92bb49286b
|
||
|
|
edba3c10bf | ||
|
|
fa133fff98 | ||
|
|
8e90e9cafc
|
||
|
|
6f8436eeb2
|
||
|
|
69833e7295 | ||
|
|
7533769b15 | ||
|
|
174fae6dab | ||
|
|
497acf85e4
|
||
|
|
3b57f87770 | ||
|
|
d8a9ee58bc
|
||
|
|
66adeb619d | ||
|
|
333cc09409
|
||
|
|
229f1ee78f
|
||
|
|
20b64de731
|
||
|
|
f0ab40a2da
|
||
|
|
2fb580eb09
|
||
|
|
b45d26ea8c
|
||
|
|
32e4b28aac
|
||
|
|
c853327cac
|
||
|
|
7d2c5e4662
|
||
|
|
a6564d350f
|
||
|
|
0909faf50c
|
||
|
|
e123bfa79f
|
||
|
|
b45a0683c9
|
||
|
|
e567a16437
|
||
|
|
7e38d9a70f
|
||
|
|
3c793345ba | ||
|
|
9e0946ae7e
|
||
|
|
2bc610940b
|
||
|
|
f9c790b568 | ||
|
|
035e560fd5 | ||
|
|
d185c7cfdc | ||
|
|
97d4ea26d5
|
||
|
|
a63c894cb9
|
||
|
|
032398a988
|
||
|
|
9a5265f335
|
||
|
|
589c8657a6
|
||
|
|
b1155726e0
|
||
|
|
4fd11e09fe
|
||
|
|
5dc66e0822 | ||
|
|
0cd98c0996
|
||
|
|
d813ac1fac
|
||
|
|
258b1ab6c5 | ||
|
|
450d63963d | ||
|
|
fe8bc1ef8e
|
||
|
|
f0579307db
|
||
|
|
a61d62071f
|
||
|
|
316ba9d4a8
|
||
|
|
c4cc79a432
|
||
|
|
805732a5c6
|
||
|
|
8ecb26a3e6
|
||
|
|
6d800c04fd | ||
|
|
2addc70dc6 | ||
|
|
7c662927b1 | ||
|
|
3b76a7c8a1 | ||
|
|
a94edea9a6 | ||
|
|
39ea73ae87
|
||
|
|
4b4ad33a54
|
||
|
|
b0d5771bcb
|
||
|
|
e9ccd6c2b4
|
||
|
|
8d10d90263
|
||
|
|
15e780d618
|
||
|
|
9166cd9cd3
|
||
|
|
869666ece9
|
||
|
|
269151c00a
|
||
|
|
c7d689cde6
|
||
|
|
52d72b660e
|
||
|
|
99a0e9ba1d
|
||
|
|
b250b86032
|
||
|
|
0797c1a52e
|
||
|
|
9ad828ace5
|
||
|
|
a4e0928ff6
|
||
|
|
bcda562b6f
|
||
|
|
15bc92ca7f
|
||
|
|
9b3bd6b31e | ||
|
|
9c1638daff | ||
|
|
a9b3dff064 | ||
|
|
6c1bef2642
|
||
|
|
545ce073d7
|
||
|
|
5e7f81e206
|
||
|
|
41794c44a9
|
||
|
|
d6517cb7c1
|
||
|
|
808910c6fc
|
||
|
|
d17fbb713e
|
||
|
|
863cc4d336 | ||
|
|
df4dc4497d | ||
|
|
33575fc27a
|
||
|
|
34920b8a5e
|
||
|
|
c068129a46
|
||
|
|
498497d3e2 | ||
|
|
f193089ff3 | ||
|
|
952af795d5
|
||
|
|
6e3f70f0c6
|
||
|
|
a795bddbc3
|
||
|
|
76a435d421
|
||
|
|
9e13e5d7fa
|
||
|
|
186d065f4a
|
||
|
|
270c96e1cd | ||
|
|
608fc12c2b | ||
|
|
53862ec4e3 | ||
|
|
7744394f07 | ||
|
|
acd8269b47 | ||
|
|
c087b698ab | ||
|
|
ad9694df98 | ||
|
|
cb5c39db53 | ||
|
|
b19ce9fd17 | ||
|
|
c36c52162c
|
||
|
|
c8e3bd40b2
|
||
|
|
d5fedd827d
|
||
|
|
8d9a60dc28 | ||
|
|
3e51f06126
|
||
|
|
39ee989175
|
||
|
|
67bc16f3f6
|
||
|
|
9c46909973
|
||
|
|
452ab7a157
|
||
|
|
fc58f0cac9
|
||
|
|
0040307b7f
|
||
|
|
0f5b33bce4
|
||
|
|
bf9c76be9c | ||
|
|
ee67e82320 | ||
|
|
c7990e6ac3 | ||
|
|
7ead4fb61f | ||
|
|
6a3ef0005c | ||
|
|
5068c11a3d
|
||
|
|
e40cabae2e
|
||
|
|
5975fa0ba0
|
||
|
|
ca2127e3ce | ||
|
|
dd7c5c934b | ||
|
|
a2a5694a69
|
||
|
|
b0ce5aff7b
|
||
|
|
fb2162b260
|
||
|
|
0f87c67774
|
||
|
|
0bc6c5eee1
|
||
|
|
86ce0bb528
|
||
|
|
221ca1b5b5
|
||
|
|
6bce55a116
|
||
|
|
779156bfde
|
||
|
|
c08b3d2ff6
|
||
|
|
c6e9e5ac22
|
||
|
|
4e4a4eaa0d
|
||
|
|
3e5da67ac5
|
||
|
|
84a015d1fc
|
||
|
|
a04e1069c4
|
||
|
|
a56528a61d
|
||
|
|
a5bc4269b2
|
||
|
|
473c824124 | ||
|
|
4b378f59f5
|
||
|
|
1a62acbd9d
|
||
|
|
ff03834ade
|
||
|
|
460ed51fc4
|
||
|
|
5c9318808a | ||
|
|
730c04560d | ||
|
|
9e759f044d
|
||
|
|
c45b81ea2b
|
||
|
|
b438cf900e
|
||
|
|
61205191ea
|
||
|
|
cab84b3a8e
|
||
|
|
e812c8e4da
|
||
|
|
6689c692f6
|
||
|
|
7ecdcc0c96
|
||
|
|
397c4686d6
|
||
|
|
f95a475315
|
||
|
|
d3673c4aeb
|
||
|
|
31c8428255
|
||
|
|
b01fae652a
|
||
|
|
c92855366e
|
||
|
|
13dc84c1ad
|
||
|
|
d477acffd5
|
||
|
|
7147f6087a
|
||
|
|
b8fa8925ad
|
||
|
|
e28a8b5321
|
||
|
|
182ed098a3
|
||
|
|
a75d6a41d2
|
||
|
|
915a7077c6
|
||
|
|
c183635778
|
||
|
|
519edd1efc
|
||
|
|
201a96f73d
|
||
|
|
9593af224b
|
||
|
|
9d8ba97c2d
|
||
|
|
843af631e3
|
||
|
|
b36f263bb4
|
||
|
|
7e15069f3b
|
||
|
|
edcfe2c018
|
||
|
|
4ccd2d6640 | ||
|
|
de0ed85599
|
||
|
|
f4ee6eef14
|
||
|
|
30bbb591d3 | ||
|
|
208b6aea3b | ||
|
|
df402b58dd
|
||
|
|
baaef49dd9
|
||
|
|
67553f1b57
|
||
|
|
a455a7d005
|
||
|
|
65ab28db1f
|
||
|
|
9688679ff8
|
||
|
|
311d74a629
|
||
|
|
e807e2246a
|
||
|
|
cc01552bfa
|
||
|
|
6fb33bd9ac | ||
|
|
0ed071f980 | ||
|
|
ccd60ff787
|
||
|
|
23264203d8
|
||
|
|
ad7461d7cc | ||
|
|
27feb9cfdd
|
||
|
|
ffc1895295
|
||
|
|
2edc3bf9aa
|
||
|
|
ac827903b5
|
||
|
|
ef05259289
|
||
|
|
4b59fe0fb9
|
||
|
|
12c344181e
|
||
|
|
43b97acc27 | ||
|
|
6c6a5c7aae | ||
|
|
5c43e22726
|
||
|
|
4bf3f34fbe
|
||
|
|
687c4cfb9d
|
||
|
|
45d210dd72
|
||
|
|
e840f07e60 | ||
|
|
69b949198d
|
||
|
|
bcd6c73d37 | ||
|
|
8caa7727c6
|
||
|
|
e905e2fb24
|
||
|
|
6ca70e86b4 | ||
|
|
1d42a8cd97
|
||
|
|
f0d5873342
|
||
|
|
aeac40a003
|
||
|
|
0059162dff
|
||
|
|
d432e44ca6
|
||
|
|
f860513626
|
||
|
|
e6cdf92fc1
|
||
|
|
c3b54b43dd
|
||
|
|
f3a2c179a3
|
||
|
|
85032b3c1f
|
||
|
|
fa8935b2aa
|
||
|
|
0ff032885a
|
||
|
|
dcaba9bf1f
|
||
|
|
930d253fd1
|
||
|
|
84dd5ad676
|
||
|
|
a017399c7a
|
||
|
|
0d9a4b560c
|
||
|
|
73491d8259 | ||
|
|
f492f0019b | ||
|
|
a1c3f1cb8b
|
||
|
|
9d8d9edf51
|
||
|
|
b2d42a44be
|
||
|
|
2ce141af90
|
||
|
|
dacc44d62c
|
||
|
|
a6edaa5f4d
|
||
|
|
7612491f2b
|
||
|
|
8f968133f0
|
||
|
|
8a5eea305c
|
||
|
|
bb629e4063
|
||
|
|
4d6f6c1b82
|
||
|
|
4451d7e26a | ||
|
|
a4199e2a16
|
||
|
|
401d1ddac2
|
||
|
|
86f66a1174
|
||
|
|
8d5a99f0de
|
||
|
|
92f795f0e5
|
||
|
|
821c9172b2 | ||
|
|
9c2febb40a | ||
|
|
da21309b0c
|
||
|
|
9be9187ea5
|
||
|
|
18d1ad2d92
|
||
|
|
f9cefe501b
|
||
|
|
d385e4e120
|
||
|
|
4d9f7be000 | ||
|
|
ee6255a507 | ||
|
|
2a8630db1b | ||
|
|
078bb9e8c7 | ||
|
|
be7f7056d3 | ||
|
|
b31dcb9c63 | ||
|
|
0958914cf1
|
||
|
|
ff23e4c0df
|
||
|
|
4ae1b71823
|
||
|
|
25bf639f00
|
||
|
|
5dfdc91b75
|
||
|
|
e5076a683c | ||
|
|
c3d3668eee | ||
|
|
f6d2a37d6f | ||
|
|
6969c534a8 | ||
|
|
4fcf48a7cf
|
||
|
|
090818a356
|
||
|
|
7451d1f876 | ||
|
|
f30e3fd405
|
||
|
|
01e2c3bfd5
|
||
|
|
52e1b303ba
|
||
|
|
ab954936fc
|
||
|
|
d25342331d | ||
|
|
26d1661f63 | ||
|
|
6ddb630fea
|
||
|
|
2b934bef6e | ||
|
|
5d2101475e | ||
|
|
c16b481679
|
||
|
|
b91ed1b135
|
||
|
|
a25c30f463
|
||
|
|
ebded297d3
|
||
|
|
73d8c8e030
|
||
|
|
079d79f2c8
|
||
|
|
4f8e0c2d41
|
||
|
|
37d9104274 | ||
|
|
764bb3ced5
|
||
|
|
37dd71284f | ||
|
|
03da1b2c61 | ||
|
|
e77a7edf4c | ||
|
|
065cf835c5 | ||
|
|
3001fdac30
|
||
|
|
4456d06b50
|
||
|
|
1d423d7ebe | ||
|
|
1c91219cef
|
||
|
|
718b7f0eaa
|
||
|
|
0b4fcd37d4
|
||
|
|
f08ae3091e
|
||
|
|
947a5d522a
|
||
|
|
2ad468491e | ||
|
|
5bb0848f56
|
||
|
|
6d6ed36bc0
|
||
|
|
93d6c4610c
|
||
|
|
72ec18e099
|
||
|
|
a04b0e41e9
|
||
|
|
6e4664589b | ||
|
|
6ccf99c73f | ||
|
|
20372331d6 | ||
|
|
b17bbb2f46
|
||
|
|
4debfae5aa | ||
|
|
36a086129e
|
||
|
|
912dc2c77e
|
||
|
|
26f3a35560
|
||
|
|
ad8cbb35dc
|
||
|
|
612c10595d
|
||
|
|
ac3d1045e4
|
||
|
|
363ff0d86e | ||
|
|
fe6b84db56 | ||
|
|
02ebc440ec | ||
|
|
bf6421547d | ||
|
|
4679fb7eb0 | ||
|
|
5c5d544bc7 | ||
|
|
a4abeca70d
|
||
|
|
bb39b07445
|
||
|
|
4c27ca8365
|
||
|
|
8b0eb13d72
|
||
|
|
08ec0773fa
|
||
|
|
52f7c04cff
|
||
|
|
00e20f2165
|
||
|
|
758c731106 | ||
|
|
01a82510f2
|
||
|
|
72daab8cd6
|
||
|
|
a0445d8c45
|
||
|
|
343bc12c1e
|
||
|
|
8aff408bda
|
||
|
|
66586b2a36
|
||
|
|
3fb6727818
|
||
|
|
520fa55988
|
||
|
|
b34004cff3 | ||
|
|
2eb8c1f7b6 | ||
|
|
f36073ee32 | ||
|
|
a258a63c8e
|
||
|
|
def3fe27f8
|
||
|
|
45fd7da18a
|
||
|
|
6afce40576
|
||
|
|
c2f45736db
|
||
|
|
4f3fdb621e
|
||
|
|
e40e9811cf
|
||
|
|
d1bfab6c7c | ||
|
|
4f8929da40
|
||
|
|
4b0b613659
|
||
|
|
0802e7852f
|
||
|
|
4a03d803f4
|
||
|
|
4271461282
|
||
|
|
f4477101cc
|
||
|
|
0dc11ecd3c
|
||
|
|
3248392e78
|
||
|
|
9468c3f286
|
||
|
|
c826153ddf
|
||
|
|
f2b80604cb
|
||
|
|
dd61c72a3a
|
||
|
|
36a36ad7d2
|
||
|
|
03ada79e88
|
||
|
|
20444bc3d1
|
||
|
|
ae89b5a0fb
|
||
|
|
3372bb58ba
|
||
|
|
200b257622
|
||
|
|
0b8ef53cdd
|
||
|
|
41aea94fff
|
||
|
|
0a4cb81906
|
||
|
|
1743c69261
|
||
|
|
d0d1dff778
|
||
|
|
07e07dbe09
|
||
|
|
004916a82b
|
||
|
|
ae2115ad0a | ||
|
|
357a0dcf42
|
||
|
|
e5df48b9b0
|
||
|
|
48217b93f5
|
||
|
|
cc2372107a
|
||
|
|
a32d63f5e5
|
||
|
|
cbf29005ff
|
||
|
|
8d10bae8f2
|
||
|
|
28d0417ede
|
||
|
|
7efb0aadec
|
||
|
|
d4d7e9c044
|
||
|
|
eb18178958
|
||
|
|
979e208969
|
||
|
|
8704ba00e9
|
||
|
|
d9d8242475 | ||
|
|
64e626b2b2 | ||
|
|
8af84460eb
|
||
|
|
b7e83ad1d2
|
||
|
|
ffff6efa68
|
||
|
|
fabf14fc46
|
||
|
|
88db436b94
|
||
|
|
592d24c9c6
|
||
|
|
c472c785cc
|
||
|
|
759e931dfc
|
||
|
|
93f5ea49d4
|
||
|
|
d9c55bed61 | ||
|
|
64bbabd0f1 | ||
|
|
c3e9433f9d
|
||
|
|
c4274bbef6
|
||
|
|
cdfd983580
|
||
|
|
749113b48c
|
||
|
|
5fdba88c5c
|
||
|
|
a20887da5b
|
||
|
|
c9b8871fb1
|
||
|
|
6db27ef7af
|
||
|
|
97de53303c
|
||
|
|
07ac67e934 | ||
|
|
66e1e437f8 | ||
|
|
12c98adbd7
|
||
|
|
d7de29008e
|
||
|
|
4d99a66e84
|
||
|
|
288242195b | ||
|
|
892124efba | ||
|
|
ae7bd3e5ff | ||
|
|
042b90d663 | ||
|
|
4fdaf0115e | ||
|
|
b00f62776c
|
||
|
|
69674b5c75
|
||
|
|
eaa3467410
|
||
|
|
47a949fe6e
|
||
|
|
8902369fe7 | ||
|
|
c0529ac9fd | ||
|
|
a9ed377b00 | ||
|
|
bc523762b6 | ||
|
|
2f5159129c
|
||
|
|
eef8c7d496
|
||
|
|
64cad59d53
|
||
|
|
cc8e7fa515
|
||
|
|
8865def11e
|
||
|
|
69f3d087b3
|
||
|
|
39c9e0e7ee
|
||
|
|
bdc486f695 | ||
|
|
385a2b3535
|
||
|
|
f740ef1a53 | ||
|
|
b78f838ffd
|
||
|
|
36ca8a6b86
|
||
|
|
fb7e5b4c0c
|
||
|
|
c3235ed7d0
|
||
|
|
5676daa573
|
||
|
|
fba71245ef | ||
|
|
8c2b80c97e | ||
|
|
dbab969bd7 | ||
|
|
a8c273c7f1
|
||
|
|
1bfdf82770
|
||
|
|
3645b7828b
|
||
|
|
1b72223930
|
||
|
|
8268b95b53
|
||
|
|
0477e065f2
|
||
|
|
5d027a9c8a
|
||
|
|
fbda9ae455
|
||
|
|
e34ae0642d
|
||
|
|
0f28fa8474 | ||
|
|
41f24c9cbc | ||
|
|
e11a1e1a93 | ||
|
|
b8c1d8595f
|
||
|
|
4096bd541c | ||
|
|
8c934f5875
|
||
|
|
3a82a5859b
|
||
|
|
8305d6ed65 | ||
|
|
2b863718f4 | ||
|
|
c5bdc0db28 | ||
|
|
74e4b9e747 | ||
|
|
e15df2eebb | ||
|
|
c3a02ed71d | ||
|
|
4efc5caac9
|
||
|
|
57a87594af
|
||
|
|
6157d58d83 | ||
|
|
c085c31005 | ||
|
|
863bec41a0 | ||
|
|
dc721cc697 | ||
|
|
e8521a6a98 | ||
|
|
acc4818266
|
||
|
|
70685e0f45
|
||
|
|
a7f5e0dfe9
|
||
|
|
a0bd1f73d6
|
||
|
|
352420cdf8
|
||
|
|
b0da061a29
|
||
|
|
27d1ccf7a8
|
||
|
|
3847da55ab
|
||
|
|
3e1e032618
|
||
|
|
a0c5b33114
|
||
|
|
46cedbc934
|
||
|
|
c7669a3c42
|
||
|
|
589d2e6d5f
|
||
|
|
da681007c9
|
||
|
|
f8fa900a22
|
||
|
|
30c3882b65
|
||
|
|
527b0c1af0
|
||
|
|
1016a864ed
|
||
|
|
951503c48b
|
||
|
|
451d57a6d2
|
||
|
|
392f24f244
|
||
|
|
b44ff8bbb6
|
||
|
|
97a348585f
|
||
|
|
ef8ee4a821
|
||
|
|
b831742277
|
||
|
|
c1a45747e9
|
||
|
|
4e40460ba2
|
||
|
|
b66841e8b7
|
||
|
|
4d34c24cdf
|
||
|
|
65bc286494
|
||
|
|
cb91b41b46
|
||
|
|
c24aec0e40
|
||
|
|
54271548ec
|
||
|
|
a9552a3c1b
|
||
|
|
88c30025de
|
||
|
|
1aac62b647
|
||
|
|
08131ea53f
|
||
|
|
2666159375
|
||
|
|
3515ad0ac5
|
||
|
|
0875896e45
|
||
|
|
4f406cc966
|
||
|
|
f9e0081fd6
|
||
|
|
bc4ba2169d
|
||
|
|
cfc05c2017
|
||
|
|
55fba9260e
|
||
|
|
ebc480883a
|
||
|
|
3548a48b8a
|
||
|
|
cdf36315f1
|
||
|
|
6b9e33e1f1
|
||
|
|
4bcfd1ae65 | ||
|
|
aeb74ea38d | ||
|
|
7b8127679c
|
||
|
|
1364164524
|
||
|
|
0339906d4c
|
||
|
|
38881b93c2 | ||
|
|
b16bd492af
|
||
|
|
afcfef4d03
|
||
|
|
92ba82ae63
|
||
|
|
832eb97597
|
||
|
|
ab2596b6e8
|
||
|
|
7377ec64a8
|
||
|
|
3503a72db0
|
||
|
|
803845d9e0
|
||
|
|
a1b3712305
|
||
|
|
2ce7eab624
|
||
|
|
1b48890b0e
|
||
|
|
bef746596f
|
||
|
|
aa55d183d6
|
||
|
|
56f7d37841 | ||
|
|
8060c93e9e | ||
|
|
4b820a831c | ||
|
|
3961927998 | ||
|
|
883f3df205 | ||
|
|
b20c3d270f | ||
|
|
958a61752b | ||
|
|
43912fd002 | ||
|
|
c4cfdee072 | ||
|
|
c45f9d197c | ||
|
|
d154011b2d | ||
|
|
e98f4353a3
|
||
|
|
fcea437edf
|
||
|
|
582ed38c15
|
||
|
|
40e6b40bd9
|
||
|
|
39435bacb8 | ||
|
|
6349b2dfec | ||
|
|
e58b6aa912
|
||
|
|
b8e220bea1
|
||
|
|
17e78ac592
|
||
|
|
2af942e7c9
|
||
|
|
61bceca3dd
|
||
|
|
f010dd123a
|
||
|
|
8b080ebc65
|
||
|
|
ffef9b5145
|
||
|
|
65b94b02e8
|
||
|
|
aac34b89f2
|
||
|
|
65c81fa7ea | ||
|
|
004f9139b6 | ||
|
|
4091fd0382
|
||
|
|
f85e71ea7d
|
||
|
|
0d4a8905ce
|
||
|
|
70dea7c447 | ||
|
|
6ffa04bfac | ||
|
|
510da6b95f | ||
|
|
230003fde2
|
||
|
|
3231f89a9e
|
||
|
|
a67db553ec
|
||
|
|
154ac922b1
|
||
|
|
3322bb571c
|
||
|
|
1674efb26d | ||
|
|
845f7c5714 | ||
|
|
b507ca432e | ||
|
|
e7185cafa9 | ||
|
|
cb38008519 | ||
|
|
53e45a2265 | ||
|
|
4e400f95a0 | ||
|
|
53f250548b | ||
|
|
c5cfa30dce | ||
|
|
799ec4a473 | ||
|
|
a6abc3ccb9
|
||
|
|
a0144fc8fc
|
||
|
|
f3bdb5e74b
|
||
|
|
6567ac3431
|
||
|
|
b3c322c6be | ||
|
|
47cbe6b0df | ||
|
|
f5304de50f | ||
|
|
949edeb0aa | ||
|
|
1d4a65def7 | ||
|
|
4fd493f961 | ||
|
|
ef7ccb4755 | ||
|
|
2086f29d5b | ||
|
|
f70cacef0a | ||
|
|
4dc76ca5c5 | ||
|
|
a3a4a606ad
|
||
|
|
208abcce1b
|
||
|
|
ce3962f27c
|
||
|
|
0f01ecafde
|
||
|
|
ce709cc078
|
||
|
|
42b5a356f8
|
||
|
|
66be4780c8
|
||
|
|
09293ad254
|
||
|
|
23c4b662d6 | ||
|
|
2f8d9acc7f
|
||
|
|
055e4e48da
|
||
|
|
e22f747c79
|
||
|
|
30306d0021
|
||
|
|
eadc1c199b
|
||
|
|
a8a445b712 | ||
|
|
f58ccc6499 | ||
|
|
d29153debe | ||
|
|
2e1d1818e1 | ||
|
|
261c48a3db | ||
|
|
7ad81309cf | ||
|
|
eca7cd9d11 | ||
|
|
3384be6745 | ||
|
|
524e49175a | ||
|
|
61cfd86138 | ||
|
|
45461461fd | ||
|
|
4ae371e3e8 | ||
|
|
e0b9f16795 | ||
|
|
7db774fd9e | ||
|
|
a72a8c45ab | ||
|
|
801cc9e7e5 | ||
|
|
af92f4aa34 | ||
|
|
88e724d879 | ||
|
|
51eb8afda0 | ||
|
|
0ae9bad01d | ||
|
|
77f703ff38 | ||
|
|
d0f21ee67c | ||
|
|
6c9b5dbc76 | ||
|
|
e7985e351c | ||
|
|
e1554132a9 | ||
|
|
aee583561a | ||
|
|
b6a1a3b325 | ||
|
|
6159882b7a
|
||
|
|
07fa91b448
|
||
|
|
40450c829e
|
||
|
|
d4efb499ad
|
||
|
|
4d2465a5d2
|
||
|
|
cbcd3e45aa | ||
|
|
ad43008d4c
|
||
|
|
207504b2e1
|
||
|
|
1e0a966e26
|
||
|
|
ff66219d51
|
||
|
|
e8bef95a38
|
||
|
|
924a50f49f
|
||
|
|
90334d3955
|
||
|
|
476cf5b34f | ||
|
|
b3362e72cc
|
||
|
|
261663379d
|
||
|
|
cdd227be6f | ||
|
|
6891e2cd2d
|
||
|
|
66671ec8a4
|
||
|
|
91a2a815ab
|
||
|
|
b5039cd5ca
|
||
|
|
a81f2dbaa7
|
||
|
|
81671edff3
|
||
|
|
3d6ec69cf4
|
||
|
|
41908a851a
|
||
|
|
d27c0ed187
|
||
|
|
0ad04b5670
|
||
|
|
87eea13f3b
|
||
|
|
15483f56c5
|
||
|
|
ad828a3dfc
|
||
|
|
27a86bae07
|
||
|
|
dd5af74e8f
|
||
|
|
bb2edcd5f2
|
||
|
|
6afb39c3bd
|
||
|
|
85b0c5dcb0
|
||
|
|
a65551a5f1
|
||
|
|
6672cfa3af | ||
|
|
2fb58fc929
|
||
|
|
1685d8e672
|
||
|
|
9c99dc7b35
|
||
|
|
8b2c925e7b
|
||
|
|
15f0b076e3
|
||
|
|
b13869cb6a
|
||
|
|
9e2e4585f0
|
||
|
|
b9af6578c3
|
||
|
|
0f1e14b7da
|
||
|
|
be69bcfb46
|
||
|
|
5416e919fc
|
||
|
|
a304c9eaa1
|
||
|
|
b0e11679c6
|
||
|
|
3cdd1eb4f5
|
||
|
|
15faff3218
|
||
|
|
17a1597dec | ||
|
|
b5f19b932f | ||
|
|
22304ede65 | ||
|
|
fa2e15e3cb
|
||
|
|
1561c44cd9
|
||
|
|
cac38d20eb
|
||
|
|
7c8fbb93fb
|
||
|
|
d961ffa231
|
||
|
|
9e9e38fec2
|
||
|
|
5f5c1042c9
|
||
|
|
1650302a26
|
||
|
|
0d3106aa29
|
||
|
|
9f7498fd04
|
||
|
|
9aeeebcf82
|
||
|
|
911540ccfe
|
||
|
|
d01ca79ce2
|
||
|
|
536273bc56
|
||
|
|
cad8444dbc
|
||
|
|
475f3c465e
|
||
|
|
809086fed2
|
||
|
|
369b329eec
|
||
|
|
8c8b0522fc
|
||
|
|
934edc09a6
|
||
|
|
1ebababba7
|
||
|
|
12c2e1b187
|
||
|
|
b4508ff8a6
|
||
|
|
c8710cb778
|
||
|
|
18f8ffa3e8
|
||
|
|
0a82312d98
|
||
|
|
bd1208e54f
|
||
|
|
428f7eadc5
|
||
|
|
03ab9ad489 | ||
|
|
8714849b00
|
||
|
|
aff95eba9e
|
||
|
|
5af4f580b1
|
||
|
|
fed5b46a0a
|
||
|
|
a20260e421
|
||
|
|
ffc0b04699
|
||
|
|
2a7405b246
|
||
|
|
cce0958f44 | ||
|
|
d0a84b610e | ||
|
|
392b66fce2
|
||
|
|
77b182797a
|
||
|
|
3aef1db0c2
|
||
|
|
df6c0bb46e
|
||
|
|
db171e6d52
|
||
|
|
2277cf807a
|
||
|
|
8349db3c10
|
||
|
|
86055b86c7 | ||
|
|
3e895b55ad | ||
|
|
70c011632e | ||
|
|
598194c4a2 | ||
|
|
d70a3eeae4 | ||
|
|
272a32895b | ||
|
|
baad92d97c | ||
|
|
e50ca1f0da | ||
|
|
4a0d2d4ab6 | ||
|
|
ad0af96600 | ||
|
|
cf9243e67e | ||
|
|
b2705c4ed7 | ||
|
|
069cb781a6 | ||
|
|
a86dee1008 | ||
|
|
4f003b6108 | ||
|
|
c8badbcf65 | ||
|
|
f7a33d64ce | ||
|
|
707fd261d5 | ||
|
|
2a9f67ec75 | ||
|
|
8ea369a20a | ||
|
|
7de1efaf97 | ||
|
|
9f63dd4925
|
||
|
|
88aa056a18
|
||
|
|
b606965d9f
|
||
|
|
3739d1f7e0
|
No files matched your search
@@ -1,142 +0,0 @@
|
||||
name: Nightly Build - AppImage, Arch, Fedora
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
BUILD_BRANCH: ${{ github.ref_name }}
|
||||
PKGDEST: "/tmp/portprotonqt"
|
||||
PACKAGE: "portprotonqt"
|
||||
|
||||
jobs:
|
||||
build-appimage:
|
||||
name: Build AppImage
|
||||
runs-on: ubuntu-22.04
|
||||
container:
|
||||
image: archlinux:base-devel@sha256:b3c1ff749031ca2e06df1cd83fda74df13206a047b7b0f96b818825d9dc60785
|
||||
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 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 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:b3c1ff749031ca2e06df1cd83fda74df13206a047b7b0f96b818825d9dc60785
|
||||
|
||||
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,8 +5,9 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- scripts
|
||||
paths:
|
||||
- 'build-aux/vk_gpu_info.c'
|
||||
- 'build-aux/src/vk_gpu_info.c'
|
||||
- '.gitea/workflows/build-vk-gpu-info-debian.yml'
|
||||
|
||||
jobs:
|
||||
@@ -24,33 +25,32 @@ 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: |
|
||||
cd build-aux
|
||||
gcc -o vk_gpu_info vk_gpu_info.c -lvulkan
|
||||
mkdir -p build-aux/bin
|
||||
gcc -o build-aux/bin/vk_gpu_info build-aux/src/vk_gpu_info.c -lvulkan
|
||||
|
||||
- name: Test vk_gpu_info execution
|
||||
run: |
|
||||
cd build-aux
|
||||
# Check if the executable was created
|
||||
if [ -f "./vk_gpu_info" ]; then
|
||||
if [ -f "build-aux/bin/vk_gpu_info" ]; then
|
||||
echo "vk_gpu_info executable created successfully"
|
||||
# Try to run it (may fail if no Vulkan devices present, but that's OK for build test)
|
||||
timeout 10s ./vk_gpu_info || echo "vk_gpu_info ran but may have failed due to lack of Vulkan hardware (expected in CI)"
|
||||
timeout 10s build-aux/bin/vk_gpu_info || echo "vk_gpu_info ran but may have failed due to lack of Vulkan hardware (expected in CI)"
|
||||
else
|
||||
echo "ERROR: vk_gpu_info executable was not created"
|
||||
exit 1
|
||||
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
|
||||
path: build-aux/bin/vk_gpu_info
|
||||
+106
-22
@@ -1,17 +1,27 @@
|
||||
name: Build AppImage, Arch and Fedora Packages
|
||||
name: Build AppImage, Arch, Fedora and Debian Packages
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
mode:
|
||||
description: "Run mode"
|
||||
required: true
|
||||
default: "hotfix"
|
||||
type: choice
|
||||
options:
|
||||
- hotfix
|
||||
- release
|
||||
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.12
|
||||
VERSION: 1.5.0
|
||||
PKGDEST: "/tmp/portprotonqt"
|
||||
PACKAGE: "portprotonqt"
|
||||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
RUN_MODE: ${{ github.event_name == 'workflow_dispatch' && inputs.mode || 'release' }}
|
||||
|
||||
jobs:
|
||||
build-appimage:
|
||||
@@ -21,19 +31,30 @@ jobs:
|
||||
image: archlinux:base-devel
|
||||
options: --privileged --device /dev/fuse
|
||||
steps:
|
||||
- name: Prepare container
|
||||
- name: Configure Arch mirror
|
||||
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
|
||||
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
|
||||
sed -i -E 's/^#?[[:space:]]*ParallelDownloads[[:space:]]*=.*/ParallelDownloads = 5/' /etc/pacman.conf
|
||||
|
||||
- uses: https://gitea.com/actions/checkout@v4
|
||||
- name: Prepare container
|
||||
uses: https://git.linux-gaming.ru/actions/anylinux-setup-action@7278cbb7c3692fce7241d427614ef7984192f138 # v3
|
||||
|
||||
- name: Install CI dependencies
|
||||
run: pacman -S --noconfirm --needed nodejs npm
|
||||
|
||||
- uses: https://git.linux-gaming.ru/actions/checkout@v4
|
||||
|
||||
- name: Install appimage dependencies
|
||||
run: |
|
||||
cd build-aux/AppImage
|
||||
chmod +x get-dependencies.sh portprotonqt-appimage.sh
|
||||
./get-dependencies.sh
|
||||
if [ "${{ env.RUN_MODE }}" = "hotfix" ]; then
|
||||
./get-dependencies.sh --branch "${{ github.ref_name }}"
|
||||
elif [ "${{ github.event_name }}" = "push" ]; then
|
||||
./get-dependencies.sh --tag "${{ github.ref_name }}"
|
||||
else
|
||||
./get-dependencies.sh
|
||||
fi
|
||||
|
||||
- name: Build AppImage
|
||||
run: |
|
||||
@@ -41,10 +62,10 @@ 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
|
||||
path: build-aux/AppImage/dist/*.AppImage*
|
||||
|
||||
build-arch:
|
||||
name: Build Arch Package
|
||||
@@ -53,6 +74,11 @@ jobs:
|
||||
image: archlinux:base-devel
|
||||
|
||||
steps:
|
||||
- name: Configure Arch mirror
|
||||
run: |
|
||||
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
|
||||
sed -i -E 's/^#?[[:space:]]*ParallelDownloads[[:space:]]*=.*/ParallelDownloads = 5/' /etc/pacman.conf
|
||||
|
||||
- name: Prepare container
|
||||
run: |
|
||||
pacman -Syuu --noconfirm --disable-download-timeout --needed git wget gnupg nodejs npm
|
||||
@@ -78,18 +104,21 @@ 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: |
|
||||
cd /__w/portproton-repo
|
||||
cp -r "$GITHUB_WORKSPACE" PortProtonQt
|
||||
cd /__w/portproton-repo/PortProtonQt/build-aux
|
||||
if [ "${{ env.RUN_MODE }}" = "hotfix" ]; then
|
||||
sed -i "s|^source=.*|source=(\"git+https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt.git#branch=${{ github.ref_name }}\")|" PKGBUILD
|
||||
fi
|
||||
chown user -R ..
|
||||
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 +129,7 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
fedora_version: [41, 42, 43, rawhide]
|
||||
fedora_version: [43, 44, 45, rawhide]
|
||||
|
||||
container:
|
||||
image: fedora:${{ matrix.fedora_version }}
|
||||
@@ -109,9 +138,16 @@ jobs:
|
||||
steps:
|
||||
- name: Install build dependencies
|
||||
run: |
|
||||
dnf install -y git rpmdevtools meson ninja-build python3-devel \
|
||||
# Select nearby mirrors and abandon slow downloads after 20 seconds.
|
||||
dnf --setopt=fastestmirror=True --setopt=max_parallel_downloads=10 \
|
||||
--setopt=minrate=100k --setopt=timeout=20 \
|
||||
upgrade -y --exclude=openh264,mozilla-openh264
|
||||
dnf --setopt=fastestmirror=True --setopt=max_parallel_downloads=10 \
|
||||
--setopt=minrate=100k --setopt=timeout=20 \
|
||||
install -y --disablerepo=fedora-cisco-openh264 \
|
||||
git rpmdevtools meson ninja-build python3-devel \
|
||||
systemd-rpm-macros vulkan-loader-devel redhat-rpm-config nodejs npm \
|
||||
gcc gettext
|
||||
gcc gettext 'pkgconfig(sdl3)'
|
||||
|
||||
- name: Setup rpmbuild environment
|
||||
run: |
|
||||
@@ -121,11 +157,14 @@ 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: |
|
||||
cp build-aux/fedora.spec /home/rpmbuild/SPECS/${{ env.PACKAGE }}.spec
|
||||
if [ "${{ env.RUN_MODE }}" = "hotfix" ]; then
|
||||
sed -i "s|git checkout v%{pypi_version}|git checkout ${{ github.ref_name }}|" /home/rpmbuild/SPECS/${{ env.PACKAGE }}.spec
|
||||
fi
|
||||
chown -R rpmbuild:users /home/rpmbuild
|
||||
|
||||
- name: Build RPM
|
||||
@@ -133,16 +172,61 @@ 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: |
|
||||
# Bootstrap Nala before mirror ranking without the slow CDN used by this runner.
|
||||
sed -i -e 's|http://deb.debian.org/debian-security|http://security.debian.org/debian-security|g' \
|
||||
-e 's|http://deb.debian.org/debian|http://ftp.ru.debian.org/debian|g' \
|
||||
/etc/apt/sources.list.d/debian.sources
|
||||
apt-get update
|
||||
apt-get install -y --no-install-recommends nala
|
||||
if timeout --kill-after=5s 120s nala fetch --auto --fetches=3 &&
|
||||
test -s /etc/apt/sources.list.d/fetch.sources; then
|
||||
# Keep updates and security; use only ranked mirrors for the base suite.
|
||||
sed -i 's/^Suites: trixie trixie-updates$/Suites: trixie-updates/' \
|
||||
/etc/apt/sources.list.d/debian.sources
|
||||
else
|
||||
echo "::warning::Mirror selection failed; keeping the bootstrap Debian sources"
|
||||
fi
|
||||
nala update
|
||||
nala install -y build-essential debhelper dpkg-dev gettext git \
|
||||
libsdl3-dev 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: |
|
||||
DEB_BUILD_OPTIONS=noautodbgsym dpkg-buildpackage -us -uc -b
|
||||
mkdir -p dist/deb
|
||||
mv ../*.deb 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
|
||||
if: github.event_name != 'workflow_dispatch' || inputs.mode == '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 +234,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 +254,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
|
||||
@@ -1,29 +0,0 @@
|
||||
name: Check Translations
|
||||
run-name: Check spelling in translation files
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- 'portprotonqt/locales/**'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'portprotonqt/locales/**'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
check-translations:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
|
||||
- name: Set up Python
|
||||
uses: https://gitea.com/actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
|
||||
with:
|
||||
python-version-file: "pyproject.toml"
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: pip install pyaspeller babel
|
||||
|
||||
- name: Run spell check
|
||||
run: python dev-scripts/l10n.py --spellcheck
|
||||
@@ -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:b3c1ff749031ca2e06df1cd83fda74df13206a047b7b0f96b818825d9dc60785
|
||||
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:b3c1ff749031ca2e06df1cd83fda74df13206a047b7b0f96b818825d9dc60785
|
||||
|
||||
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 }}/*
|
||||
@@ -2,42 +2,45 @@ name: Code check
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [main]
|
||||
branches: [main, scripts]
|
||||
paths-ignore:
|
||||
- "data/**"
|
||||
- "*.md"
|
||||
- "dev-scripts/**"
|
||||
- "portprotonqt/locales/**"
|
||||
push:
|
||||
branches: [main]
|
||||
branches: [main, scripts]
|
||||
paths-ignore:
|
||||
- "data/**"
|
||||
- "*.md"
|
||||
- "dev-scripts/**"
|
||||
- "portprotonqt/locales/**"
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
pre-commit:
|
||||
name: Check code
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: archlinux:base-devel@sha256:061679925e5d5028f2df9395d441ce6c4b9accf0157ff3486c06b6962e014ef1
|
||||
steps:
|
||||
- uses: https://gitea.com/actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: https://gitea.com/actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Install uv manually
|
||||
- name: Configure Arch mirror
|
||||
run: |
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
source $HOME/.local/bin/env
|
||||
uv --version
|
||||
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
|
||||
sed -i -E 's/^#?[[:space:]]*ParallelDownloads[[:space:]]*=.*/ParallelDownloads = 5/' /etc/pacman.conf
|
||||
|
||||
- name: Sync dependencies into venv
|
||||
run: uv sync --all-extras --dev
|
||||
- name: Install CI dependencies
|
||||
run: |
|
||||
pacman -Syu --noconfirm --needed git nodejs npm
|
||||
|
||||
- name: Activate .venv & run pre-commit
|
||||
- uses: https://git.linux-gaming.ru/actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
|
||||
- name: Install project and check dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
source .venv/bin/activate
|
||||
pre-commit run --show-diff-on-failure --color=always --all-files
|
||||
source build-aux/PKGBUILD-git
|
||||
pacman -S --noconfirm --needed "${depends[@]}" python-qrcode libpulse mesa pre-commit pyright python-pytest python-pytest-mock
|
||||
pacman -Scc --noconfirm
|
||||
|
||||
- name: Run pre-commit
|
||||
run: pre-commit run --show-diff-on-failure --color=always --all-files
|
||||
@@ -0,0 +1,22 @@
|
||||
name: Download stats
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 1 * *'
|
||||
workflow_dispatch: {}
|
||||
|
||||
jobs:
|
||||
stats:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: https://git.linux-gaming.ru/actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Update download stats
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
GITEA_ACTOR: ${{ gitea.actor }}
|
||||
GITEA_SERVER: "git.linux-gaming.ru"
|
||||
GITEA_REPOSITORY: ${{ gitea.repository }}
|
||||
run: bash dev-scripts/get_download_stats.sh
|
||||
@@ -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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
|
||||
- name: Set up Python
|
||||
uses: https://gitea.com/actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
|
||||
uses: https://git.linux-gaming.ru/actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
|
||||
with:
|
||||
python-version-file: "pyproject.toml"
|
||||
|
||||
|
||||
@@ -0,0 +1,314 @@
|
||||
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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
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:061679925e5d5028f2df9395d441ce6c4b9accf0157ff3486c06b6962e014ef1
|
||||
options: --privileged --device /dev/fuse
|
||||
steps:
|
||||
- name: Configure Arch mirror
|
||||
run: |
|
||||
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
|
||||
sed -i -E 's/^#?[[:space:]]*ParallelDownloads[[:space:]]*=.*/ParallelDownloads = 5/' /etc/pacman.conf
|
||||
|
||||
- name: Prepare container
|
||||
uses: https://git.linux-gaming.ru/actions/anylinux-setup-action@b2d1ce4216f71162e00ae58fa11ee9aeb723d0d5 # v5
|
||||
|
||||
- name: Install CI dependencies
|
||||
run: pacman -S --noconfirm --needed nodejs npm
|
||||
|
||||
- uses: https://git.linux-gaming.ru/actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
if: github.event_name == 'pull_request'
|
||||
|
||||
- uses: https://git.linux-gaming.ru/actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
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: [43, 44, 45, rawhide]
|
||||
|
||||
container:
|
||||
image: fedora:${{ matrix.fedora_version }}
|
||||
options: --privileged
|
||||
|
||||
steps:
|
||||
- name: Install build dependencies
|
||||
run: |
|
||||
# Select nearby mirrors and abandon slow downloads after 20 seconds.
|
||||
dnf --setopt=fastestmirror=True --setopt=max_parallel_downloads=10 \
|
||||
--setopt=minrate=100k --setopt=timeout=20 \
|
||||
upgrade -y --exclude=openh264,mozilla-openh264
|
||||
dnf --setopt=fastestmirror=True --setopt=max_parallel_downloads=10 \
|
||||
--setopt=minrate=100k --setopt=timeout=20 \
|
||||
install -y --disablerepo=fedora-cisco-openh264 \
|
||||
git rpmdevtools meson ninja-build python3-devel \
|
||||
systemd-rpm-macros vulkan-loader-devel redhat-rpm-config nodejs npm \
|
||||
gcc gettext 'pkgconfig(sdl3)'
|
||||
|
||||
- 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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
if: github.event_name == 'pull_request'
|
||||
|
||||
- name: Checkout branch
|
||||
uses: https://git.linux-gaming.ru/actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
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:061679925e5d5028f2df9395d441ce6c4b9accf0157ff3486c06b6962e014ef1
|
||||
|
||||
steps:
|
||||
- name: Configure Arch mirror
|
||||
run: |
|
||||
echo 'Server = https://cdn.lenuma.ru/archlinux-mirror/$repo/os/$arch' > /etc/pacman.d/mirrorlist
|
||||
sed -i -E 's/^#?[[:space:]]*ParallelDownloads[[:space:]]*=.*/ParallelDownloads = 5/' /etc/pacman.conf
|
||||
|
||||
- name: Prepare container
|
||||
run: |
|
||||
pacman -Syu --noconfirm --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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
if: github.event_name == 'pull_request'
|
||||
|
||||
- name: Checkout branch
|
||||
uses: https://git.linux-gaming.ru/actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
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:trixie-20261005@sha256:913f6706df59a68922d1dd08f78c2476560a8d367897200a6005b00e5f67c2d5
|
||||
options: --privileged
|
||||
|
||||
steps:
|
||||
- name: Install build dependencies
|
||||
run: |
|
||||
# Bootstrap Nala before mirror ranking without the slow CDN used by this runner.
|
||||
sed -i -e 's|http://deb.debian.org/debian-security|http://security.debian.org/debian-security|g' \
|
||||
-e 's|http://deb.debian.org/debian|http://ftp.ru.debian.org/debian|g' \
|
||||
/etc/apt/sources.list.d/debian.sources
|
||||
apt-get update
|
||||
apt-get install -y --no-install-recommends nala
|
||||
if timeout --kill-after=5s 120s nala fetch --auto --fetches=3 &&
|
||||
test -s /etc/apt/sources.list.d/fetch.sources; then
|
||||
# Keep updates and security; use only ranked mirrors for the base suite.
|
||||
sed -i 's/^Suites: trixie trixie-updates$/Suites: trixie-updates/' \
|
||||
/etc/apt/sources.list.d/debian.sources
|
||||
else
|
||||
echo "::warning::Mirror selection failed; keeping the bootstrap Debian sources"
|
||||
fi
|
||||
nala update
|
||||
nala install -y build-essential debhelper dpkg-dev gettext git \
|
||||
libsdl3-dev libvulkan-dev meson ninja-build nodejs npm \
|
||||
pkgconf python3
|
||||
|
||||
- name: Checkout PR
|
||||
uses: https://git.linux-gaming.ru/actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
if: github.event_name == 'pull_request'
|
||||
|
||||
- name: Checkout branch
|
||||
uses: https://git.linux-gaming.ru/actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
if: github.event_name == 'workflow_dispatch'
|
||||
with:
|
||||
ref: ${{ env.BUILD_BRANCH }}
|
||||
|
||||
- name: Build Debian package
|
||||
run: |
|
||||
DEB_BUILD_OPTIONS=noautodbgsym dpkg-buildpackage -us -uc -b
|
||||
mkdir -p dist/deb
|
||||
mv ../*.deb 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/*
|
||||
@@ -0,0 +1,45 @@
|
||||
name: renovate
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 * * 0'
|
||||
|
||||
jobs:
|
||||
renovate:
|
||||
runs-on: ubuntu-latest
|
||||
container: ghcr.io/renovatebot/renovate:latest@sha256:47421f2f3f82048e969b5195dd808d5ac2c5f69d43d192191c4a3dca390afe06
|
||||
env:
|
||||
UV_PYTHON_INSTALL_MIRROR: https://mirror.nju.edu.cn/github-release/astral-sh/python-build-standalone/
|
||||
UV_DEFAULT_INDEX: https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/
|
||||
steps:
|
||||
- uses: https://git.linux-gaming.ru/actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: https://git.linux-gaming.ru/actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Install uv manually
|
||||
run: |
|
||||
curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
. $HOME/.local/bin/env
|
||||
uv --version
|
||||
|
||||
- name: Download external renovate config
|
||||
run: |
|
||||
mkdir -p /tmp/renovate-config
|
||||
curl -fsSL "https://git.linux-gaming.ru/Linux-Gaming/renovate-config/raw/branch/main/config.js" \
|
||||
-o /tmp/renovate-config/config.js
|
||||
|
||||
- name: 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 }}
|
||||
+3
-8
@@ -8,6 +8,7 @@ wheels/
|
||||
|
||||
# Meson
|
||||
builddir/
|
||||
build-deb/
|
||||
|
||||
# Virtual environments
|
||||
.venv
|
||||
@@ -37,16 +38,10 @@ Thumbs.db
|
||||
.ropeproject
|
||||
.zed
|
||||
|
||||
# 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
|
||||
CODE_QUALITY_PLAN.md
|
||||
.repowise
|
||||
+13
-3
@@ -34,10 +34,10 @@ repos:
|
||||
hooks:
|
||||
- id: bash-n
|
||||
name: bash -n
|
||||
entry: bash -c 'for file in "$@"; do bash -n "$file" || exit 1; done' --
|
||||
entry: ./dev-scripts/check_bash_scripts.sh
|
||||
language: system
|
||||
files: ^build-aux/share/portproton/scripts/
|
||||
types: [shell]
|
||||
types: [file]
|
||||
|
||||
- repo: local
|
||||
hooks:
|
||||
@@ -55,5 +55,15 @@ 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
|
||||
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: pytest
|
||||
name: pytest
|
||||
entry: pytest tests/ -x -q --tb=line
|
||||
language: system
|
||||
types: [python]
|
||||
files: ^(tests/|portprotonqt/)
|
||||
pass_filenames: false
|
||||
+1
-1
@@ -1 +1 @@
|
||||
3.10
|
||||
3.11
|
||||
@@ -1,7 +1,7 @@
|
||||
# PortProtonQt — AI Agent Guidelines
|
||||
|
||||
**Project:** PortProtonQt — GUI for PortProton, Steam, Epic Games Store
|
||||
**Language:** Python 3.10+
|
||||
**Project:** PortProtonQt — Game library manager and launcher for Linux
|
||||
**Language:** Python 3.11+
|
||||
**Platform:** Linux (POSIX)
|
||||
**License:** GPL-3.0
|
||||
**Build:** Meson + uv
|
||||
@@ -15,7 +15,6 @@
|
||||
## License and Attribution
|
||||
|
||||
- All code MUST be compatible with GPL-3.0.
|
||||
- Use appropriate SPDX license identifiers where applicable.
|
||||
- AI agents MUST NOT add `Signed-off-by` tags.
|
||||
|
||||
When AI contributes to the project, add an `Assisted-by` tag:
|
||||
@@ -79,6 +78,31 @@ Example:
|
||||
|
||||
---
|
||||
|
||||
## Commit Classification
|
||||
|
||||
Use Conventional Commit prefixes according to the primary purpose of the change:
|
||||
|
||||
| Prefix | Use for |
|
||||
|--------|---------|
|
||||
| `feat` | A new user-facing capability or supported workflow |
|
||||
| `fix` | A correction for a confirmed defect or regression in existing behavior |
|
||||
| `chore` | Maintenance, integration adjustments, filtering, metadata, or routine upkeep that is neither a feature nor a confirmed bug fix |
|
||||
| `refactor` | Internal restructuring with no intended behavior change |
|
||||
| `perf` | A measurable performance improvement |
|
||||
| `test` | Test-only changes |
|
||||
| `docs` | Documentation-only changes |
|
||||
| `build` | Build system or dependency changes |
|
||||
| `ci` | CI or automation configuration changes |
|
||||
| `style` | Formatting-only changes with no behavior change |
|
||||
| `revert` | Reverting an earlier commit |
|
||||
|
||||
- Classify by intent, not merely by whether code behavior changed.
|
||||
- Do not default to `fix` for every behavioral correction or edge-case filter.
|
||||
- Use `fix` only when the task identifies a bug/regression or the defect is clearly demonstrated.
|
||||
- If `feat`, `fix`, and `chore` are ambiguous, prefer `chore` unless the task clearly establishes a new capability or confirmed defect.
|
||||
|
||||
---
|
||||
|
||||
## Forbidden Patterns
|
||||
|
||||
```python
|
||||
@@ -108,6 +132,19 @@ shadow.setBlurRadius(20)
|
||||
shadow.setColor(QColor(0, 0, 0, 150))
|
||||
label.setStyleSheet("color: #bbbbbb;")
|
||||
QColor(128, 128, 128)
|
||||
|
||||
# NEVER: Unexplained magic numbers in business logic
|
||||
# Status codes, flags, timeouts, limits, protocol values — use named constants or enums
|
||||
if status == 3: ... # BAD
|
||||
if key_value >= 0x01000000: ... # BAD
|
||||
|
||||
# NEVER: Visual constants in application code (game_card.py, detail_pages/, etc.)
|
||||
# ALL visual/layout constants MUST live in themes/standart/styles/constants.py
|
||||
# Application code reads them via self.theme.CONSTANT_NAME
|
||||
COMPACT_CARD_WIDTH_THRESHOLD = 150 # BAD: in game_card.py
|
||||
RIBBON_SIZE_RATIO = 0.28 # BAD: in game_card.py
|
||||
BADGE_ICON_SIZE = 16 # BAD: in detail_pages/widgets.py
|
||||
SOURCE_CORNER_RATIO = 0.28 # BAD: in detail_pages/widgets.py
|
||||
```
|
||||
|
||||
```python
|
||||
@@ -145,7 +182,16 @@ 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
|
||||
|
||||
# ALWAYS: Use descriptive named constants, enums, or built-in Qt values instead of magic numbers
|
||||
STATUS_COMPLETED = 3
|
||||
|
||||
if status == STATUS_COMPLETED:
|
||||
...
|
||||
|
||||
# ALWAYS: Use named Qt.Key constants with comments for keyboard system key checks
|
||||
# Skip system/modifier keys (Shift, Enter, Arrow keys, etc.)
|
||||
if key_value >= Qt.Key.Key_Escape.value: ...
|
||||
```
|
||||
|
||||
---
|
||||
@@ -156,17 +202,25 @@ QColor(self.theme.color_disabled_text)
|
||||
- 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
|
||||
- **Before adding any helper, wrapper, class, or infrastructure, search for an existing method that already performs the operation and call it directly**
|
||||
- **NEVER add a task-local helper that only wraps an existing method or a single call; keep the call in the modified block unless extraction is required by the function limits**
|
||||
- If the user identifies overengineering, remove the unnecessary abstraction before continuing; do not layer another fix on top of it
|
||||
- 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**
|
||||
- When removing async/download code, preserve callback completion paths in callers
|
||||
- Add or update regression tests for callback-driven UI loading paths touched by the change
|
||||
- Never invent modules
|
||||
- Do not move files unless requested
|
||||
- Do not create new files for organization (unless task requires a new module)
|
||||
@@ -180,6 +234,8 @@ QColor(self.theme.color_disabled_text)
|
||||
- Targeted changes only
|
||||
- Preserve existing patterns
|
||||
- Keep surrounding code unchanged
|
||||
- Keep formatting changes limited to touched logic or required hook fixes
|
||||
- **NEVER delete existing style constants from theme files (QSS strings like `*_STYLE`). All styles must be preserved during rewrites. Deleted styles break child theme inheritance.**
|
||||
|
||||
---
|
||||
|
||||
@@ -219,11 +275,13 @@ AI agents MAY:
|
||||
|
||||
- No blocking I/O in UI thread
|
||||
- No synchronous HTTP in UI thread
|
||||
- Cache API responses in `~/.cache/PortProtonQt`
|
||||
- Cache API responses in `$XDG_DATA_HOME/PortProtonQt/cache` (default: `~/.local/share/PortProtonQt/cache`)
|
||||
- Avoid repeated disk reads in loops
|
||||
- Avoid O(n²) in game lists
|
||||
- Lazy load images
|
||||
- Limit threads to CPU cores
|
||||
- Skip worker creation for valid cached downloads and URLs already marked failed; still complete callbacks exactly once through the owner's event loop
|
||||
- Reuse cached download paths only while the file exists and matches the requested destination
|
||||
|
||||
### Clarification: "No Shared Mutable Global State" Does NOT Mean Removing Caches
|
||||
|
||||
@@ -232,10 +290,10 @@ Rule intent: avoid shared mutable globals that hold application state or cause h
|
||||
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`
|
||||
- Disk caches under `$XDG_DATA_HOME/PortProtonQt/cache` (default: `~/.local/share/PortProtonQt/cache`)
|
||||
- `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").
|
||||
Do not delete or disable caching or downloaders to satisfy this rule. Caching is required by the Performance Rules ("Cache API responses in `$XDG_DATA_HOME/PortProtonQt/cache`" and "Avoid repeated disk reads in loops").
|
||||
|
||||
---
|
||||
|
||||
@@ -246,6 +304,9 @@ Do not delete or disable caching or downloaders to satisfy this rule. Caching is
|
||||
- No heavy operations in paintEvent
|
||||
- Use methods instead of lambda for complex logic
|
||||
- Use QThread for long tasks
|
||||
- Retain every background worker that can outlive its caller in an owner field or collection until it finishes
|
||||
- Register window-owned workers and retained worker collections in the application shutdown path; cancel when supported and wait before interpreter exit
|
||||
- Add or update shutdown regression tests when adding or changing a background worker, including executor-backed workers
|
||||
|
||||
---
|
||||
|
||||
@@ -273,7 +334,7 @@ Do not assume conventions. Never invent behavior.
|
||||
|
||||
```bash
|
||||
# Setup
|
||||
uv python install 3.10
|
||||
uv python install 3.11
|
||||
uv sync
|
||||
source .venv/bin/activate
|
||||
pre-commit install --install-hooks
|
||||
@@ -302,7 +363,8 @@ git commit -m "feat: description in English ≤72 chars"
|
||||
| uv-lock | uv.lock up to date |
|
||||
| ruff-check | Linting (E, W, F, B, C4, UP) |
|
||||
| pyright | Type checking |
|
||||
| bash-n | Bash syntax check for `build-aux/share/portproton/scripts/` |
|
||||
| pytest | Unit tests |
|
||||
| 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 |
|
||||
@@ -328,6 +390,7 @@ These tools are executed ONLY via pre-commit hooks.
|
||||
- `pre-commit run --all-files`
|
||||
- `pre-commit run ruff-check`
|
||||
- `pre-commit run pyright`
|
||||
- `pre-commit run pytest`
|
||||
|
||||
#### Rationale
|
||||
|
||||
@@ -338,6 +401,100 @@ Do not attempt to execute binaries manually.
|
||||
|
||||
---
|
||||
|
||||
## Testing
|
||||
|
||||
### Structure
|
||||
|
||||
```
|
||||
tests/
|
||||
├── conftest.py # Shared fixtures (tmp_config_dir, sample_steam_apps)
|
||||
├── test_utils.py # Steam API utils (normalize_name, search, VDF, Steam utils)
|
||||
├── test_validators.py # Config validators (string, int, bool, path, url)
|
||||
├── test_cache_manager.py # CacheManager (save/load/TTL/atomic writes)
|
||||
├── test_appimage_updater.py # AppImage auto-update worker, mirrors, changelog parsing
|
||||
├── test_dark_theme.py # Dark theme detection (XFCE/MATE/Cinnamon/GNOME)
|
||||
├── test_steam_cache.py # exiftool skip, cache eviction, delete_cached_app_files
|
||||
├── test_downloader.py # Cache/error callbacks, worker ownership, and shutdown regressions
|
||||
├── test_base_config.py # BaseConfig read/write, caching, versioning
|
||||
├── test_cli.py # normalize_launch_path, URL/resolution parsing
|
||||
├── test_debug_env_utils.py # Debug environment helpers, runtime variables
|
||||
├── test_easyterm.py # Terminal final output, exit status, keyboard and gamepad closing
|
||||
├── test_input_manager.py # Gamepad input navigation and focus regressions
|
||||
├── test_sound_manager.py # UI sound playback, widget events, gamepad connection, theme sound files
|
||||
├── test_boot_animation.py # Theme video inheritance, fullscreen boot rendering, gamepad skip, loading transitions, and shutdown
|
||||
├── test_main_window.py # Main window data processing and callback regressions
|
||||
├── test_library_resize.py # Library resize batching, cover reuse, and flow layout regressions
|
||||
├── test_library_loading.py # Incremental loading, source switching, first-paint focus, and cover callbacks
|
||||
├── test_store_games.py # GOG and EGS library, launch, install, and stop regressions
|
||||
├── test_portproton_config.py # exec_line parsing, launcher tail, extensions
|
||||
├── test_portproton_scripts.py # Shell script launch, second exe, exit codes, user.conf
|
||||
├── test_portproton_api.py # PPDB API helpers, autoinstall localization fallback
|
||||
├── test_autoinstall_status.py # Autoinstall installed-status matching regressions
|
||||
├── test_migration.py # Desktop shortcut migration, prefix backup, squashfs
|
||||
├── test_file_explorer.py # File explorer themed icon state regressions
|
||||
├── test_icon_extractor.py # NE/PE icon extraction, DIB decoding, thumbnails
|
||||
├── test_dbus_tools.py # D-Bus tools (notifications, idle inhibit, power profiles)
|
||||
├── test_time_utils.py # Playtime parsing, last launch cache, formatting
|
||||
├── test_shortcuts.py # Desktop shortcut creation, paths with spaces, .desktop entry
|
||||
├── test_theme_store.py # Theme store UI worker lifecycle and race regressions
|
||||
├── test_theme_manager.py # Theme AST injection, parent resolution, ThemeWrapper, style integrity
|
||||
├── test_theme_security.py # Theme security checker (allowlist AST, forbidden modules/methods, SVG/font/image safety)
|
||||
├── test_settings_search.py # MangoHud, vkBasalt, Gamescope settings search and layout regressions
|
||||
├── test_detail_pages.py # Detail page gradient stops, wave background modes, palette handling
|
||||
└── test_proton_manager.py # Local Wine/Proton drag-and-drop and safe archive extraction
|
||||
```
|
||||
|
||||
### Running Tests
|
||||
|
||||
```bash
|
||||
# Run all tests
|
||||
uv run pytest tests/ -v
|
||||
|
||||
# Run specific test file
|
||||
uv run pytest tests/test_utils.py -v
|
||||
|
||||
# Run specific test class
|
||||
uv run pytest tests/test_utils.py::TestNormalizeName -v
|
||||
|
||||
# Run with pre-commit
|
||||
pre-commit run pytest
|
||||
```
|
||||
|
||||
### Writing Tests
|
||||
|
||||
- Tests MUST use `pytest` with `tmp_path` fixture for file isolation
|
||||
- Tests MUST mock external resources (network, system paths, env vars)
|
||||
- Tests MUST NOT depend on system state (installed apps, real Steam dirs)
|
||||
- Use `monkeypatch` for environment variables and function patching
|
||||
- Keep tests locale-independent: assert stable identifiers or numbers instead of translated strings; resolve values created through `_()` from the same application mapping using stable identifiers; use `monkeypatch` to provide deterministic text when testing translated search or matching
|
||||
- Test regression scenarios from git fix commits
|
||||
|
||||
### Library Refresh Regressions
|
||||
|
||||
- Late metadata/download completion must preserve scroll position and focused card in an already populated library; first-card focus belongs to initial loading
|
||||
- Cover both library layouts and refresh completion while the autoinstall tab is active
|
||||
- For reported scrolling regressions, supplement unit tests with a full application cycle: isolated empty cache, forced ProtonDB connection failure, scroll and refresh both tabs, switch back, then close the application
|
||||
- Record scroll values and visible cards around late updates; distinguish an intentional refresh reset from an unsolicited rollback after the user resumes scrolling
|
||||
- Use temporary XDG config/data directories for GUI reproduction; never clear the user's real cache or alter system-wide network settings
|
||||
- Report baseline reproduction and final-code results separately; passing callback tests alone does not prove the visible regression is fixed
|
||||
|
||||
### Key Regression Areas
|
||||
|
||||
| Module | Regression | Commit |
|
||||
|--------|-----------|--------|
|
||||
| `time_utils` | Spaced exe names in cache | 764bb3c |
|
||||
| `time_utils` | SHA256 hash + L5- index | 7a02b6b |
|
||||
| `time_utils` | Malformed playtime data | dd65021 |
|
||||
| `theme_manager` | AST injection lost dict constants, leaked CONTAINER_STYLE | 519edd1 |
|
||||
| `theme_manager` | Recursive load_theme when styles.py calls get_icon during exec_module | d5fedd8 |
|
||||
| `classic/styles.py` | Missing styles after theme rewrite (NAV, COMBOBOX, TAB, etc.) | 519edd1 |
|
||||
| `classic-light/styles.py` | NameError: border_none not defined (no styles/constants.py) | 519edd1 |
|
||||
| `detail_pages` | DETAIL_PAGE_GRADIENT stops override, wave background modes | — |
|
||||
| `detail_pages` | Edit/Add shortcut buttons shown together for non-Steam games | 7e38d9a |
|
||||
| `wine_extractor` | Archive traversal and process-wide cwd changes during extraction | — |
|
||||
|
||||
---
|
||||
|
||||
## AI Agent Checklist
|
||||
|
||||
### Writing Code
|
||||
@@ -350,11 +507,13 @@ Do not attempt to execute binaries manually.
|
||||
- [ ] 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
|
||||
- [ ] Background workers have explicit ownership and shutdown cleanup with regression coverage
|
||||
- [ ] **No hardcoded styles or constants (use theme constants)**
|
||||
- [ ] **New constants added to theme files only**
|
||||
|
||||
@@ -624,6 +783,11 @@ 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
|
||||
@@ -677,7 +841,7 @@ Review scope: prioritize new/modified code. Existing unrelated legacy issues sho
|
||||
- Emoji usage
|
||||
- TODO without tickets
|
||||
- Poor variable naming (x, tmp, data)
|
||||
- Magic numbers
|
||||
- Unexplained magic numbers in business logic (status codes, flags, timeouts, limits, protocol values)
|
||||
- Non-English comments
|
||||
- **Hardcoded styles or constants (colors, sizes, shadow values, etc.)**
|
||||
|
||||
@@ -699,6 +863,15 @@ Fix: Use theme constant
|
||||
|
||||
shadow.setColor(QColor(0, 0, 0, 150)) # Bad
|
||||
shadow.setColor(QColor(self.theme.color_shadow_card)) # Good
|
||||
|
||||
[MEDIUM] Hardcoded style constant in application code
|
||||
File: portprotonqt/game_card.py:52
|
||||
Issue: Visual constant defined in application code instead of theme
|
||||
Fix: Add to themes/standart/styles/constants.py and read via self.theme
|
||||
|
||||
COMPACT_CARD_WIDTH_THRESHOLD = 150 # Bad: in game_card.py
|
||||
# In constants.py: COMPACT_CARD = {"width_threshold": 150, ...}
|
||||
# In game_card.py: self.theme.COMPACT_CARD["width_threshold"] # Good
|
||||
```
|
||||
|
||||
### Approval
|
||||
@@ -752,20 +925,113 @@ install_data(
|
||||
|
||||
```
|
||||
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
|
||||
├── portprotonqt/ # Python package
|
||||
│ ├── animations/ # UI animation modules
|
||||
│ │ ├── detail_background.py
|
||||
│ │ ├── detail_page.py
|
||||
│ │ ├── game_card.py
|
||||
│ │ ├── library_controls.py
|
||||
│ │ └── virtual_keyboard.py
|
||||
│ ├── config/ # Application configuration
|
||||
│ │ ├── base.py
|
||||
│ │ ├── cache.py
|
||||
│ │ ├── display.py
|
||||
│ │ ├── favorites.py
|
||||
│ │ ├── game.py
|
||||
│ │ ├── gamepad.py
|
||||
│ │ ├── portproton.py
|
||||
│ │ ├── proxy.py
|
||||
│ │ ├── ui.py
|
||||
│ │ ├── validators.py
|
||||
│ │ └── window.py
|
||||
│ ├── debug_utils/ # Debug data collection and processing
|
||||
│ │ ├── debug_log_manager.py
|
||||
│ │ ├── env_utils.py
|
||||
│ │ ├── game_debug.py
|
||||
│ │ ├── gpu_info.py
|
||||
│ │ ├── log_processor.py
|
||||
│ │ ├── system_info.py
|
||||
│ │ └── xorg_utils.py
|
||||
│ ├── detail_pages/ # Game detail page components
|
||||
│ │ ├── utils.py
|
||||
│ │ └── widgets.py
|
||||
│ ├── dialogs/ # Application dialogs
|
||||
│ │ ├── appimage_update.py
|
||||
│ │ ├── base.py
|
||||
│ │ ├── compatibility_report.py
|
||||
│ │ ├── dialog_utils.py
|
||||
│ │ ├── file_explorer.py
|
||||
│ │ ├── prefix_backup.py
|
||||
│ │ ├── proton_manager.py
|
||||
│ │ ├── settings_dialog.py
|
||||
│ │ ├── settings_gamescope.py
|
||||
│ │ ├── settings_mangohud.py
|
||||
│ │ ├── settings_vkbasalt.py
|
||||
│ │ ├── wine_downloader.py
|
||||
│ │ ├── wine_extractor.py
|
||||
│ │ ├── wine_loader.py
|
||||
│ │ └── winetricks_dialog.py
|
||||
│ ├── input_manager/ # Keyboard and gamepad input routing
|
||||
│ │ ├── buttons.py
|
||||
│ │ ├── constants.py
|
||||
│ │ ├── dialog_modes.py
|
||||
│ │ ├── dpad.py
|
||||
│ │ ├── file_explorer.py
|
||||
│ │ ├── keyboard.py
|
||||
│ │ ├── mixin.py
|
||||
│ │ ├── runtime.py
|
||||
│ │ ├── settings.py
|
||||
│ │ └── settings_visual.py
|
||||
│ ├── scripts_utils/ # Helpers used by PortProton scripts
|
||||
│ │ ├── dbus_tools.py
|
||||
│ │ ├── easyterm.py
|
||||
│ │ ├── graphics_detector.py
|
||||
│ │ ├── idle_inhibit.py
|
||||
│ │ ├── json_tools.py
|
||||
│ │ ├── mount_points.py
|
||||
│ │ ├── power_profiles.py
|
||||
│ │ ├── prefix_backup.py
|
||||
│ │ └── shortcut_tools.py
|
||||
│ ├── steam_api/ # Steam API, cache, and shortcuts
|
||||
│ │ ├── api.py
|
||||
│ │ ├── cache.py
|
||||
│ │ ├── shortcuts.py
|
||||
│ │ └── utils.py
|
||||
│ ├── system_manager/ # System settings backends
|
||||
│ │ ├── audio.py
|
||||
│ │ ├── bluetooth.py
|
||||
│ │ ├── common.py
|
||||
│ │ ├── network.py
|
||||
│ │ └── storage.py
|
||||
│ ├── tabs/ # Main window tabs and workers
|
||||
│ │ ├── autoinstall_tab.py
|
||||
│ │ ├── control_hints.py
|
||||
│ │ ├── download_tab.py
|
||||
│ │ ├── library_tab.py
|
||||
│ │ ├── settings_tab.py
|
||||
│ │ ├── system_tab.py
|
||||
│ │ ├── theme_store.py
|
||||
│ │ ├── theme_store_workers.py
|
||||
│ │ ├── theme_tab.py
|
||||
│ │ ├── wine_tab.py
|
||||
│ │ └── workers.py
|
||||
│ ├── locales/ # Translation catalogs
|
||||
│ ├── terminal_schemes/ # Terminal color schemes
|
||||
│ ├── themes/ # Built-in themes and assets
|
||||
│ ├── app.py # Entry point
|
||||
│ ├── game_card.py # Game card widget
|
||||
│ ├── gog_api.py # GOG integration
|
||||
│ ├── main_window.py # Main window
|
||||
│ ├── native_gamepad.py # Native SDL3 gamepad backend
|
||||
│ ├── portproton_api.py # PortProton integration
|
||||
│ ├── theme_manager.py # Theme management
|
||||
│ └── logger.py # Logging
|
||||
├── tests/ # Unit tests
|
||||
├── build-aux/ # Build resources
|
||||
├── dev-scripts/ # Development scripts
|
||||
├── documentation/ # Documentation
|
||||
├── meson.build # Meson config
|
||||
├── pyproject.toml # Python config
|
||||
└── .pre-commit-config.yaml
|
||||
```
|
||||
|
||||
@@ -781,6 +1047,12 @@ PortProtonQt/
|
||||
- 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
|
||||
- When adding new PortProton component variables (for example `D7VK_*`), update matching env filters in scripts, runtime `var.log`, and Qt debug/UI helpers
|
||||
|
||||
---
|
||||
|
||||
## Dependencies
|
||||
@@ -795,6 +1067,11 @@ PortProtonQt/
|
||||
| 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
|
||||
@@ -806,12 +1083,10 @@ PortProtonQt/
|
||||
|
||||
- [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
|
||||
**Last updated:** 2026-08-11
|
||||
**Version:** 1.3
|
||||
**Status:** Release
|
||||
+544
@@ -3,6 +3,550 @@
|
||||
Все заметные изменения в этом проекте фиксируются в этом файле.
|
||||
Формат основан на [Keep a Changelog](https://keepachangelog.com/) и придерживается принципов [Semantic Versioning](https://semver.org/).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
- В диалог вылета добавлена кнопка скачивания PPDB с linux-gaming.ru с заменой существующего файла, если PPDB доступен и автоматическая загрузка отключена
|
||||
- Добавлено предупреждение о кириллице в путях к игре или PortProton
|
||||
- Добавлен резервный запрет сна через logind/elogind при недоступности ScreenSaver и портала, в том числе для дистрибутивов без systemd
|
||||
|
||||
### Changed
|
||||
|
||||
- Настройки exe и `user.conf` применяются автоматически при изменении
|
||||
- Обновлён перевод на Португальский (Бразилия) `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/pt_BR/`
|
||||
- Обновлён перевод на Русский `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/`
|
||||
|
||||
### Fixed
|
||||
|
||||
- Наведение на карточки больше не перехватывает фокус из строки поиска при вводе текста
|
||||
- Исправлена ошибка форматирования даты последнего запуска и времени игры при системной локали `C` или `POSIX`
|
||||
- Отключена проверка обновлений AppImage при запуске с `--silent`, чтобы не показывать диалог обновления
|
||||
- Исправлена рекурсивная ошибка фильтра событий клавиатуры при закрытии приложения
|
||||
- Исправлена высокая нагрузка на CPU из-за непрерывной перерисовки таблиц в настройках exe
|
||||
- В меню системного трея при запуске игры с `--silent` добавлены отсутствовавшие действия приостановки и возобновления игры
|
||||
- Исправлена гонка при запуске игры с `--silent`
|
||||
|
||||
### Contributors
|
||||
- @adem4ik
|
||||
- @rogerio-mattos
|
||||
|
||||
---
|
||||
|
||||
## [1.5.0] - 2026-10-14
|
||||
|
||||
### Added
|
||||
|
||||
- Добавлен поиск настроек игры вводом с клавиатуры без предварительного выбора поля поиска
|
||||
- Добавлена навигация геймпадом к кнопкам под таблицами
|
||||
- Добавлена настройка скрытия курсора в полноэкранном режиме, включённая по умолчанию
|
||||
- Добавлена настройка отключения поиска установленных Proton в Steam для списков выбора версий и окна управления WINE/Proton
|
||||
- Добавлена возможность добавления загрузочной WebM-заставки из тем при переходе в fullscreen, включая автоматический переход при подключении геймпада
|
||||
- Добавлен переход к загрузке Wine/Proton из списка версий в настройках игры
|
||||
- Добавлены выбор и установка DLC при установке игр GOG
|
||||
- При установке GOG в папку с уже имеющейся игрой добавлены автоматический импорт, проверка файлов и загрузка недостающих или повреждённых файлов
|
||||
- Добавлена возможность приостанавливать и возобновлять запущенную игру через системный трей
|
||||
- Добавлена настройка отключения проверки i586-зависимостей в ALT Linux
|
||||
- Добавлена настройка принудительного применения английского языка
|
||||
- Добавлено редактирование названия и обложки игр GOG по ID
|
||||
- Добавлена интеграция Epic Games Store с авторизацией, библиотекой, установкой, импортом, восстановлением и удалением игр
|
||||
- Добавлена поддержка сборок Proton CachyOS WineLand
|
||||
- Добавлена кнопка возврата на рабочий стол в системной вкладке при указании команды в `PORTPROTONQT_RETURN_TO_DESKTOP_SCRIPT`
|
||||
- Добавлены режимы библиотеки `horizontal` и `horizontal_top` с циклической навигацией и плиткой открытия полной сетки в топ-режиме
|
||||
- В панель библиотеки добавлен выбор типа сетки
|
||||
- В виджет с исчезающей полосой прокрутки добавлена поддержка горизонтальной ориентации
|
||||
- Добавлен режим библиотеки `vertical` с табличным отображением названия, последнего запуска, проведённого времени и источника игры
|
||||
- При открытии карточки с отсутствующим исполняемым файлом добавлен выбор: удалить карточку или указать другой файл
|
||||
- Добавлен отдельный раздел настройки шрифтов MangoHud с масштабом, размером и выбором шрифта
|
||||
- Добавлен графический редактор глобальных настроек игр из `user.conf`
|
||||
- В режиме `PW_USE_SUPPLIED_DXVK_VKD3D` добавлена поддержка D7VK из сборки Proton
|
||||
|
||||
### Changed
|
||||
|
||||
- Настройка `WINE_FULLSCREEN_FSR` по умолчанию отключена
|
||||
- Кнопки менеджера Wine/Proton приведены к общему стилю приложения и дополнены иконками
|
||||
- Списки DLL и шрифтов в Winetricks теперь сортируются по алфавиту
|
||||
- Оформление Winetricks приведено к общему стилю приложения
|
||||
- В поле запуска второго `.exe` / враппера теперь можно указать тот же исполняемый файл, что и основной
|
||||
- Описания приложения в README, метаданных и пакетах сделаны нейтральными, без перечисления источников игр и привязки к Windows
|
||||
- Ускорено изменение размера карточек библиотеки
|
||||
- Удалён GDK Proton из списка доступных сборок
|
||||
- Улучшено отображение описаний параметров в настройках игры: они размещаются под названием, а текущая строка выделяется рамкой
|
||||
- После завершения загрузки показывается системное уведомление, а строка результата открывает карточку игры мышью или кнопкой A геймпада
|
||||
- Улучшено определение вылетов игр: учитывается код завершения команды Wine/Proton и время работы игровых процессов, включая дочерний движок, без учёта времени завершения скрипта запуска
|
||||
- Каталоги пользовательских данных игр переведены на единый формат `источник-ID`
|
||||
- Данные приложения организованы в `$XDG_DATA_HOME/PortProtonQt` (по умолчанию `~/.local/share/PortProtonQt`): кеш перенесён из `.cache` в `cache`, данные лаунчеров — в `launcher`, загружаемые бинарники — в `bin`, чтобы временный кеш AnyLinux не вызывал повторную загрузку при каждом запуске AppImage
|
||||
- Минимальная поддерживаемая версия Python повышена с 3.10 до 3.11
|
||||
- Поиск в библиотеке теперь находит совпадения в любой части названия и показывает одноимённые игры из разных источников
|
||||
- Тема теперь применяется без перезапуска приложения
|
||||
- Добавлена сборка Fedora 45
|
||||
- Автоматическая загрузка PPDB с linux-gaming.ru теперь отключена по умолчанию
|
||||
- Кнопка «Открыть PPDB» переименована в «Редактировать PPDB», чтобы не путать открытие файла с его запуском
|
||||
- Обновлён перевод на Немецкий `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/de/`
|
||||
- Обновлён перевод на Португальский (Бразилия) `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/pt_BR/`
|
||||
- Обновлён перевод на Русский `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/`
|
||||
- Обновлён перевод на Испанский `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/es/`
|
||||
- В AppImage добавлен Bash для предотвращения конфликтов Vulkan со Steam Runtime при использовании системного GameMode
|
||||
- Удалена ассоциация PortProtonQt с исполняемыми файлами Linux
|
||||
- MIME-тип образов MDS заменён на используемый libMirage `application/x-mds`
|
||||
- Открытие карточек и тихий запуск унифицированы
|
||||
- `minazuki` добавлен в список конфликтующих с GameMode процессов
|
||||
- Встроенный терминал после ошибки остаётся открытым и закрывается клавишей Enter или кнопкой A геймпада
|
||||
- В список советов при вылете добавлено отключение Optiscaler
|
||||
- Повышен статус разработки в `pyproject.toml` с Alpha до Production
|
||||
- DXVK и VKD3D-Proton теперь загружаются только для выбранного режима Vulkan, а D7VK — только при его включении
|
||||
|
||||
### Fixed
|
||||
|
||||
- Исправлена запись `MANGOHUD_CONFIG` в `.ppdb` при выключенном MangoHud
|
||||
- Исправлены ложный статус установки и открытие чужой карточки для Rockstar Games Launcher при совпадении имени `launcher.exe`
|
||||
- Исправлен запуск второго `.exe` через `PW_RUN_AFTER_EXE` из пути с кириллицей
|
||||
- Исправлены мерцание сетки и задержка выделения карточек при открытии библиотеки
|
||||
- Исправлено обновление сетки комбинацией Guide + Select
|
||||
- Исправлены создание и восстановление `.desktop`-файлов с переносами строк в названии игры
|
||||
- Исправлено появление дубля карточки при добавлении и после установки игры
|
||||
- Исправлено отсутствие новых `.exe` в поиске библиотеки до обновления сетки
|
||||
- Исправлено обновление названия на детальной странице после редактирования ярлыка без повторного открытия страницы
|
||||
- Исправлено отображение дополнений и наборов GOG как отдельных игр в библиотеке
|
||||
- Исправлено отсутствие установленных демоверсий, модов, приложений и бета-версий Steam в библиотеке
|
||||
- Исправлена синтаксическая ошибка в `functions_helper`, препятствовавшая запуску PortProton с Bash 5.1
|
||||
- Исправлено управление интерфейсом при одновременном подключении нескольких геймпадов
|
||||
- Исправлена коллизия пользовательских данных автоустановок с одинаковыми именами исходных исполняемых файлов
|
||||
- Исправлен запуск PortProtonQt на NixOS через `steam-run`
|
||||
- Исправлена проверка и установка недостающих i586-зависимостей в ALT Linux перед запуском игр
|
||||
- Исправлено отсутствие иконки у окна встроенного терминала
|
||||
- Исправлена потеря финального вывода при ошибке встроенного терминала
|
||||
- Исправлено открытие карточек GOG через URI при старте приложения
|
||||
- Исправлен сброс состояния кнопки записи лога при переключении детальной страницы в компактный режим
|
||||
- Исправлено отображение значка PortProtonQt в системном трее при медленной инициализации приложения
|
||||
- Исправлено отсутствие вкладок Wi-Fi и Bluetooth при запуске до инициализации системных адаптеров
|
||||
- Исправлена ошибка, из-за которой не работал поиск по настройкам при отсутствии доступных параметров MangoHud или Gamescope
|
||||
- Фильтр установленных игр теперь переключается без повторной загрузки библиотеки
|
||||
- Некорректные изображения в кэше Steam теперь пропускаются при поиске обложек
|
||||
- Исправлено открытие `.ppdb` на разделах с битом исполнения у всех файлов
|
||||
- Исправлено создание резервной копии префикса с `libarchive-c 5.1`
|
||||
- Исправлено завершение приложения при активных фоновых операциях
|
||||
- Исправлено автоматическое включение NVAPI, DLSS и трассировки лучей для видеокарт NVIDIA RTX
|
||||
- Исправлено применение принудительно выбранного языка в конфигурациях эмуляторов Steam
|
||||
|
||||
### Contributors
|
||||
- @dark_siders
|
||||
- @rogerio-mattos
|
||||
- @Rubin13
|
||||
- @adem4ik
|
||||
- @gallegonovato
|
||||
|
||||
---
|
||||
|
||||
## [1.4.1] - 2026-08-26
|
||||
|
||||
### Changed
|
||||
- Обновлён перевод на Русский `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/ru/`
|
||||
|
||||
### Fixed
|
||||
- Произведён откат Steam Runtime Sniper до версии V3 из-за несовместимости GStreamer внутри Proton 10.x с SLR 4
|
||||
|
||||
### Contributors
|
||||
|
||||
---
|
||||
|
||||
## [1.4.0] - 2026-08-23
|
||||
|
||||
### Added
|
||||
- Добавлен анализатор проблем в случае вылета Windows-программы
|
||||
- Добавлены анимированные и статические фоны детальной страницы `aurora`, `diagnostics`, `metaballs`, `leaf` и `veins`, вдохновлённые проектом omikuji
|
||||
- Добавлена интеграция GOG с авторизацией, библиотекой, установкой, импортом, восстановлением и удалением игр
|
||||
- Добавлена отдельная галочка `Only Installed`, сочетаемая с фильтрами источника и скрывающая неустановленные игры
|
||||
- Добавлено отображение иконок `.exe` вместо обложек на компактной детальной странице
|
||||
- Добавлено редактирование ярлыков Steam по AppID
|
||||
- Добавлены тихий и логируемый режимы запуска `.exe` через меню «Открыть с помощью»
|
||||
- Добавлена пользовательская интеграция AppImage
|
||||
- Добавлен однокнопочный установщик AppImage с загрузкой через Gitea или GitHub и автоматической интеграцией в систему
|
||||
- В игровые ярлыки добавлены действия для запуска в тихом режиме и с записью лога
|
||||
- Добавлен аргумент командной строки `--log` для запуска игры в режиме логирования
|
||||
- Добавлены звуки интерфейса
|
||||
- Добавлен выбор аккаунта Steam в настройках с автоматическим режимом по умолчанию и режимом `All` для добавления ярлыков всем пользователям
|
||||
- Добавлено безопасное чтение вариантов dark/light палитры matugen из Dank Material Shell
|
||||
- Добавлен поиск параметров MangoHud, vkBasalt и Gamescope по названиям и описаниям
|
||||
- Добавлена установка локальных архивов WINE/Proton перетаскиванием в библиотеку или менеджер версий
|
||||
- Добавлена кнопка открытия папки WINE в менеджере версий
|
||||
- Добавлена настройка для скрытия подсказок по управлению
|
||||
- Добавлена кнопка удаления пользовательских тем
|
||||
|
||||
### Changed
|
||||
- GitHub-зеркала [PortProtonQt](https://github.com/linux-gaming-ru/PortProtonQt) и [метаданных WINE/Proton](https://github.com/linux-gaming-ru/PortProtonQt-Wine-Metadata) перенесены в организацию `linux-gaming-ru`
|
||||
- Иконки системных уведомлений перенесены в темы и теперь соответствуют выбранной теме
|
||||
- Выбранное зеркало теперь используется для загрузки метаданных WINE/Proton, проверки обновлений AppImage и получения списка изменений
|
||||
- Обновлена ссылка на раздел помощи в логе ошибки
|
||||
- В AppImage добавлены `7z` для извлечения содержимого ISO и MDF-образов и `vk_gpu_info` для определения видеокарт Vulkan
|
||||
- Вертикальная навигация геймпадом в сетках настроек больше не переходит между столбцами
|
||||
- Удалена сборка для Fedora 42
|
||||
- Версия Windows по умолчанию изменена с 10 на 11
|
||||
- Обновлены все иконки подсказок управления
|
||||
- API и ссылки PPDB переведены с `ppdb.linux-gaming.ru` на `linux-gaming.ru`
|
||||
- Блок игровой статистики на полной детальной странице помещён в тематизируемый контейнер, как в компактном режиме
|
||||
- Кэш EXE-иконок унифицирован для карточек и детальных страниц
|
||||
- Папки `custom_data` теперь используют имя exe и MD5 полного пути для предотвращения конфликтов одинаковых имён
|
||||
- Управление геймпадом переведено с `pygame` на SDL3, зависимость `pygame` удалена
|
||||
- Обновлён перевод на Немецкий `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/de/`
|
||||
- Обновлён перевод на Португальский (Бразилия) `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/pt_BR/`
|
||||
- Обновлён перевод на Китайский (упрощённый) `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/zh_Hans/`
|
||||
- Возвращено отображение нативных Linux-игр в библиотеке Steam без отображения саундтреков
|
||||
- После создания или удаления ярлыков меню обновляется база desktop-файлов
|
||||
- `sherrydmn` добавлен в список конфликтующих с GameMode процессов
|
||||
|
||||
### Fixed
|
||||
- Настройки прокси теперь передаются `curl` при загрузке файлов скриптами PortProton
|
||||
- Устранена повторная перестройка индексов Steam и PPDB для каждой карточки в экономном режиме
|
||||
- Скрытие бейджей больше не скрывает ленту источника игры на карточках библиотеки
|
||||
- Обновление сетки библиотеки теперь загружает только источник, выбранный одиночным фильтром
|
||||
- Исправлено обрезание кнопок настроек PortProtonQt в узких окнах
|
||||
- Исправлено удаление даты последнего запуска при удалении ярлыка игры
|
||||
- Исправлено извлечение иконок для лаунчеров, запускающих целевой EXE через соседний `.bat` или `.cmd`
|
||||
- Исправлено зависание интерфейса при проверке RPM-пакетов перед запуском игры
|
||||
- Исправлено обрезание подсказок управления при переносе на вторую строку
|
||||
- Исправлены подлагивания интерфейса при загрузке списка WINE/Proton и подсчёте размеров установленных версий
|
||||
- Исправлена перекраска иконок встроенного файлового менеджера через `ICON_COLORS`
|
||||
- Исправлено применение длительности fade-анимации к появлению обложки при анимациях `slide` и `bounce` детальной страницы
|
||||
- Исправлено игнорирование параметров темы для размеров, отступов, скруглений и тени карточек в сеточном и списочном режимах
|
||||
- Исправлены медленная загрузка превью и повторные сетевые запросы при прокрутке магазина тем
|
||||
- Исправлен непоследовательный порядок навигации по карточкам игр с помощью D-pad
|
||||
- Системные действия в режиме `--ppqtos` переведены на `systemctl` и `loginctl`
|
||||
- Исправлена перекраска SVG-иконок подсказок управления через `ICON_COLORS`
|
||||
- Исправлен ввод кириллицы при поиске игр
|
||||
- Поиск игр ограничен названиями без совпадений по описаниям
|
||||
- Исправлено состояние кнопки остановки при переключении детальной страницы на компактный вид
|
||||
- Исправлено зависание интерфейса после завершения игры
|
||||
- Исправлено определение основного аккаунта Steam по самому новому `Timestamp` в `loginusers.vdf` с резервным поиском по `AutoLogin` или единственному профилю `userdata` и поддержкой `MostRecent` для совместимости со старыми версиями Steam
|
||||
- Распаковка WINE/Proton больше не меняет рабочий каталог приложения и отклоняет пути из архива, выходящие за каталог установки
|
||||
|
||||
### Contributors
|
||||
- @Dervart
|
||||
- @Rubin13
|
||||
- @rogerio-mattos
|
||||
- @Vekt0R_null
|
||||
|
||||
---
|
||||
|
||||
## [1.3.2] - 2026-08-10
|
||||
|
||||
### Fixed
|
||||
- Исправлено определение SteamID по `AutoLogin` или единственному профилю `userdata`, если в `loginusers.vdf` отсутствует `MostRecent`
|
||||
|
||||
---
|
||||
|
||||
## [1.3.1] - 2026-07-18
|
||||
|
||||
### Fixed
|
||||
- Исправлено CVE-2026-59678: уязвимость повышения привилегий в Polkit-правилах udisks и NetworkManager, где проверка командной строки через `ps` позволяла локальным пользователям обойти авторизацию
|
||||
|
||||
### Changed
|
||||
- `--ppqtos` теперь требует что бы пользователь был в группе `portprotonqt`
|
||||
|
||||
---
|
||||
|
||||
## [1.3.0] - 2026-07-13
|
||||
|
||||
### Added
|
||||
- Добавлена проверка 32-битных зависимостей ALT Linux перед запуском игр с предложением установить их через `pkexec`
|
||||
- Добавлены 3 режима фона детальной страницы через тему: `gradient` (градиент по умолчанию), `static_waves` (статические волны), `waves` (анимированные волны)
|
||||
- Добавлена поддержка открытия локальных `.ppai` автоустановок через ассоциацию файлов, CLI и перетаскивание в окно приложения
|
||||
- Добавлена возможность печати для поиска напрямую с карточки игры в библиотеке и автоинсталлах
|
||||
- Добавлен `AutoHideScrollArea` — QScrollArea с автоматически скрывающейся полосой прокрутки с анимацией fade-in/out
|
||||
- Добавлен тип отображения времени `Steam` с часами, десятичными минутами
|
||||
- Добавлено обновление отображения последнего запуска и проведённого времени без перезапуска приложения
|
||||
- Добавлена поддержка D7VK
|
||||
- Добавлена настройка автоматического скачивания PPDB с `ppdb.linux-gaming.ru`
|
||||
- Добавлены раскладки и варианты виртуальной клавиатуры на основе keymap-данных `gjs-osk`
|
||||
- Добавлен перевод на Немецкий `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/de/`
|
||||
- Добавлен магазин тем с загрузкой и применением тем из `ppdb.linux-gaming.ru` (скрыт за настройкой по умолчанию, так как сторонние темы могут быть небезопасны)
|
||||
- Добавлена поддержка установки тем по URI `portprotonqt://theme/<id>` с `ppdb.linux-gaming.ru`
|
||||
- Добавлено автообновление AppImage через интерфейс с резервным GitHub-зеркалом
|
||||
- Добавлена запись параметров запуска из `.lnk` в `.ppdb`
|
||||
- Добавлен автовыбор директории Flatpak-версии PortProton (`~/.var/app/ru.linux_gaming.PortProton`) как `portdatapath`, если директория существует
|
||||
- Добавлена кнопка «Открыть папку» на детальной странице для игр PortProton
|
||||
- Добавлена перекраска SVG-иконок через константу темы `ICON_COLORS`
|
||||
- Добавлена константа темы `DETAIL_PAGE_GRADIENT` для полного переопределения стопов градиента фона детальной страницы
|
||||
- Добавлена кнопка удаления карточек PortProton без существующего exe в библиотеке
|
||||
|
||||
### Changed
|
||||
- Минимальный масштаб слайдера размера карточек снижен с 200 до 100 px
|
||||
- Улучшено компактное отображение бейджей и названий карточек при малом масштабе
|
||||
- Убран дебаг-код `proton_downloads` из менеджера WINE/Proton
|
||||
- Проверка безопасности тем теперь включает SVG, изображения и шрифты — небезопасные файлы блокируют загрузку темы целиком
|
||||
- Файл `last_launch` перемещён из `~/.cache/PortProtonQt/` в `~/.local/share/PortProtonQt/` согласно XDG спецификации
|
||||
- Файл `statistics` перемещён из `portdatapath/tmp` в `~/.local/share/PortProtonQt/` согласно XDG спецификации и очищен от устаревших полей
|
||||
- Из-за проблем с кешем fontconfig весь кеш Appimage перенесён в `~/.cache/AppImage-Cache/PortProtonQt/`
|
||||
- Автоустановки теперь загружаются с сайта `ppdb.linux-gaming.ru`
|
||||
- Бейдж PortProton теперь использует данные `ppdb.linux-gaming.ru`, ведёт на страницу отчёта по id и скрывается, если отчёта нет
|
||||
- Бейдж ProtonDB теперь отображает название сервиса вместо текстового рейтинга
|
||||
- Бейдж источника игры заменён на загнутый угол карточки для Steam и PortProton
|
||||
- Иконки подсказок управления теперь можно нажимать мышью для выполнения соответствующего действия
|
||||
- Звезда избранного переведена со шрифтового символа на SVG-иконку
|
||||
- Улучшено адаптивное отображение детальной страниц
|
||||
- Обновлён перевод на Португальский (Бразилия) `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/pt_BR/`
|
||||
- Обновлён перевод на Китайский (упрощённый) `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/zh_Hans/`
|
||||
- Обновлён перевод на Испанский `https://translate.codeberg.org/projects/portprotonqt/portprotonqt/es/`
|
||||
- Кеш ProtonDB теперь очищается при обновлении списка приложений Steam
|
||||
- Убрана поддержка `.lnк` файлов из `start.sh`
|
||||
- Устаревший `Proton-Sarek` заменён на `dwproton`
|
||||
- Улучшена читаемость списка версий Wine/Proton и префиксов в настройках exe
|
||||
- Удаление игры из PortProton теперь также удаляет ярлыки из меню приложений и с рабочего стола
|
||||
- Пункт «Добавить в Steam» скрывается в контекстном меню, если Steam не установлен
|
||||
- Поиск во вкладке автоустановок унифицирован с поиском в библиотеке
|
||||
|
||||
### Fixed
|
||||
- Исправлено попадание саундтреков и нативных Linux-игр в библиотеку Steam
|
||||
- Исправлено определение тёмной темы для `Cinnamon`, `XFCE` и `MATE`
|
||||
- Исправлена навигация по сетке карточек после перехода к результатам поиска
|
||||
- Исправлен нестабильный поиск по первым буквам
|
||||
- Исправлен поиск исполняемых файлов из `.lnk` с неверным регистром имени
|
||||
- Исправлена обработка путей с пробелами в `portwine_create_shortcut`
|
||||
- Исправлен запуск второго `.exe` через `PW_RUN_AFTER_EXE`
|
||||
- Исправлено падение фонового чтения вывода запуска при невалидных UTF-8 байтах
|
||||
- Исправлено отображение процентов скачивания библиотек на кнопке запуска
|
||||
- Исправлено определение установленных автоустановок с одинаковыми именами лаунчеров и закомментированными `PW_EXE_FILE` в `.ppai`
|
||||
- Исправлены рывки при раскрытии панели настроек библиотеки
|
||||
- Исправлено закрытие панели фильтров библиотеки при переключении вкладок
|
||||
- Исправлено сворачивание поиска при открытии виртуальной клавиатуры
|
||||
- Исправлено обновление статуса установленных Wine/Proton после скачивания без переоткрытия менеджера версий
|
||||
- Исправлено обновление статуса установленных Wine/Proton после удаления без переоткрытия менеджера версий
|
||||
- Исправлено создание пустых папок `custom_data` и добавлена очистка пустых директорий пользовательских данных
|
||||
|
||||
### Contributors
|
||||
- @CastroFidel
|
||||
- @Dervart
|
||||
- @rogerio-mattos
|
||||
- @Simple16
|
||||
- @Rubin13
|
||||
- @gallegonovato
|
||||
|
||||
---
|
||||
|
||||
## [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
|
||||
|
||||
Executable
+12
@@ -0,0 +1,12 @@
|
||||
[Desktop Entry]
|
||||
Name=Install PortProtonQt
|
||||
Name[ru]=Установить PortProtonQt
|
||||
Name[es]=Instalar PortProtonQt
|
||||
Comment=Download and install the latest PortProtonQt AppImage
|
||||
Comment[ru]=Скачать и установить последнюю версию PortProtonQt AppImage
|
||||
Exec=sh -c "(curl -fsSL https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/branch/main/install.sh || curl -fsSL https://raw.githubusercontent.com/linux-gaming-ru/PortProtonQt/main/install.sh) | sh"
|
||||
Icon=system-software-install
|
||||
StartupNotify=false
|
||||
Terminal=true
|
||||
Type=Application
|
||||
Categories=Game;
|
||||
@@ -15,86 +15,3 @@ 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, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
We make use of various projects, some of which require their license to be preserved. Here's their respective licenses:
|
||||
-----------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
===============
|
||||
= icoextract: =
|
||||
===============
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2015-2016 Fadhil Mandaga
|
||||
Copyright (c) 2019-2025 James Lu <james@overdrivenetworks.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
===============
|
||||
= portproton: =
|
||||
===============
|
||||
MIT License
|
||||
|
||||
|
||||
Copyright (c) 2025 Mikhail Tergoev
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
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.
|
||||
|
||||
===============================
|
||||
= HowLongToBeat-Python-API : =
|
||||
===============================
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2020 JaeguKim
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
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
|
||||
|
||||
Copyright (c) 2020–2025 Derek Taylor and contributors
|
||||
|
||||
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.
|
||||
|
||||
https://github.com/derrod/legendary
|
||||
@@ -1,67 +1,91 @@
|
||||
📘 Эта документация также доступна на [русском](README.ru.md)
|
||||
|
||||
---
|
||||
|
||||
<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>
|
||||
<img src="build-aux/share/icons/hicolor/scalable/apps/ru.linux_gaming.PortProtonQt.svg" width="128">
|
||||
|
||||
<p align="center">An application for managing a game library and launching games on Linux. It brings games from different sources together in one place.</p>
|
||||
|
||||
<p>
|
||||
<a href="https://github.com/linux-gaming-ru/PortProtonQt/releases"><img src="https://img.shields.io/github/v/release/linux-gaming-ru/PortProtonQt?style=flat-square&label=Release" alt="Releases"></a>
|
||||
<a href="https://github.com/linux-gaming-ru/PortProtonQt/releases"><img src="https://img.shields.io/badge/Downloads-14.1k-green?style=flat-square" alt="Total Downloads"></a>
|
||||
<a href="LICENSE"><img src="https://img.shields.io/badge/License-GPL--3.0-blue?style=flat-square" alt="License: GPL-3.0"></a>
|
||||
<a href="pyproject.toml"><img src="https://img.shields.io/badge/Python-3.11%2B-blue?style=flat-square&logo=python" alt="Python 3.11+"></a>
|
||||
<a href="https://github.com/linux-gaming-ru/PortProtonQt"><img src="https://img.shields.io/badge/Platform-Linux-blue?style=flat-square&logo=linux" alt="Platform: Linux"></a>
|
||||
<a href="https://translate.codeberg.org/engage/portprotonqt/"><img src="https://img.shields.io/badge/Translations-Weblate-2eccaa?style=flat-square&logo=weblate" alt="Translate on Weblate"></a>
|
||||
<a href="https://repology.org/project/portprotonqt/versions"><img src="https://repology.org/badge/tiny-repos/portprotonqt.svg" alt="Packaging status on Repology"></a>
|
||||
</p>
|
||||
|
||||
<p><a href="https://github.com/linux-gaming-ru/PortProtonQt/releases">Releases</a> · <a href="https://github.com/linux-gaming-ru/PortProtonQt/issues">Issue tracker</a> · <a href="https://translate.codeberg.org/engage/portprotonqt/">Translations</a> · <a href="https://repology.org/project/portprotonqt/versions">Packages</a></p>
|
||||
</div>
|
||||
|
||||
### Установка (devel)
|
||||
### Installation (devel)
|
||||
|
||||
```sh
|
||||
uv python install 3.10
|
||||
uv python install 3.11
|
||||
uv sync
|
||||
source .venv/bin/activate # For bash/zsh
|
||||
# or
|
||||
source .venv/bin/activate.fish # For fish
|
||||
```
|
||||
|
||||
Запуск производится по команде portprotonqt
|
||||
Launch the application using the `portprotonqt` command.
|
||||
|
||||
### Установка (release)
|
||||
### Installation (release)
|
||||
|
||||
Выберите подходящий пакет для вашей системы или AppImage.
|
||||
Choose the appropriate package for your system or the AppImage.
|
||||
|
||||
Запуск производится по команде portprotonqt или по ярлыку в меню
|
||||
Launch using the `portprotonqt` command or via the shortcut in your application menu.
|
||||
|
||||
### Разработка
|
||||
### Development
|
||||
|
||||
В проект встроен линтер (ruff), статический анализатор (pyright) и проверка lock файла, если эти проверки не пройдут PR не будет принят, поэтому перед коммитом введите такую команду
|
||||
To automatically prepare the environment (install Python 3.11, dependencies, pre-commit hooks, and generate translations), run the following script:
|
||||
|
||||
```sh
|
||||
./dev-scripts/prepare_env.sh
|
||||
```
|
||||
|
||||
Then activate the virtual environment. The activation command for your shell will be displayed at the end of the script execution. Usually, it is:
|
||||
|
||||
```sh
|
||||
uv python install 3.10
|
||||
uv sync --all-extras --dev
|
||||
source .venv/bin/activate # For bash/zsh
|
||||
# or
|
||||
source .venv/bin/activate.fish # For fish
|
||||
pre-commit install
|
||||
```
|
||||
|
||||
pre-commit сам запустится при коммите, если вы хотите запустить его вручную введите команду
|
||||
`pre-commit` will automatically run on every commit. If you want to run it manually, use:
|
||||
|
||||
```sh
|
||||
pre-commit run --all-files
|
||||
```
|
||||
|
||||
## Авторы
|
||||
## Authors
|
||||
|
||||
* [Boria138](https://git.linux-gaming.ru/Boria138) - Основной разработчик
|
||||
* [BlackSnaker](https://git.linux-gaming.ru/BlackSnaker) - Автор идеи, а так же начальной реализации проекта
|
||||
* [Mikhail Tergoev (Castro-Fidel)](https://git.linux-gaming.ru/CastroFidel) - Автор оригинального проекта PortProton
|
||||
* [Boria138](https://git.linux-gaming.ru/Boria138) - Lead Developer
|
||||
* [BlackSnaker](https://git.linux-gaming.ru/BlackSnaker) - Author of the idea and initial implementation
|
||||
* [Mikhail Tergoev (Castro-Fidel)](https://git.linux-gaming.ru/CastroFidel) - Author of the original PortProton project
|
||||
|
||||
### Контрибьюторы
|
||||
### Contributors
|
||||
|
||||
Мы благодарим всех, кто внёс вклад в развитие PortProtonQt, включая тех, кто участвует через коммиты, а также тех, кто помогает другими способами (тестирование, идеи, переводы, документация и т.д.). Полный список участников, можно найти в [списке активности репозитория](https://git.linux-gaming.ru/Boria138/PortProtonQt/activity/contributors). Дополнительные участники также перечислены в файле [CHANGELOG.md](CHANGELOG.md). Если вы внесли вклад, но не указаны, свяжитесь с основными разработчиками, чтобы мы могли вас отметить!
|
||||
We thank everyone who has contributed to the development of PortProtonQt, including those who participate through commits as well as those who help in other ways (testing, ideas, translations, documentation, etc.). A full list of participants can be found in the [repository activity list](https://github.com/linux-gaming-ru/PortProtonQt/graphs/contributors). Additional participants are also listed in the [CHANGELOG.md](CHANGELOG.md) file. If you have contributed but are not listed, please contact the lead developers so we can acknowledge you!
|
||||
|
||||
## Зависимости и лицензии
|
||||
## Dependencies and Licenses
|
||||
|
||||
PortProtonQt использует код и зависимости от следующих проектов:
|
||||
PortProtonQt uses code and dependencies from the following projects:
|
||||
|
||||
- [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).
|
||||
Полный текст лицензий см. в файле [LICENSE](LICENSE).
|
||||
- [Icoextract](https://github.com/jlu5/icoextract) — icon extraction library, [MIT](https://github.com/jlu5/icoextract/blob/master/LICENSE) license.
|
||||
- [HowLongToBeat Python API](https://github.com/ScrappyCocco/HowLongToBeat-PythonAPI) — library for interacting with HowLongToBeat, [MIT](https://github.com/ScrappyCocco/HowLongToBeat-PythonAPI/blob/master/LICENSE.md) license.
|
||||
- [Iso9660 Analyzer Tool (IAT)](https://sourceforge.net/projects/iat.berlios/) — library for converting mdf and nrg to iso, GPLv2 license.
|
||||
- [heroic-gogdl](https://github.com/Heroic-Games-Launcher/heroic-gogdl) — GOG downloading module, [GPLv3](https://github.com/Heroic-Games-Launcher/heroic-gogdl/blob/main/LICENSE) license.
|
||||
- [Legendary](https://github.com/Heroic-Games-Launcher/legendary) — Epic Games launcher alternative, [GPLv3](https://github.com/Heroic-Games-Launcher/legendary/blob/master/LICENSE) license.
|
||||
- [pyte](https://github.com/selectel/pyte) — ANSI escape code parser, [LGPLv3](https://github.com/selectel/pyte?tab=LGPL-3.0-1-ov-file) license.
|
||||
- [gjs-osk](https://github.com/Vishram1123/gjs-osk) — base for virtual keyboard layout data, GPLv3 license.
|
||||
- [omikuji](https://github.com/omikuji-launcher/omikuji) — inspiration and source material for the procedural detail page backgrounds, [GPLv3](https://github.com/omikuji-launcher/omikuji/blob/master/LICENSE) license.
|
||||
- [Bottles](https://github.com/bottlesdevs/Bottles) — source of the compatibility analysis rules, GPL-3.0-only license.
|
||||
|
||||
PortProtonQt is licensed under the terms in [LICENSE](LICENSE). See
|
||||
[THIRD_PARTY_NOTICES](THIRD_PARTY_NOTICES) for third-party licenses.
|
||||
|
||||
> [!WARNING]
|
||||
> Проект находится на стадии WIP (work in progress) корректная работоспособность не гарантирована
|
||||
|
||||
> [!WARNING]
|
||||
> **Будьте осторожны!** Если вы берёте тему не из официального репозитория или надёжного источника, убедитесь, что в её файле `styles.py` нет вредоносного или нежелательного кода. Поскольку `styles.py` — это обычный Python-файл, он может содержать любые инструкции. Всегда проверяйте содержимое чужих тем перед использованием.
|
||||
> **Be careful!** If you are using a theme not from the official repository or a trusted source, make sure its `styles.py` file does not contain malicious or unwanted code. Since `styles.py` is a regular Python file, it can contain any instructions. Always check the contents of third-party themes before use.
|
||||
@@ -0,0 +1,91 @@
|
||||
📘 This documentation is also available in [English](README.md)
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
<img src="build-aux/share/icons/hicolor/scalable/apps/ru.linux_gaming.PortProtonQt.svg" width="128">
|
||||
|
||||
<p align="center">Приложение для управления игровой библиотекой и запуска игр на Linux. Объединяет игры из разных источников в одном месте.</p>
|
||||
|
||||
<p>
|
||||
<a href="https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/releases"><img src="https://img.shields.io/github/v/release/linux-gaming-ru/PortProtonQt?style=flat-square&label=Релиз" alt="Релизы"></a>
|
||||
<a href="https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/releases"><img src="https://img.shields.io/badge/Загрузки-14.1k-green?style=flat-square" alt="Всего загрузок"></a>
|
||||
<a href="LICENSE"><img src="https://img.shields.io/badge/Лицензия-GPL--3.0-blue?style=flat-square" alt="Лицензия: GPL-3.0"></a>
|
||||
<a href="pyproject.toml"><img src="https://img.shields.io/badge/Python-3.11+-blue?style=flat-square&logo=python" alt="Python 3.11+"></a>
|
||||
<a href="https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt"><img src="https://img.shields.io/badge/Платформа-Linux-blue?style=flat-square&logo=linux" alt="Платформа: Linux"></a>
|
||||
<a href="https://translate.codeberg.org/engage/portprotonqt/"><img src="https://img.shields.io/badge/Переводы-Weblate-2eccaa?style=flat-square&logo=weblate" alt="Перевести на Weblate"></a>
|
||||
<a href="https://repology.org/project/portprotonqt/versions"><img src="https://repology.org/badge/tiny-repos/portprotonqt.svg?header=Репозитории" alt="Пакеты в Repology"></a>
|
||||
</p>
|
||||
|
||||
<p><a href="https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/releases">Релизы</a> · <a href="https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/issues">Сообщить о проблеме</a> · <a href="https://translate.codeberg.org/engage/portprotonqt/">Переводы</a> · <a href="https://repology.org/project/portprotonqt/versions">Пакеты</a></p>
|
||||
</div>
|
||||
|
||||
### Установка (devel)
|
||||
|
||||
```sh
|
||||
uv python install 3.11
|
||||
uv sync
|
||||
source .venv/bin/activate # For bash/zsh
|
||||
# or
|
||||
source .venv/bin/activate.fish # For fish
|
||||
```
|
||||
|
||||
Запуск производится по команде portprotonqt
|
||||
|
||||
### Установка (release)
|
||||
|
||||
Выберите подходящий пакет для вашей системы или AppImage.
|
||||
|
||||
Запуск производится по команде portprotonqt или по ярлыку в меню
|
||||
|
||||
### Разработка
|
||||
|
||||
Для автоматической подготовки окружения (установка Python 3.11, зависимостей, pre-commit хуков и генерация переводов) выполните скрипт:
|
||||
|
||||
```sh
|
||||
./dev-scripts/prepare_env.sh
|
||||
```
|
||||
|
||||
Затем активируйте виртуальное окружение. Команда активации для вашей оболочки будет выведена в конце работы скрипта. Обычно это:
|
||||
|
||||
```sh
|
||||
source .venv/bin/activate # Для bash/zsh
|
||||
# или
|
||||
source .venv/bin/activate.fish # Для fish
|
||||
```
|
||||
|
||||
pre-commit сам запустится при коммите, если вы хотите запустить его вручную введите команду:
|
||||
|
||||
```sh
|
||||
pre-commit run --all-files
|
||||
```
|
||||
|
||||
## Авторы
|
||||
|
||||
* [Boria138](https://git.linux-gaming.ru/Boria138) - Основной разработчик
|
||||
* [BlackSnaker](https://git.linux-gaming.ru/BlackSnaker) - Автор идеи, а так же начальной реализации проекта
|
||||
* [Mikhail Tergoev (Castro-Fidel)](https://git.linux-gaming.ru/CastroFidel) - Автор оригинального проекта PortProton
|
||||
|
||||
### Контрибьюторы
|
||||
|
||||
Мы благодарим всех, кто внёс вклад в развитие PortProtonQt, включая тех, кто участвует через коммиты, а также тех, кто помогает другими способами (тестирование, идеи, переводы, документация и т.д.). Полный список участников, можно найти в [списке активности репозитория](https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/activity/contributors). Дополнительные участники также перечислены в файле [CHANGELOG.md](CHANGELOG.md). Если вы внесли вклад, но не указаны, свяжитесь с основными разработчиками, чтобы мы могли вас отметить!
|
||||
|
||||
## Зависимости и лицензии
|
||||
|
||||
PortProtonQt использует код и зависимости от следующих проектов:
|
||||
|
||||
- [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).
|
||||
- [Iso9660 Analyzer Tool (IAT)](https://sourceforge.net/projects/iat.berlios/) — библиотека для конвертации mdf и nrg в iso, лицензия GPLv2
|
||||
- [heroic-gogdl](https://github.com/Heroic-Games-Launcher/heroic-gogdl) — модуль загрузки игр GOG, лицензия [GPLv3](https://github.com/Heroic-Games-Launcher/heroic-gogdl/blob/main/LICENSE).
|
||||
- [Legendary](https://github.com/Heroic-Games-Launcher/legendary) — альтернатива Epic Games Launcher, лицензия [GPLv3](https://github.com/Heroic-Games-Launcher/legendary/blob/master/LICENSE).
|
||||
- [pyte](https://github.com/selectel/pyte) — разбор ANSI escape-кодов, лицензия [LGPLv3](https://github.com/selectel/pyte?tab=LGPL-3.0-1-ov-file)
|
||||
- [gjs-osk](https://github.com/Vishram1123/gjs-osk) — основа данных раскладок виртуальной клавиатуры, лицензия GPLv3.
|
||||
- [omikuji](https://github.com/omikuji-launcher/omikuji) — источник вдохновения и материалов для процедурных фонов детальной страницы, лицензия [GPLv3](https://github.com/omikuji-launcher/omikuji/blob/master/LICENSE).
|
||||
- [Bottles](https://github.com/bottlesdevs/Bottles) — источник правил анализа совместимости, лицензия GPL-3.0-only.
|
||||
|
||||
Условия лицензии PortProtonQt приведены в файле [LICENSE](LICENSE). Лицензии
|
||||
сторонних проектов приведены в файле [THIRD_PARTY_NOTICES](THIRD_PARTY_NOTICES).
|
||||
|
||||
> [!WARNING]
|
||||
> **Будьте осторожны!** Если вы берёте тему не из официального репозитория или надёжного источника, убедитесь, что в её файле `styles.py` нет вредоносного или нежелательного кода. Поскольку `styles.py` — это обычный Python-файл, он может содержать любые инструкции. Всегда проверяйте содержимое чужих тем перед использованием.
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
# Security Policy
|
||||
|
||||
## Reporting a vulnerability
|
||||
|
||||
Do not publish suspected vulnerability details in public issues, discussions,
|
||||
or pull requests. Send reports to [support@linux-gaming.ru](mailto:support@linux-gaming.ru).
|
||||
|
||||
Please include enough information to reproduce and assess the issue:
|
||||
|
||||
- PortProtonQt version or commit and installation source.
|
||||
- Linux distribution and relevant launcher or runtime details.
|
||||
- Affected feature and clear reproduction steps.
|
||||
- Expected behavior, observed behavior, and potential security impact.
|
||||
- A minimal proof of concept or sanitized logs, if available.
|
||||
- A suggested mitigation or fix, if known.
|
||||
|
||||
Do not include passwords, tokens, private keys, or personal data. Redact
|
||||
usernames, home directory paths, and other sensitive details from logs where
|
||||
practical. Test only with systems, accounts, and files you own or are
|
||||
authorized to use.
|
||||
|
||||
## Scope
|
||||
|
||||
This policy covers security issues in PortProtonQt, including its handling of
|
||||
local files and archives, launcher data, network requests, downloaded content,
|
||||
and application configuration. Issues in third-party launchers, libraries,
|
||||
compatibility tools, or distribution packages should also be reported to their
|
||||
maintainers. Please report cases where PortProtonQt's handling creates or
|
||||
increases the risk.
|
||||
|
||||
## Supported versions
|
||||
|
||||
Please check whether the issue affects the latest published release and
|
||||
include the affected version in your report. Older releases may not receive
|
||||
security fixes; users should update when a fix becomes available.
|
||||
|
||||
## Coordinated disclosure
|
||||
|
||||
Keep vulnerability details private while maintainers investigate and prepare a
|
||||
fix or mitigation. Coordinate public disclosure with the maintainers, allowing
|
||||
reasonable time for a fix to reach users. Response and remediation times depend
|
||||
on the issue; no fixed response time is promised.
|
||||
+1278
File diff suppressed because it is too large.
Load diff
@@ -1,66 +0,0 @@
|
||||
- [X] Адаптировать структуру проекта для поддержки инструментов сборки
|
||||
- [X] Добавить возможность управления с геймпада
|
||||
- [X] Добавить возможность управления с тачскрина (Формально и так есть)
|
||||
- [X] Добавить возможность управления с мыши и клавиатуры
|
||||
- [X] Добавить систему тем [Документация](documentation/theme_guide)
|
||||
- [X] Вынести все константы, такие как уровень закругления карточек, в темы (частично выполнено)
|
||||
- [X] Добавить метаданные для тем (скриншоты, описание, домашняя страница и автор)
|
||||
- [X] [Добавить сессию Gamescope, аналогичную той, что используется в SteamOS](https://git.linux-gaming.ru/Boria138/gamescope-session-portprotonqt)
|
||||
- [X] Разобраться почему теряется часть стилей в Gamescope
|
||||
- [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 для ускорения времени запуска
|
||||
- [X] Улучшить функцию поиска в Steam API для исправления некорректного определения ID (например, Graven определялся как ENGRAVEN или GRAVENFALL, Spore — как SporeBound или Spore Valley)
|
||||
- [X] Убрать логи Steam API в релизной версии, так как они замедляют выполнение кода
|
||||
- [X] Решить проблему с ограничением Steam API в 50 тысяч игр за один запрос (иногда нужные игры не попадают в выборку и остаются без обложки)
|
||||
- [X] Избавиться от вызовов yad
|
||||
- [X] Реализовать собственный системный трей вместо использования трея PortProton
|
||||
- [X] Добавить экранную клавиатуру в поиск
|
||||
- [X] Добавить сортировку карточек по различным критериям (доступны: по недавности, количеству наигранного времени, избранному или алфавиту)
|
||||
- [X] Добавить индикацию запуска приложения
|
||||
- [X] Достигнуть паритета функциональности с Ingame
|
||||
- [ ] Достигнуть паритета функциональности с PortProton (остались обновление скриптов)
|
||||
- [X] Добавить возможность изменения названия, описания и обложки через файлы `.local/share/PortProtonQT/custom_data/exe_name/{desc,name,cover}`
|
||||
- [X] Добавить встроенное переопределение названия, описания и обложки, например, по пути `portprotonqt/custom_data` [Документация](documentation/metadata_override/)
|
||||
- [X] Добавить переводы в переопределения
|
||||
- [X] Добавить в карточку игры сведения о поддержке геймпада
|
||||
- [X] Добавить в карточки данные с ProtonDB
|
||||
- [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 без перезапуска
|
||||
- [X] Отображать данные о самом последнем пользователе Steam, а не первом попавшемся
|
||||
- [X] Исправить склонения в детальном выводе времени, например, не «3 часов назад», а «3 часа назад»
|
||||
- [X] Добавить перевод через gettext [Документация](documentation/localization_guide)
|
||||
- [X] Отображать описания игр и другие данные на языке системы
|
||||
- [X] Добавить недокументированные параметры конфигурации в GUI (time_detail_level, games_sort_method, games_display_filter)
|
||||
- [X] Добавить систему избранного для карточек
|
||||
- [X] Заменить все `print` на `logging`
|
||||
- [X] Привести все логи к единому языку
|
||||
- [X] Уменьшить количество подстановок в переводах
|
||||
- [X] Стилизовать все элементы без стилей (QMessageBox, QSlider, QDialog)
|
||||
- [X] Убрать жёсткую привязку путей к стрелочкам QComboBox в `styles.py`
|
||||
- [X] Исправить частичное применение тем на лету
|
||||
- [X] Исправить наложение подписей скриншотов при первом перелистывании в полноэкранном режиме
|
||||
- [ ] Добавить поддержку GOG (?)
|
||||
- [X] Определиться с названием (PortProtonQt или PortProtonQT или вообще третий вариант)
|
||||
- [X] Добавить данные с HowLongToBeat на страницу с деталями игры
|
||||
- [X] Добавить виброотдачу на геймпаде при запуске игры
|
||||
- [X] Исправить некорректную работу слайдера увеличения размера карточек([Последствия регрессии после этого коммита](https://github.com/Boria138/PortProtonQt/commit/aebdd60b5537280f06a922ff80469cd4ab27bc63)
|
||||
- [X] Исправить баг с наложением карточек друг на друга при изменении фильтра отображения ([Последствия регрессии после этого коммита](https://github.com/Boria138/PortProtonQt/commit/aebdd60b5537280f06a922ff80469cd4ab27bc63))
|
||||
- [X] Скопировать логику управления с D-pad на стрелки с клавиатуры
|
||||
- [X] Добавить подсказки к управлению с геймпада
|
||||
- [X] Добавить миниатюры к выбору файлов в диалоге добавления игры
|
||||
- [X] Добавить быстрый доступ к смонтированным дискам к выбору файлов в диалоге добавления игры
|
||||
@@ -5,7 +5,9 @@ set -eu
|
||||
# Initialize variables
|
||||
LOCAL_MODE=false
|
||||
BRANCH="main"
|
||||
REPO_URL="https://git.linux-gaming.ru/Boria138/PortProtonQt.git"
|
||||
USE_BRANCH=false
|
||||
TAG=""
|
||||
REPO_URL="https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt.git"
|
||||
|
||||
# Parse arguments
|
||||
while [ $# -gt 0 ]; do
|
||||
@@ -16,12 +18,22 @@ while [ $# -gt 0 ]; do
|
||||
--branch)
|
||||
if [ -n "${2:-}" ] && [ "${2#-}" = "$2" ]; then
|
||||
BRANCH="$2"
|
||||
USE_BRANCH=true
|
||||
shift
|
||||
else
|
||||
echo "Error: --branch requires an argument"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
--tag)
|
||||
if [ -n "${2:-}" ] && [ "${2#-}" = "$2" ]; then
|
||||
TAG="$2"
|
||||
shift
|
||||
else
|
||||
echo "Error: --tag requires an argument"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
--repo)
|
||||
if [ -n "${2:-}" ] && [ "${2#-}" = "$2" ]; then
|
||||
REPO_URL="$2"
|
||||
@@ -40,14 +52,16 @@ while [ $# -gt 0 ]; do
|
||||
done
|
||||
|
||||
ARCH="$(uname -m)"
|
||||
EXTRA_PACKAGES="https://raw.githubusercontent.com/pkgforge-dev/Anylinux-AppImages/refs/heads/main/useful-tools/get-debloated-pkgs.sh"
|
||||
|
||||
if [ "$LOCAL_MODE" = true ]; then
|
||||
echo "Using local PKGBUILD-git from repository..."
|
||||
PPQT_PKGBUILD=""
|
||||
elif [ -n "$TAG" ]; then
|
||||
echo "Using stable version of PortProtonQt from $TAG tag..."
|
||||
PPQT_PKGBUILD="https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/tag/$TAG/build-aux/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"
|
||||
echo "Using stable version of PortProtonQt from $BRANCH branch..."
|
||||
PPQT_PKGBUILD="https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt/raw/branch/$BRANCH/build-aux/PKGBUILD"
|
||||
fi
|
||||
|
||||
echo "Tweak makepkg..."
|
||||
@@ -68,27 +82,10 @@ echo "---------------------------------------------------------------"
|
||||
pacman-key --init
|
||||
pacman -S --noconfirm archlinux-keyring
|
||||
|
||||
# Chaotic-AUR keys
|
||||
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'
|
||||
|
||||
# Enable the multilib repository
|
||||
cat << EOM >> /etc/pacman.conf
|
||||
[multilib]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[chaotic-aur]
|
||||
Include = /etc/pacman.d/chaotic-mirrorlist
|
||||
SigLevel = Never
|
||||
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,14 +94,16 @@ 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
|
||||
if [ "$USE_BRANCH" = true ]; then
|
||||
sed -i "s|^source=.*|source=(\"git+${REPO_URL}#branch=$BRANCH\")|" PKGBUILD
|
||||
elif [ -n "$TAG" ]; then
|
||||
sed -i "s|^source=.*|source=(\"git+${REPO_URL}#tag=$TAG\")|" PKGBUILD
|
||||
fi
|
||||
makepkg -si --noconfirm
|
||||
|
||||
echo "Installing debloated packages..."
|
||||
echo "---------------------------------------------------------------"
|
||||
wget --retry-connrefused --tries=30 "$EXTRA_PACKAGES" -O ./get-debloated-pkgs.sh
|
||||
chmod +x ./get-debloated-pkgs.sh
|
||||
./get-debloated-pkgs.sh --add-common --prefer-nano
|
||||
get-debloated-pkgs --add-common --prefer-nano
|
||||
|
||||
if [ "$LOCAL_MODE" = true ]; then
|
||||
# For git version, we use portprotonqt-git
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
set -eu
|
||||
|
||||
SHARUN="https://raw.githubusercontent.com/pkgforge-dev/Anylinux-AppImages/refs/heads/main/useful-tools/quick-sharun.sh"
|
||||
ARCH="$(uname -m)"
|
||||
VERSION="$(cat ~/version)"
|
||||
export ARCH VERSION
|
||||
@@ -10,29 +9,93 @@ export OUTPATH=./dist
|
||||
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 UPINFO="gitea-releases-zsync|git.linux-gaming.ru|Linux-Gaming|PortProtonQt|latest|*$ARCH.AppImage.zsync"
|
||||
export DEPLOY_OPENGL=1
|
||||
export DEPLOY_SYS_PYTHON=1
|
||||
export DEPLOY_SDL=1
|
||||
export DEPLOY_PYTHON=1
|
||||
export MAIN_BIN=portprotonqt
|
||||
export OPTIMIZE_LAUNCH=1
|
||||
|
||||
# Adjust comp settings to bypass oom-killer
|
||||
export DWARFS_COMP="zstd:level=15 -S22 -B5"
|
||||
|
||||
# DEPLOY ALL LIBS
|
||||
wget --retry-connrefused --tries=30 "$SHARUN" -O ./quick-sharun
|
||||
chmod +x ./quick-sharun
|
||||
|
||||
# Add udev rules
|
||||
mkdir -p ./AppDir/etc/udev/rules.d
|
||||
cp /usr/lib/udev/rules.d/60-portprotonqt.rules ./AppDir/etc/udev/rules.d
|
||||
|
||||
# Add PortProton scripts
|
||||
# Copy manually to avoid tracing 208 .ppdb files with quick-sharun
|
||||
mkdir -p ./AppDir/share
|
||||
cp -r /usr/share/portproton ./AppDir/share
|
||||
|
||||
# QSoundEffect only needs PCM WAV and PulseAudio. Remove the optional native
|
||||
# PipeWire path and FFmpeg media backend before quick-sharun scans Qt plugins.
|
||||
pacman -Rdd --noconfirm libpipewire qt6-multimedia-ffmpeg
|
||||
|
||||
# Deploy dependencies
|
||||
# Qt libs have to be passed manually due to the app being a python script
|
||||
./quick-sharun \
|
||||
GAMEPAD_LIBRARY=$(find /usr/lib -type f \
|
||||
-path '*/site-packages/portprotonqt/libportprotonqt_gamepad.so' \
|
||||
-print -quit)
|
||||
test -n "$GAMEPAD_LIBRARY"
|
||||
quick-sharun \
|
||||
/usr/bin/portprotonqt* \
|
||||
/usr/bin/bash \
|
||||
/usr/bin/update-desktop-database \
|
||||
/usr/bin/update-mime-database \
|
||||
/usr/bin/vk_gpu_info \
|
||||
"$GAMEPAD_LIBRARY" \
|
||||
/usr/lib/libQt6Core.so* \
|
||||
/usr/lib/libQt6Gui.so* \
|
||||
/usr/lib/libQt6Multimedia.so* \
|
||||
/usr/lib/libQt6Network.so* \
|
||||
/usr/lib/libudev.so*
|
||||
/usr/lib/qt6/plugins/imageformats/libqwebp.so \
|
||||
/usr/lib/7zip/7z*
|
||||
|
||||
# quick-sharun removes MIME package XML files during dependency deployment
|
||||
mkdir -p ./AppDir/share/mime/packages
|
||||
cp /usr/share/mime/packages/ru.linux_gaming.PortProtonQt.xml \
|
||||
./AppDir/share/mime/packages
|
||||
|
||||
# DEPLOY_PYTHON copies the distro's complete Python installation. Remove
|
||||
# build/development content and PySide bindings not imported by PortProtonQt.
|
||||
PYTHON_DIR=$(find ./AppDir/lib -maxdepth 1 -type d -name 'python3.*' -print -quit)
|
||||
PYTHON_SITE=$PYTHON_DIR/site-packages
|
||||
PYSIDE_DIR=$PYTHON_SITE/PySide6
|
||||
|
||||
rm -rf \
|
||||
"$PYTHON_DIR"/ensurepip \
|
||||
"$PYTHON_DIR"/idlelib \
|
||||
"$PYTHON_DIR"/pydoc_data \
|
||||
"$PYTHON_DIR"/tkinter \
|
||||
"$PYTHON_DIR"/turtledemo \
|
||||
"$PYTHON_DIR"/venv \
|
||||
"$PYTHON_SITE"/Cython \
|
||||
"$PYTHON_SITE"/cython.py \
|
||||
"$PYTHON_SITE"/mesonbuild \
|
||||
"$PYTHON_SITE"/pygments \
|
||||
"$PYTHON_SITE"/pyximport \
|
||||
"$PYTHON_SITE"/setuptools \
|
||||
"$PYTHON_SITE"/vapoursynth \
|
||||
"$PYTHON_SITE"/wheel \
|
||||
"$PYTHON_SITE"/cython-*.dist-info \
|
||||
"$PYTHON_SITE"/meson-*.dist-info \
|
||||
"$PYTHON_SITE"/pygments-*.dist-info \
|
||||
"$PYTHON_SITE"/setuptools-*.dist-info \
|
||||
"$PYTHON_SITE"/vapoursynth-*.dist-info \
|
||||
"$PYTHON_SITE"/wheel-*.dist-info
|
||||
|
||||
find "$PYTHON_DIR" -depth -type d \( -name test -o -name tests \) \
|
||||
-exec rm -rf {} +
|
||||
find "$PYTHON_SITE" -type f -name '*.pyi' -delete
|
||||
|
||||
for module in "$PYSIDE_DIR"/Qt*.so; do
|
||||
case "${module##*/}" in
|
||||
QtCore.*|QtGui.*|QtMultimedia.*|QtNetwork.*|QtSvg.*|QtWidgets.*) continue ;;
|
||||
esac
|
||||
rm -f "$module"
|
||||
done
|
||||
rm -rf "$PYSIDE_DIR"/QtAsyncio
|
||||
|
||||
# Turn AppDir into AppImage
|
||||
./quick-sharun --make-appimage
|
||||
quick-sharun --make-appimage
|
||||
+23
-35
@@ -1,15 +1,27 @@
|
||||
pkgname=('portprotonqt' 'portprotonqt-steam-compat')
|
||||
pkgver=0.1.12
|
||||
# Maintainer: Boris Yumankulov <boriabloger[at]protonmail[dot]com>
|
||||
|
||||
pkgname=portprotonqt
|
||||
pkgver=1.5.0
|
||||
pkgrel=1
|
||||
pkgdesc="Modern GUI for managing and launching games from PortProton, Steam, and Epic Games Store"
|
||||
arch=('any')
|
||||
url="https://git.linux-gaming.ru/Boria138/PortProtonQt"
|
||||
pkgdesc="Game library manager and launcher for Linux"
|
||||
arch=('x86_64')
|
||||
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' '7zip')
|
||||
depends_aarch64=('muvm')
|
||||
makedepends=('meson' 'ninja' 'vulkan-headers' 'gettext')
|
||||
source=("git+https://git.linux-gaming.ru/Boria138/PortProtonQt#tag=v$pkgver")
|
||||
depends=('python-requests' 'python-babel' 'python-evdev' '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' 'file' 'findutils' 'gawk' 'grep' 'tar' 'xz' 'zstd' 'gzip' 'unrar' 'qt6-svg' 'qt6-imageformats' 'qt6-multimedia' 'pciutils' 'mesa-utils' 'vulkan-icd-loader' 'procps-ng' 'psmisc' '7zip' 'python-dbus-fast' 'sdl3' 'desktop-file-utils')
|
||||
makedepends=('meson' 'ninja' 'vulkan-headers' 'gettext' 'sdl3')
|
||||
conflicts=("portprotonqt-steam-compat")
|
||||
provides=('portprotonqt-steam-compat')
|
||||
replaces=('portprotonqt-steam-compat')
|
||||
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'
|
||||
)
|
||||
source=("git+https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt#tag=v$pkgver")
|
||||
sha256sums=('SKIP')
|
||||
|
||||
build() {
|
||||
@@ -17,35 +29,11 @@ build() {
|
||||
meson compile -C build
|
||||
}
|
||||
|
||||
package_portprotonqt() {
|
||||
pkgdesc="Modern GUI for managing and launching games from PortProton, Steam, and Epic Games Store"
|
||||
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-dbus-fast: System tab D-Bus integration'
|
||||
'python-qrcode: Wi-Fi QR code generation'
|
||||
)
|
||||
|
||||
package() {
|
||||
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"
|
||||
|
||||
# Remove steam-compat files from main package
|
||||
rm -rf "$pkgdir/usr/share/steam"
|
||||
}
|
||||
|
||||
package_portprotonqt-steam-compat() {
|
||||
pkgdesc="Steam compatibility tool for PortProtonQt"
|
||||
depends=('portprotonqt')
|
||||
|
||||
DESTDIR="$pkgdir" meson install -C build --skip-subprojects
|
||||
|
||||
# Keep only steam-compat files
|
||||
find "$pkgdir/usr" -mindepth 1 -type f -not -path "${pkgdir}/usr/share/steam*" -print0 | xargs -0 rm -f
|
||||
find "$pkgdir/usr" -mindepth 1 -type d -not -path "${pkgdir}/usr/share/steam*" -empty -delete
|
||||
}
|
||||
+23
-35
@@ -1,15 +1,27 @@
|
||||
pkgname=('portprotonqt-git' 'portprotonqt-git-steam-compat')
|
||||
# Maintainer: Boris Yumankulov <boriabloger[at]protonmail[dot]com>
|
||||
|
||||
pkgname=portprotonqt-git
|
||||
pkgver=.
|
||||
pkgrel=1
|
||||
pkgdesc="Modern GUI for managing and launching games from PortProton, Steam, and Epic Games Store (development build)"
|
||||
arch=('any')
|
||||
url="https://git.linux-gaming.ru/Boria138/PortProtonQt"
|
||||
pkgdesc="Game library manager and launcher for Linux (development build)"
|
||||
arch=('x86_64')
|
||||
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' '7zip')
|
||||
depends_aarch64=('muvm')
|
||||
makedepends=('meson' 'ninja' 'vulkan-headers' 'gettext')
|
||||
source=("git+https://git.linux-gaming.ru/Boria138/PortProtonQt.git")
|
||||
depends=('python-requests' 'python-babel' 'python-evdev' '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' 'file' 'findutils' 'gawk' 'grep' 'tar' 'xz' 'zstd' 'gzip' 'unrar' 'qt6-svg' 'qt6-imageformats' 'qt6-multimedia' 'pciutils' 'mesa-utils' 'vulkan-icd-loader' 'procps-ng' 'psmisc' '7zip' 'python-dbus-fast' 'sdl3' 'desktop-file-utils')
|
||||
makedepends=('meson' 'ninja' 'vulkan-headers' 'gettext' 'sdl3')
|
||||
conflicts=("portprotonqt-steam-compat")
|
||||
provides=('portprotonqt-steam-compat')
|
||||
replaces=('portprotonqt-steam-compat')
|
||||
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'
|
||||
)
|
||||
source=("git+https://git.linux-gaming.ru/Linux-Gaming/PortProtonQt.git")
|
||||
sha256sums=('SKIP')
|
||||
|
||||
pkgver() {
|
||||
@@ -18,39 +30,15 @@ pkgver() {
|
||||
}
|
||||
|
||||
build() {
|
||||
arch-meson PortProtonQt build
|
||||
arch-meson PortProtonQt build -Dnightly=true
|
||||
meson compile -C build
|
||||
}
|
||||
|
||||
package_portprotonqt-git() {
|
||||
pkgdesc="Modern GUI for managing and launching games from PortProton, Steam, and Epic Games Store (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-dbus-fast: System tab D-Bus integration'
|
||||
'python-qrcode: Wi-Fi QR code generation'
|
||||
)
|
||||
|
||||
package() {
|
||||
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"
|
||||
|
||||
# Remove steam-compat files from main package
|
||||
rm -rf "$pkgdir/usr/share/steam"
|
||||
}
|
||||
|
||||
package_portprotonqt-git-steam-compat() {
|
||||
pkgdesc="Steam compatibility tool for PortProtonQt (development build)"
|
||||
depends=('portprotonqt-git')
|
||||
|
||||
DESTDIR="$pkgdir" meson install -C build --skip-subprojects
|
||||
|
||||
# Keep only steam-compat files
|
||||
find "$pkgdir/usr" -mindepth 1 -type f -not -path "${pkgdir}/usr/share/steam*" -print0 | xargs -0 rm -f
|
||||
find "$pkgdir/usr" -mindepth 1 -type d -not -path "${pkgdir}/usr/share/steam*" -empty -delete
|
||||
}
|
||||
Executable
BIN
Binary file not shown.
+33
-25
@@ -1,5 +1,5 @@
|
||||
%global pypi_name portprotonqt
|
||||
%global pypi_version 0.1.12
|
||||
%global pypi_version 1.5.0
|
||||
%global oname PortProtonQt
|
||||
%global build_timestamp %(date +"%Y%m%d")
|
||||
%global _python_no_extras_requires 1
|
||||
@@ -9,11 +9,11 @@
|
||||
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: Game library manager and launcher for Linux (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
|
||||
@@ -22,6 +22,7 @@ BuildRequires: git
|
||||
BuildRequires: gettext
|
||||
BuildRequires: systemd-rpm-macros
|
||||
BuildRequires: vulkan-loader-devel
|
||||
BuildRequires: pkgconfig(sdl3)
|
||||
BuildRequires: gcc
|
||||
|
||||
Obsoletes: python3-%{pypi_name}-git < %{version}-%{release}
|
||||
@@ -29,64 +30,68 @@ 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-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: qt6-qtsvg
|
||||
Requires: qt6-qtimageformats
|
||||
Requires: qt6-qtmultimedia
|
||||
Requires: cabextract
|
||||
Requires: gzip
|
||||
Requires: unzip
|
||||
Requires: curl
|
||||
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
|
||||
Requires: desktop-file-utils
|
||||
|
||||
# System Tab
|
||||
Recommends: NetworkManager
|
||||
Recommends: bluez
|
||||
Recommends: upower
|
||||
Recommends: pulseaudio-utils
|
||||
Recommends: python3-dbus-fast
|
||||
Recommends: python3-qrcode
|
||||
|
||||
%ifarch aarch64
|
||||
Requires: muvm
|
||||
%endif
|
||||
# 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.
|
||||
|
||||
%package -n %{pypi_name}-git-steam-compat
|
||||
Summary: Steam compatibility tool for PortProtonQt (development build)
|
||||
License: GPL-3.0
|
||||
Requires: %{pypi_name}-git = %{version}-%{release}
|
||||
|
||||
%description -n %{pypi_name}-git-steam-compat
|
||||
Steam compatibility tool integration for PortProtonQt. This package installs
|
||||
the necessary files to use PortProtonQt as a Proton compatibility tool in Steam.
|
||||
An application for managing a game library and launching games on Linux. It brings games from different sources together in one place.
|
||||
|
||||
%{?python_disable_dependency_generator}
|
||||
|
||||
%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
|
||||
@@ -107,13 +112,16 @@ install -Dpm 0644 ./completions/_portprotonqt -t %{buildroot}%{zsh_completions_d
|
||||
%{_datadir}/icons/hicolor/scalable/apps/ru.linux_gaming.PortProtonQt.svg
|
||||
%{_metainfodir}/ru.linux_gaming.PortProtonQt.metainfo.xml
|
||||
%{_udevrulesdir}/60-portprotonqt.rules
|
||||
%{_sysusersdir}/portprotonqt.conf
|
||||
%{_datadir}/polkit-1/rules.d/ru.linux_gaming.PortProtonQt.rules
|
||||
%{_datadir}/applications/ru.linux_gaming.PortProtonQt.desktop
|
||||
%{_datadir}/applications/ru.linux_gaming.PortProtonQt.log.desktop
|
||||
%{_datadir}/applications/ru.linux_gaming.PortProtonQt.silent.desktop
|
||||
%{_datadir}/mime/packages/ru.linux_gaming.PortProtonQt.xml
|
||||
%{_datadir}/portproton/scripts/
|
||||
%{_datadir}/portproton/conf/
|
||||
%{bash_completions_dir}/portprotonqt
|
||||
%{fish_completions_dir}/portprotonqt.fish
|
||||
%{zsh_completions_dir}/_portprotonqt
|
||||
|
||||
%files -n %{pypi_name}-git-steam-compat
|
||||
%{_datadir}/steam/compatibilitytools.d/PortProtonQt/
|
||||
|
||||
%changelog
|
||||
+32
-25
@@ -1,16 +1,16 @@
|
||||
%global pypi_name portprotonqt
|
||||
%global pypi_version 0.1.12
|
||||
%global pypi_version 1.5.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: Game library manager and launcher for Linux
|
||||
|
||||
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
|
||||
@@ -19,6 +19,7 @@ BuildRequires: git
|
||||
BuildRequires: gettext
|
||||
BuildRequires: systemd-rpm-macros
|
||||
BuildRequires: vulkan-loader-devel
|
||||
BuildRequires: pkgconfig(sdl3)
|
||||
BuildRequires: gcc
|
||||
|
||||
Obsoletes: python3-%{pypi_name} < %{version}-%{release}
|
||||
@@ -26,60 +27,63 @@ 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-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: qt6-qtsvg
|
||||
Requires: qt6-qtimageformats
|
||||
Requires: qt6-qtmultimedia
|
||||
Requires: cabextract
|
||||
Requires: gzip
|
||||
Requires: unzip
|
||||
Requires: curl
|
||||
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
|
||||
Requires: desktop-file-utils
|
||||
|
||||
# System Tab
|
||||
Recommends: NetworkManager
|
||||
Recommends: bluez
|
||||
Recommends: upower
|
||||
Recommends: pulseaudio-utils
|
||||
Recommends: python3-dbus-fast
|
||||
Recommends: python3-qrcode
|
||||
|
||||
%ifarch aarch64
|
||||
Requires: muvm
|
||||
%endif
|
||||
# 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.
|
||||
|
||||
%package -n %{pypi_name}-steam-compat
|
||||
Summary: Steam compatibility tool for PortProtonQt
|
||||
License: GPL-3.0
|
||||
Requires: %{pypi_name} = %{version}-%{release}
|
||||
|
||||
%description -n %{pypi_name}-steam-compat
|
||||
Steam compatibility tool integration for PortProtonQt. This package installs
|
||||
the necessary files to use PortProtonQt as a Proton compatibility tool in Steam.
|
||||
An application for managing a game library and launching games on Linux. It brings games from different sources together in one place.
|
||||
|
||||
%{?python_disable_dependency_generator}
|
||||
|
||||
%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}
|
||||
|
||||
@@ -106,13 +110,16 @@ install -Dpm 0644 ./completions/_portprotonqt -t %{buildroot}%{zsh_completions_d
|
||||
%{_datadir}/icons/hicolor/scalable/apps/ru.linux_gaming.PortProtonQt.svg
|
||||
%{_metainfodir}/ru.linux_gaming.PortProtonQt.metainfo.xml
|
||||
%{_udevrulesdir}/60-portprotonqt.rules
|
||||
%{_sysusersdir}/portprotonqt.conf
|
||||
%{_datadir}/polkit-1/rules.d/ru.linux_gaming.PortProtonQt.rules
|
||||
%{_datadir}/applications/ru.linux_gaming.PortProtonQt.desktop
|
||||
%{_datadir}/applications/ru.linux_gaming.PortProtonQt.log.desktop
|
||||
%{_datadir}/applications/ru.linux_gaming.PortProtonQt.silent.desktop
|
||||
%{_datadir}/mime/packages/ru.linux_gaming.PortProtonQt.xml
|
||||
%{_datadir}/portproton/scripts/
|
||||
%{_datadir}/portproton/conf/
|
||||
%{bash_completions_dir}/portprotonqt
|
||||
%{fish_completions_dir}/portprotonqt.fish
|
||||
%{zsh_completions_dir}/_portprotonqt
|
||||
|
||||
%files -n %{pypi_name}-steam-compat
|
||||
%{_datadir}/steam/compatibilitytools.d/PortProtonQt/
|
||||
|
||||
%changelog
|
||||
@@ -1,4 +0,0 @@
|
||||
int main(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
Executable
BIN
Binary file not shown.
@@ -0,0 +1 @@
|
||||
g portprotonqt - -
|
||||
@@ -2,13 +2,13 @@
|
||||
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
|
||||
Comment=Game library manager and launcher for Linux
|
||||
Comment[ru]=Приложение для управления игровой библиотекой и запуска игр на Linux
|
||||
Comment[es]=Gestor de biblioteca de juegos y lanzador para Linux
|
||||
Comment[pt]=Gerenciador de biblioteca de jogos e inicializador para Linux
|
||||
Comment[de]=Spielebibliotheksverwaltung und Spielestarter für Linux
|
||||
Terminal=false
|
||||
Icon=ru.linux_gaming.PortProtonQt
|
||||
StartupWMClass=ru.linux_gaming.PortProtonQt
|
||||
Categories=Game;Utility;
|
||||
MimeType=x-scheme-handler/portproton;application/x-ms-dos-exec;application/x-executable;application/x-dosexec;application/x-iso9660-image;application/x-cd-image;
|
||||
MimeType=x-scheme-handler/portproton;x-scheme-handler/portprotonqt;application/x-portproton-prefix-backup;application/x-portproton-autoinstall;application/x-ms-dos-exec;application/x-ms-dos-executable;application/x-msdos-program;application/vnd.microsoft.portable-executable;application/x-ms-dos-batch;application/x-bat;application/x-msi;text/x-ms-regedit;application/x-dosexec;application/x-iso9660-image;application/x-cd-image;application/x-raw-disk-image;application/x-mdf;application/x-mds;application/x-nrg;
|
||||
@@ -0,0 +1,20 @@
|
||||
[Desktop Entry]
|
||||
Name=PortProtonQt (log)
|
||||
Name[ru]=PortProtonQt (режим лога)
|
||||
Name[es]=PortProtonQt (modo de registro)
|
||||
Name[pt]=PortProtonQt (modo de registro)
|
||||
Name[de]=PortProtonQt (Protokollmodus)
|
||||
Exec=portprotonqt --log %u
|
||||
Type=Application
|
||||
Comment=Launch Windows applications with logging through PortProtonQt
|
||||
Comment[ru]=Запуск Windows-приложений с записью лога через PortProtonQt
|
||||
Comment[es]=Ejecuta aplicaciones de Windows con registro mediante PortProtonQt
|
||||
Comment[pt]=Executa aplicativos do Windows com registro pelo PortProtonQt
|
||||
Comment[de]=Startet Windows-Anwendungen mit Protokollierung über PortProtonQt
|
||||
Terminal=false
|
||||
Icon=ru.linux_gaming.PortProtonQt
|
||||
StartupWMClass=ru.linux_gaming.PortProtonQt
|
||||
Categories=Game;
|
||||
NoDisplay=true
|
||||
MimeType=application/x-ms-dos-executable;application/x-msdos-program;application/x-ms-dos-exec;application/x-dosexec;application/vnd.microsoft.portable-executable;
|
||||
StartupNotify=true
|
||||
@@ -0,0 +1,20 @@
|
||||
[Desktop Entry]
|
||||
Name=PortProtonQt (silent)
|
||||
Name[ru]=PortProtonQt (тихий режим)
|
||||
Name[es]=PortProtonQt (modo silencioso)
|
||||
Name[pt]=PortProtonQt (modo silencioso)
|
||||
Name[de]=PortProtonQt (stiller Modus)
|
||||
Exec=portprotonqt --silent %u
|
||||
Type=Application
|
||||
Comment=Launch Windows applications silently through PortProtonQt
|
||||
Comment[ru]=Тихий запуск Windows-приложений через PortProtonQt
|
||||
Comment[es]=Ejecuta aplicaciones de Windows silenciosamente mediante PortProtonQt
|
||||
Comment[pt]=Executa aplicativos do Windows silenciosamente pelo PortProtonQt
|
||||
Comment[de]=Startet Windows-Anwendungen lautlos über PortProtonQt
|
||||
Terminal=false
|
||||
Icon=ru.linux_gaming.PortProtonQt
|
||||
StartupWMClass=ru.linux_gaming.PortProtonQt
|
||||
Categories=Game;
|
||||
NoDisplay=true
|
||||
MimeType=application/x-ms-dos-executable;application/x-msdos-program;application/x-ms-dos-exec;application/x-dosexec;application/vnd.microsoft.portable-executable;
|
||||
StartupNotify=true
|
||||
@@ -4,78 +4,174 @@
|
||||
<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>Game library manager and launcher for Linux</summary>
|
||||
<summary xml:lang="ru">Приложение для управления игровой библиотекой и запуска игр на Linux</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>
|
||||
An application for managing a game library and launching games on Linux. It brings games from different sources together in one place.
|
||||
</p>
|
||||
<p xml:lang="ru">
|
||||
Это приложение предоставляет стильный и интуитивно понятный графический интерфейс для управления и запуска игр из PortProton, Steam и Epic Games Store. Оно объединяет ваши игровые библиотеки в одном удобном хабе для простой навигации и организации. Лёгкая структура и кроссплатформенная поддержка обеспечивают целостный игровой опыт, устраняя необходимость в использовании нескольких лаунчеров. Уникальная интеграция с PortProton улучшает игровой процесс на Linux, позволяя с лёгкостью запускать Windows-игры с минимальными настройками.
|
||||
</p>
|
||||
Приложение для управления игровой библиотекой и запуска игр на 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.5.0" date="2026-10-14">
|
||||
<description></description>
|
||||
</release>
|
||||
<release version="1.4.1" date="2026-08-26">
|
||||
<description/>
|
||||
</release>
|
||||
<release version="1.4.0" date="2026-08-23">
|
||||
<description/>
|
||||
</release>
|
||||
<release version="1.3.2" date="2026-08-10">
|
||||
<description/>
|
||||
</release>
|
||||
<release version="1.3.1" date="2026-07-17">
|
||||
<description/>
|
||||
</release>
|
||||
<release version="1.3.0" date="2026-07-13">
|
||||
<description/>
|
||||
</release>
|
||||
<release version="1.2.0" date="2026-06-10">
|
||||
<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/exe_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/Boria138/PortProtonQt/raw/branch/main/portprotonqt/themes/standart/images/screenshots/wine_settings.jpg</image>
|
||||
<caption>Wine Settings</caption>
|
||||
<caption xml:lang="ru">Настройки Wine</caption>
|
||||
<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,25 @@
|
||||
<?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-type type="application/x-portproton-autoinstall">
|
||||
<comment>PortProton auto install script</comment>
|
||||
<comment xml:lang="ru">Скрипт автоустановки PortProton</comment>
|
||||
<glob pattern="*.ppai"/>
|
||||
</mime-type>
|
||||
<mime-type type="application/x-portproton-ppdb">
|
||||
<comment>PortProton configuration</comment>
|
||||
<comment xml:lang="ru">Конфигурация PortProton</comment>
|
||||
<sub-class-of type="text/plain"/>
|
||||
<glob pattern="*.ppdb" weight="100"/>
|
||||
</mime-type>
|
||||
<mime-type type="application/x-portproton-user-conf">
|
||||
<comment>PortProton user configuration</comment>
|
||||
<comment xml:lang="ru">Пользовательская конфигурация PortProton</comment>
|
||||
<sub-class-of type="text/plain"/>
|
||||
<glob pattern="user.conf" weight="100"/>
|
||||
</mime-type>
|
||||
</mime-info>
|
||||
@@ -1,21 +1,15 @@
|
||||
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]);
|
||||
if (!subject.local || !subject.active ||
|
||||
!subject.isInGroup("portprotonqt")) {
|
||||
return polkit.Result.NOT_HANDLED;
|
||||
}
|
||||
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;
|
||||
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") {
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
|
||||
return polkit.Result.NOT_HANDLED;
|
||||
});
|
||||
Executable
+679
@@ -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
@@ -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.
|
Before Width: | Height: | Size: 17 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 38 KiB |
File diff suppressed because it is too large.
Load diff
@@ -6,4 +6,4 @@
|
||||
export PW_WINE_USE="WINE-9.14-AMD64"
|
||||
export PW_PREFIX_NAME="ACT_OF_WAR"
|
||||
|
||||
gui_proton_downloader silent "$PW_WINE_USE"
|
||||
gui_proton_downloader "$PW_WINE_USE"
|
||||
@@ -11,7 +11,7 @@ fi
|
||||
|
||||
export PW_VULKAN_USE=1
|
||||
|
||||
add_in_start_portwine () {
|
||||
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
|
||||
|
||||
@@ -7,4 +7,4 @@ export PW_WINE_USE="PROTON_LG_7-54"
|
||||
export PW_PREFIX_NAME="APOLLO_JUSTICE"
|
||||
export WINEDLLOVERRIDES="winmm.dll=n,b"
|
||||
|
||||
gui_proton_downloader silent "$PW_WINE_USE"
|
||||
gui_proton_downloader "$PW_WINE_USE"
|
||||
@@ -14,7 +14,7 @@ export PW_WINE_FULLSCREEN_FSR="0"
|
||||
export PW_WINE_USE="PROTON_LG"
|
||||
export WINE_SIMULATE_WRITECOPY="1"
|
||||
|
||||
add_in_start_portwine () {
|
||||
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"
|
||||
|
||||
@@ -10,7 +10,7 @@ export PW_DGV2_VRAM="1024"
|
||||
export PW_DGV2_RESOLUTION="1280x720"
|
||||
export PW_DGV2_VIDEOCARD="dgVoodoo2 Virtual 3D"
|
||||
|
||||
add_in_start_portwine () {
|
||||
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"
|
||||
|
||||
@@ -9,7 +9,7 @@ export PW_USE_FSYNC="0"
|
||||
export PW_USE_ESYNC="0"
|
||||
export PW_PREFIX_NAME="DOTNET"
|
||||
|
||||
# add_in_start_portwine () {
|
||||
# add_in_start_portproton () {
|
||||
# if [[ ! -f "${PATH_TO_GAME}/dxvk.conf" ]] ; then
|
||||
# echo "d3d9.shaderModel = 1" > "${PATH_TO_GAME}/dxvk.conf"
|
||||
# fi
|
||||
|
||||
@@ -7,4 +7,4 @@
|
||||
export PW_WINE_USE="PROTON_LG"
|
||||
export PW_PREFIX_NAME="EAAPP"
|
||||
export WINE_SIMULATE_WRITECOPY="1"
|
||||
add_in_start_portwine () { export LC_CTYPE=C ;}
|
||||
add_in_start_portproton () { export LC_CTYPE=C ;}
|
||||
@@ -10,6 +10,6 @@ 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_portwine () {
|
||||
# add_in_start_portproton () {
|
||||
# regdlloverrides "RDR2.exe:vulkan-1=n,b"
|
||||
# }
|
||||
@@ -11,7 +11,7 @@ export PW_PREFIX_NAME="GOG"
|
||||
export DISABLE_CP_DEFPFX="1"
|
||||
export PW_WINE_USE="PROTON_LG_9-12"
|
||||
|
||||
add_in_start_portwine ()
|
||||
add_in_start_portproton ()
|
||||
{
|
||||
if [[ -e "${WINEPREFIX}/drive_c/users/${USER}/Local Settings/Application Data/GOG.com/Galaxy/Configuration/config.json" ]] ; then
|
||||
sed -i 's/"featureOverlay" : true,/"featureOverlay" : false,/' "${WINEPREFIX}/drive_c/${USER}/Local Settings/Application Data/GOG.com/Galaxy/Configuration/config.json"
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
#Author: barry
|
||||
#JumpinJack.exe
|
||||
#Rating=1-5
|
||||
export PW_WINE_USE="WINE_LG"
|
||||
@@ -5,7 +5,7 @@
|
||||
#####################examples###########################
|
||||
export PW_DLL_INSTALL="vcrun2019"
|
||||
|
||||
ADD_IN_START_PORTWINE () {
|
||||
add_in_start_portproton () {
|
||||
if [[ -f "${PATH_TO_GAME}/EOSSDK-Win64-Shipping.dll" ]] && [[ ! -f "${PATH_TO_GAME}/eossdk-win64-shipping.dll" ]] ; then
|
||||
try_copy_file "${PATH_TO_GAME}/EOSSDK-Win64-Shipping.dll" "${PATH_TO_GAME}/eossdk-win64-shipping.dll"
|
||||
fi
|
||||
|
||||
@@ -26,6 +26,6 @@ export DISABLE_CP_DEFPFX=1
|
||||
try_remove_dir "${PORT_DATA_PATH}/data/dist/WINE_LOL_GE_8.12"
|
||||
gui_proton_downloader silent "${PW_WINE_USE}"
|
||||
|
||||
add_in_start_portwine () {
|
||||
add_in_start_portproton () {
|
||||
echo ""
|
||||
}
|
||||
@@ -10,7 +10,7 @@ else
|
||||
export PW_COMMENT_DB="At the moment the game works, but it takes a long time to start from the Launcher.\nAfter installing the game, when restarting, the game will start quickly."
|
||||
fi
|
||||
|
||||
add_in_start_portwine ()
|
||||
add_in_start_portproton ()
|
||||
{
|
||||
if [[ -f "${PATH_TO_GAME}/MWO.exe" ]] ; then
|
||||
#echo "Override $PW_EXE_FILE to ${PATH_TO_GAME}/MWO.exe"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
#Author: deck
|
||||
#StreetFighterV.exe
|
||||
#Rating=1-5
|
||||
export PW_VULKAN_USE="2"
|
||||
export PW_WINE_USE="WINE_LG"
|
||||
export PORTPROTON_NAME="StreetFighterV"
|
||||
#!/usr/bin/env bash
|
||||
#Author: deck
|
||||
#StreetFighterV.exe
|
||||
#Rating=1-5
|
||||
export PW_VULKAN_USE="2"
|
||||
export PW_WINE_USE="WINE_LG"
|
||||
export PORTPROTON_NAME="StreetFighterV"
|
||||
@@ -16,7 +16,7 @@ export PW_USE_GSTREAMER="1"
|
||||
export PW_VULKAN_USE="2"
|
||||
export PW_WINE_USE="WINE_LG"
|
||||
|
||||
add_in_start_portwine () {
|
||||
add_in_start_portproton () {
|
||||
if [[ -f "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg" ]] ; then
|
||||
sed -i '/Software\\\\Wine\\\\Explorer/d' "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg"
|
||||
fi
|
||||
|
||||
@@ -14,4 +14,4 @@ export PW_PREFIX_NAME="DOTNET"
|
||||
export PW_DLL_INSTALL=""
|
||||
export PW_DISABLED_CREATE_DB="1"
|
||||
export WINE_LARGE_ADDRESS_AWARE="0"
|
||||
export PW_WINE_USE="PROTON_GE"
|
||||
export PW_WINE_USE="PROTON_LG"
|
||||
@@ -7,7 +7,7 @@ export PW_VULKAN_USE=6
|
||||
export PW_DLL_INSTALL="vcrun2019 d3dcompiler_43 d3dcompiler_47" # Install DLL in port prefix (used winetricks)
|
||||
export WINEDLLOVERRIDES="gfclient0_msvc140=n;ucrtbase=b"
|
||||
########################################################
|
||||
#add_in_start_portwine () {
|
||||
#add_in_start_portproton () {
|
||||
#
|
||||
#while true; do
|
||||
# if [[ -z "`pgrep GameforgeClient`" ]] ; then
|
||||
|
||||
@@ -16,7 +16,7 @@ export PW_USE_ESYNC="1"
|
||||
export PW_USE_FSYNC="1"
|
||||
export PW_USE_NTSYNC="0"
|
||||
|
||||
add_in_start_portwine () {
|
||||
add_in_start_portproton () {
|
||||
if [[ -f "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml" ]] ; then
|
||||
sed -i 's%<igbHardwareAccelerationEnabled> true </igbHardwareAccelerationEnabled>%<igbHardwareAccelerationEnabled> false </igbHardwareAccelerationEnabled>%' "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml"
|
||||
fi
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@
|
||||
export PW_VULKAN_USE=0
|
||||
export MESA_EXTENSION_MAX_YEAR=2002
|
||||
export __GL_ExtensionStringVersion=17700
|
||||
add_in_start_portwine ()
|
||||
add_in_start_portproton ()
|
||||
{
|
||||
if [[ ! -e "$PATH_TO_GAME/0_Proton_PW_MoHAA" ]] ; then
|
||||
touch "$PATH_TO_GAME/0_Proton_PW_MoHAA" && mv "$PATH_TO_GAME/main/newconfig.cfg" "$PATH_TO_GAME/main/newconfig.cfg.bak" && mv "$PATH_TO_GAME/main/configs/unnamedsoldier.cfg" "$PATH_TO_GAME/main/configs/unnamedsoldier.cfg.bak" && mv "$PATH_TO_GAME/mainta/newconfig.cfg" "$PATH_TO_GAME/mainta/newconfig.cfg.bak" && mv "$PATH_TO_GAME/mainta/configs/unnamedsoldier.cfg" "$PATH_TO_GAME/mainta/configs/unnamedsoldier.cfg.bak" && mv "$PATH_TO_GAME/maintt/newconfig.cfg" "$PATH_TO_GAME/maintt/newconfig.cfg.bak" && mv "$PATH_TO_GAME/maintt/configs/unnamedsoldier.cfg" "$PATH_TO_GAME/maintt/configs/unnamedsoldier.cfg.bak" &&
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
#Author: barry
|
||||
#nsgame.exe
|
||||
#Rating=1-5
|
||||
export PW_WINE_USE="WINE_LG"
|
||||
@@ -13,7 +13,7 @@ export LAUNCH_PARAMETERS="-cef-disable-gpu-compositing"
|
||||
|
||||
export PW_VULKAN_USE="2"
|
||||
|
||||
add_in_start_portwine () {
|
||||
add_in_start_portproton () {
|
||||
echo "Disabled silent autostart steam."
|
||||
if [[ -f "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg" ]] ; then
|
||||
sed -i '/steam.exe\\" -silent"/d' "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/user.reg"
|
||||
|
||||
@@ -14,7 +14,7 @@ export PW_USE_D3D_EXTRAS="1"
|
||||
export PW_PREFIX_NAME="WGC"
|
||||
export PW_USE_SHADER_CACHE="0"
|
||||
|
||||
add_in_start_portwine () {
|
||||
add_in_start_portproton () {
|
||||
if [[ -f "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml" ]] ; then
|
||||
sed -i 's%<igbHardwareAccelerationEnabled> true </igbHardwareAccelerationEnabled>%<igbHardwareAccelerationEnabled> false </igbHardwareAccelerationEnabled>%' "${PORT_DATA_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/users/${USER}/AppData/Roaming/Wargaming.net/WorldOfTanks/preferences.xml"
|
||||
fi
|
||||
|
||||
@@ -6,14 +6,13 @@ export PW_VULKAN_USE="0"
|
||||
export PW_WINE_USE="PROTON_LG"
|
||||
export PW_PREFIX_NAME="STUDENT"
|
||||
export PW_DISABLED_CREATE_DB="1"
|
||||
export PW_ICON_FOR_YAD="${PORT_DATA_PATH}/data/img/setup.png"
|
||||
export PW_USE_FSYNC="0"
|
||||
export PW_USE_ESYNC="0"
|
||||
export PW_DLL_INSTALL=""
|
||||
export WINEDLLOVERRIDES="mscoree,mshtml="
|
||||
export DISABLE_CP_DEFPFX="1"
|
||||
|
||||
add_in_stop_portwine () {
|
||||
add_in_stop_portproton () {
|
||||
# pw_find_exe news
|
||||
export PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/Ученик/Ученик.exe"
|
||||
portwine_create_shortcut
|
||||
|
||||
@@ -6,14 +6,13 @@ export PW_VULKAN_USE="0"
|
||||
export PW_WINE_USE="PROTON_LG"
|
||||
export PW_PREFIX_NAME="TEACHER"
|
||||
export PW_DISABLED_CREATE_DB="1"
|
||||
export PW_ICON_FOR_YAD="${PORT_DATA_PATH}/data/img/setup.png"
|
||||
export PW_USE_FSYNC="0"
|
||||
export PW_USE_ESYNC="0"
|
||||
export PW_DLL_INSTALL=""
|
||||
export WINEDLLOVERRIDES="mscoree,mshtml="
|
||||
export DISABLE_CP_DEFPFX="1"
|
||||
|
||||
add_in_stop_portwine () {
|
||||
add_in_stop_portproton () {
|
||||
# pw_find_exe news
|
||||
export PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/Учитель/Учитель.exe"
|
||||
portwine_create_shortcut
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: Age of Empires Online
|
||||
# image: celeste
|
||||
# info_en: A multiplayer real-time strategy game where players build their civilizations, gather resources, and battle against opponents. The game features a unique economic system and the ability to develop cities through various missions and quests.
|
||||
# info_ru: Многопользовательская стратегия в реальном времени, где игроки строят свои цивилизации, собирают ресурсы и сражаются с противниками. Игра предлагает уникальную экономическую систему и возможность развивать свои города с помощью различных миссий и задач.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="AGE_OF_EMPIRES_ONLINE"
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Celeste.Installer.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Age of Empires Online"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://github.com/ProjectCeleste/Celeste.Launcher/releases/latest/download/Celeste.Installer.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/users/steamuser/AppData/Roaming/ProjectCeleste/Celeste Launcher.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: Albion Online
|
||||
# image: albiononline
|
||||
# info_en: A multiplayer sandbox MMORPG where players can explore an open world, engage in crafting, gather resources, and battle against other players. The game features a unique class system that allows players to change their roles based on the gear they equip.
|
||||
# info_ru: Многопользовательская песочница в жанре MMORPG, где игроки могут исследовать открытый мир, заниматься ремеслом, добычей ресурсов и сражаться с другими игроками. Игра предлагает уникальную систему классов, позволяющую игрокам изменять свои роли в зависимости от выбранного снаряжения.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="ALBION_ONLINE"
|
||||
export LAUNCH_PARAMETERS="/S"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/albion-online-setup.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Albion Online"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://live.albiononline.com/clients/20260311101310/albion-online-setup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/AlbionOnline/launcher/AlbionLauncher.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# author: chal55rus (Sergey P.)
|
||||
# type: games
|
||||
# name: Ankama Launcher
|
||||
# image: ankama
|
||||
# info_en: Launcher for Ankama studio games.
|
||||
# info_ru: Лаунчер для игр Ankama.
|
||||
########################################################################
|
||||
export LAUNCH_PARAMETERS="/S"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Ankama-Setup.exe"
|
||||
export PW_WINE_USE="WINE_LG"
|
||||
export PW_PREFIX_NAME="ANKAMA"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://download.ankama.com/launcher/full/win/" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
get_and_set_reg_file --add 'Software\Wine\X11 Driver' 'Decorated' 'REG_SZ' "N" "user"
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/users/steamuser/AppData/Local/Programs/Ankama Launcher/Ankama Launcher.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Ankama Launcher"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: Anomaly Zone
|
||||
# image: anomalyzone
|
||||
# info_en: An action game about stalkers, where players explore mysterious worlds and fight against a variety of opponents. The game offers an exciting storyline and the opportunity to improve the character by unlocking new abilities and equipment.
|
||||
# info_ru: Экшен-игра про сталкеров, где игроки исследуют таинственные миры и сражаются с разнообразными противниками. Игра предлагает захватывающий сюжет и возможность улучшать персонажа, открывая новые способности и снаряжение.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="ANOMALY_ZONE"
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/az_webinst.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Anomaly Zone"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://anomaly-zone.ru/file/az_webinst.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_kill_autostart Launcher.exe &
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files/New Story Games/Anomaly-Zone/Launcher.exe"
|
||||
pw_create_unique_exe
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: Arizona Games Launcher
|
||||
# image: arizonagameslauncher
|
||||
# info_en: Launcher for the Arizona Role Play game.
|
||||
# info_ru: Лаунчер для игры Arizona Role Play.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="ARIZONA_GAMES_LAUNCHER"
|
||||
export LAUNCH_PARAMETERS="/S"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Arizona Installer.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Arizona Games Launcher"
|
||||
export PW_VULKAN_USE="0"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://pc.az-ins.com/Arizona%20Launcher.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_kill_autostart "Arizona Games" &
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/users/steamuser/AppData/Local/Programs/Arizona Games Launcher/Arizona Games Launcher.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,23 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: if984 (Maksim K.)
|
||||
# type: emulators
|
||||
# name: Azahar
|
||||
# image: azahar
|
||||
# info_en: An open source Nintendo 3DS emulator based on Citra, designed to run games with support for enhanced resolutions and advanced emulation settings.
|
||||
# info_ru: Эмулятор Nintendo 3DS с открытым исходным кодом на основе Citra, созданный для запуска игр с поддержкой улучшенного разрешения и расширенных настроек эмуляции.
|
||||
##########################################################################
|
||||
export PW_AZAHAR_VERSION=$(curl -s "https://github.com/azahar-emu/azahar/releases" | grep -oP '/azahar-emu/azahar/releases/tag/\K[0-9.]+(-[a-z0-9]+)?' | grep -v -- '-[a-z0-9]' | sort -Vu | tail -n1)
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/azahar-$PW_AZAHAR_VERSION-windows-msys2-installer.exe"
|
||||
export PW_PREFIX_NAME="AZAHAR"
|
||||
start_portwine
|
||||
if try_download "https://github.com/azahar-emu/azahar/releases/download/$PW_AZAHAR_VERSION/azahar-$PW_AZAHAR_VERSION-windows-msys2-installer.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files/Azahar/azahar.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Azahar"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: Castro-Fidel (linux-gaming.ru)
|
||||
# type: games
|
||||
# name: Battle.net Launcher
|
||||
# image: battle_net
|
||||
# info_en: Launcher for Activision and Blizzard studio games.
|
||||
# info_ru: Лаунчер для игр Activision и Blizzard.
|
||||
########################################################################
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Battle.net-Setup.exe"
|
||||
export PW_WINE_USE="PROTON_LG"
|
||||
export WINEDLLOVERRIDES="locationapi="
|
||||
export PW_PREFIX_NAME="BATTLE_NET"
|
||||
export WINE_SIMULATE_WRITECOPY="1"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://battle.net/download/getInstallerForGame?os=win&version=LIVE&gameProgram=BATTLENET_APP" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
try_remove_dir "$WINEPREFIX/drive_c/ProgramData/Battle.net"
|
||||
pw_kill_autostart Battle.net.exe &
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$(find "$WINEPREFIX/drive_c/" -type f -name "Battle.net.exe" | grep "Battle.net/Battle.net.exe")"
|
||||
portwine_create_shortcut
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,29 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: Castro-Fidel (linux-gaming.ru)
|
||||
# type: games
|
||||
# name: Black Desert Online (RU)
|
||||
# image: bdo
|
||||
# info_en: A massively multiplayer online role-playing game set in an open world, renowned for its stunning graphics and deep character customization system. Players can explore vast lands, complete quests, engage in PvP battles, and participate in various crafting activities.
|
||||
# info_ru: Многопользовательская ролевая игра с открытым миром, известная своей потрясающей графикой и глубокой системой кастомизации персонажей. Игроки могут исследовать обширные земли, выполнять задания, участвовать в PvP-сражениях и заниматься различными ремеслами.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="DOTNET"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/BlackDesert_Installer_RU.exe"
|
||||
export LAUNCH_PARAMETERS="/silent"
|
||||
export PW_USE_D3D_EXTRAS="1"
|
||||
export PW_WINE_USE="PROTON_LG"
|
||||
|
||||
pw_clear_pfx
|
||||
start_portwine
|
||||
wait_wineserver
|
||||
|
||||
if try_download "https://nez-o-dn.playblackdesert.com/UploadData/installer/BlackDesert_Installer_RU.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Pearlabyss/BlackDesert/BlackDesertLauncher.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Black Desert Online"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus (Sergey P.)
|
||||
# type: games
|
||||
# name: Blood and Soul
|
||||
# image: bloodandsoul
|
||||
# info_en: A multiplayer role-playing game featuring a rich combat system and vibrant graphics, inspired by Eastern mythology. Players can choose from various classes, explore unique locations, and battle powerful foes.
|
||||
# info_ru: Многопользовательская ролевая игра с богатой системой боя и яркой графикой, вдохновленная восточной мифологией. Игроки могут выбирать из различных классов, исследовать уникальные локации и сражаться с могущественными врагами.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="BLOOD_AND_SOUL"
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/bs-install.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Blood and Soul"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://bsclassic.com/files/bs-install.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/Blood and Soul Classic/launcher.exe"
|
||||
pw_create_unique_exe
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,25 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: Broken Ranks (ENG)
|
||||
# image: brokenranks
|
||||
# info_en: An MMORPG game offering deep sleep and a unique combat system that focuses on the strategy and activities of the person. Players explore a dark world full of intrigue and danger, developing their characters and making key decisions that affect the course of history.
|
||||
# info_ru: MMORPG игра, предлагающая глубокий сон и уникальную боевую систему, которая ориентирует внимание на стратегию и деятельность персоны. Игроки исследуют мрачный мир, полный интриг и опасностей, развивая своих героев и принимая ключевые решения, влияющие на ход истории.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="BROKEN_RANKS"
|
||||
export LAUNCH_PARAMETERS="/q"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/BrokenRanksInstaller.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Broken Ranks"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://eu.brokenranks.com/BrokenRanksInstaller.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_kill_autostart ConsoleLauncher.exe &
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Whitemoon/BrokenRanks/ConsoleLauncher.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: if984 (Maksim K.)
|
||||
# type: emulators
|
||||
# name: bsnes
|
||||
# image: bsnes
|
||||
# info_en: An open source Super Nintendo Entertainment System (SNES) emulator that focuses on performance, accuracy, user-friendly interface, and special features.
|
||||
# info_ru: Эмулятор Super Nintendo Entertainment System (SNES) с открытым исходным кодом, который фокусируется на производительности, точности, удобном пользовательском интерфейсе и специальных функциях.
|
||||
########################################################################
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/bsnes-windows.zip"
|
||||
start_portwine
|
||||
if try_download "https://github.com/bsnes-emu/bsnes/releases/download/nightly/bsnes-windows.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files/bsnes-nightly/bsnes.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="bsnes"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: CALIBER
|
||||
# image: caliber
|
||||
# info_en: A tactical third-person shooter where players can choose from various characters with unique abilities and engage in team-based modes. The game features realistic graphics and dynamic combat, providing an engaging gameplay experience.
|
||||
# info_ru: Тактический шутер от третьего лица, где игроки могут выбирать из различных персонажей с уникальными способностями и сражаться в командных режимах. Игра предлагает реалистичную графику и динамичные бои, обеспечивая увлекательный игровой процесс.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="CALIBER"
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT /CLOSEAPPLICATIONS"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/CaliberSetup.exe"
|
||||
export PW_WINE_USE="PROTON_LG"
|
||||
# export DISABLE_CP_DEFPFX="1"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="CALIBER"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://cdn.playcaliber.com/caliber-s3/p1/a88c3b70f76a0e56b1e08b62c9895cfe/launcher/setup/CaliberSetup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_kill_autostart VC_redist.x64.exe 3 &
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/1C Game Studios/Caliber/Launcher.exe"
|
||||
pw_create_unique_exe "caliber_launcher_pp"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: linux-gaming.ru
|
||||
# type: emulators
|
||||
# name: Cemu
|
||||
# image: cemu
|
||||
# info_en: A Wii U emulator that allows users to launch and play games released on this console with high performance and enhanced graphics.
|
||||
# info_ru: Эмулятор Wii U, который позволяет пользователям запускать и играть в игры, выпущенные на этой консоли, с высокой производительностью и улучшенной графикой.
|
||||
########################################################################
|
||||
export PW_URL_CEMU=$(curl -s "https://api.github.com/repos/cemu-project/Cemu/releases" | grep -iEo 'https.*download.*' | grep "windows" | head -n1)
|
||||
export PW_CEMU_NAME=Cemu_$(echo "$PW_URL_CEMU" | awk -F"-" '{print $3}')
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/${PW_CEMU_NAME}.zip"
|
||||
|
||||
start_portwine
|
||||
if try_download "${PW_URL_CEMU//\"/}" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"${WINEPREFIX}/drive_c/Program Files (x86)/"
|
||||
PW_EXE_FILE="${WINEPREFIX}/drive_c/Program Files (x86)/${PW_CEMU_NAME}/Cemu.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="${PW_CEMU_NAME}"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: Chicken Invaders Universe
|
||||
# image: chickeninvadersuniverse
|
||||
# info_en: An exciting arcade game where players battle aggressive space chickens to defend their planet. The game features multiple levels, a cooperative mode, and the ability to upgrade their spaceship.
|
||||
# info_ru: Захватывающая аркадная игра, в которой игроки сражаются с агрессивными курицами из космоса, защищая свою планету. Игра предлагает множество уровней, кооперативный режим и возможность улучшения космического корабля.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="CHICKEN_INVADERS_UNIVERSE"
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ChickenInvadersUniverseInstaller.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Chicken Invaders Universe"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://universe.chickeninvaders.com/files/ChickenInvadersUniverseInstaller.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/ChickenInvadersUniverse/CIU.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,25 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: CONTRACT WARS
|
||||
# image: cwc
|
||||
# info_en: A multiplayer first-person shooter where players engage in battles between two teams on various maps. The game offers a wide selection of weapons and character customization options, making each match unique.
|
||||
# info_ru: Многопользовательский шутер от первого лица, где игроки участвуют в противостоянии между двумя командами на разнообразных картах. Игра предлагает широкий выбор оружия и возможностей для настройки персонажей, что делает каждый матч уникальным.
|
||||
########################################################################
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/CWClient_Install.exe"
|
||||
export PW_PREFIX_NAME="CONTRACT_WARS"
|
||||
export PW_WINE_USE="WINE_LG"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://cdn-01.contractwarsgame.com/standalone/CWClient_Install.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Games/CWClient/CWClientLauncher.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="CONTRACT WARS"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: Castro Fidel
|
||||
# type: games
|
||||
# name: Crossout
|
||||
# image: crossout
|
||||
# info_en: A multiplayer game featuring post-apocalyptic vehicle combat, where players build unique battle machines and fight against each other on open arenas. The game offers various battle modes and a rich customization system, allowing each player to express their individuality on the battlefield.
|
||||
# info_ru: Многопользовательская игра с элементами постапокалиптического десанта, где игроки создают уникальные боевые машины и сражаются друг с другом на открытых аренах. Игра предлагает разнообразные режимы боя и богатую систему кастомизации, позволяя каждому выражать свою индивидуальность на поле боя.
|
||||
########################################################################
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/crossout.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Crossout"
|
||||
export PW_PREFIX_NAME="CROSSOUT"
|
||||
export PW_WINE_USE="WINE_LG"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://yupmaster.gaijinent.com/launcher/current.php?id=CrossoutLauncher" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
get_and_set_reg_file --add 'Software\Wine\X11 Driver' 'Decorated' 'REG_SZ' "N" "user"
|
||||
pw_kill_autostart launcher.exe 3 &
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="${WINEPREFIX}/drive_c/users/$USER/AppData/Local/Crossout Launcher/launcher.exe"
|
||||
pw_create_unique_exe "crossout_launcher_pp"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,23 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: DC Universe Online (ENG)
|
||||
# image: dcuniverseonline
|
||||
# info_en: An MMORPG where players create their own superheroes or supervillains in the DC Comics universe and engage in epic battles alongside iconic characters like Superman and Batman. The game features extensive quests, exciting PvP modes, and the ability to team up with other players.
|
||||
# info_ru: MMORPG, в которой игроки создают собственных супергероев или суперзлодеев во вселенной DC Comics и участвуют в эпических битвах с известными персонажами, такими как Супермен и Бэтмен. Игра предлагает обширные квесты, захватывающие PvP-режимы и возможность совместной игры с другими игроками.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="DC_UNIVERSE_ONLINE"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/DCUO_setup.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="DC Universe Online"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://launch.daybreakgames.com/installer/DCUO_setup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/Daybreak Game Company"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/Daybreak Game Company/LaunchPad.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus (Sergey P.)
|
||||
# type: emulators
|
||||
# name: Demul
|
||||
# image: demul
|
||||
# info_en: An arcade game emulator that allows users to play classic games from the Sega NAOMI and Sega Atomiswave systems on their PCs. It delivers high-quality graphics and sound, along with numerous features, including online multiplayer support.
|
||||
# info_ru: Эмулятор аркадных игровых автоматов, позволяющий играть в классические игры на системах Sega NAOMI и Sega Atomiswave на ПК. Он обеспечивает высокое качество графики и звука, а также поддерживает множество функций, включая сетевой режим.
|
||||
########################################################################
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/demul07_280418.7z"
|
||||
start_portwine
|
||||
if try_download "http://demul.emulation64.com/files/demul07_280418.7z" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/Demul"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/Demul/demul.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Demul"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,22 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus (Sergey P.)
|
||||
# type: emulators
|
||||
# name: Dolphin 5.0
|
||||
# image: dolphin
|
||||
# info_en: A powerful emulator for Nintendo GameCube and Wii consoles that allows users to play games on their PCs with enhanced graphics and performance. It supports a wide range of features, including HD resolution, numerous control configurations, and the ability to use modifications.
|
||||
# info_ru: Мощный эмулятор для игровых консолей Nintendo GameCube и Wii, который позволяет запускать игры на ПК с улучшенной графикой и производительностью. Он поддерживает широкий спектр функций, включая HD-разрешение, множество настройек управления и возможность использования модификаций.
|
||||
##########################################################################
|
||||
export LAUNCH_PARAMETERS="/S"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/dolphin-x64-5.0.exe"
|
||||
start_portwine
|
||||
if try_download "https://dl-mirror.dolphin-emu.org/5.0/dolphin-x64-5.0.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files/Dolphin/Dolphin.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Dolphin 5.0"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: Doomsday
|
||||
# image: doomsday
|
||||
# info_en: A real-time strategy game where players manage a group of survivors in a post-apocalyptic world, aiming to rebuild civilization and defend against various threats. The game features base-building elements, tactical combat, and a deep narrative experience.
|
||||
# info_ru: Стратегическая игра в реальном времени, где игроки управляют отрядом выживших в постапокалиптическом мире, стремясь восстановить цивилизацию и защититься от различных угроз. Игра предлагает элементы строительства базы, тактические сражения и глубокую проработку сюжета.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="DOOMSDAY"
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/dls_installer.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Doomsday"
|
||||
|
||||
bad_url="$(curl https://dls.igg.com/download/pc/h/ | grep downloadUrl | awk -F'downloadUrl":"' '{print $2}' | awk -F'"' '{print $1}')"
|
||||
good_url="${bad_url//\\/}"
|
||||
|
||||
start_portwine
|
||||
if try_download "$good_url" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_kill_autostart Launcher.exe &
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/Doomsday/DoomsdayLastSurvivors.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: Eldevin (ENG)
|
||||
# image: eldevin
|
||||
# info_en: An MMORPG with vibrant graphics where players explore a vast fantasy world, complete quests, and battle enemies to develop their characters. The game features diverse classes and skills, as well as crafting and group interaction systems.
|
||||
# info_ru: MMORPG с красочной графикой, где игроки исследуют обширный фэнтезийный мир, выполняют квесты и сражаются с врагами, чтобы развивать свои персонажи. Игра предлагает разнообразные классы и навыки, а также системы крафта и группового взаимодействия.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="ELDEVIN"
|
||||
export LAUNCH_PARAMETERS="/S"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/eldevin_win64.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Eldevin"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://www.eldevin.com/cdn/files/eldevin_win64.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files/Eldevin/Eldevin.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,25 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: Elsword (ENG)
|
||||
# image: elsword
|
||||
# info_en: An anime-style MMORPG that combines elements of a platformer and a real-time combat system, allowing players to fight in exciting dungeons and PvP arenas. The game offers a variety of characters with unique skills, as well as opportunities for customization and playing together with friends.
|
||||
# info_ru: MMORPG c аниме-стилем, которая сочетает в себе элементы платформера и боевой системы в реальном времени, позволяя игрокам сражаться в захватывающих подземельях и PvP-аренах. Игра предлагает множество персонажей с уникальными навыками, а также возможности для кастомизации и совместной игры с друзьями.
|
||||
########################################################################
|
||||
export PW_WINE_USE="WINE_LG"
|
||||
export PW_PREFIX_NAME="ELSWORD"
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ElswordInstaller_NA(64bit).exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Elsword"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://elsword-us.dn.playkog.com/Download/Downloader/ElswordInstaller_NA(64bit).exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/KOGGames/Elsword64/elsword.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,36 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: Castro-Fidel (linux-gaming.ru)
|
||||
# type: games
|
||||
# name: Epic Games Launcher
|
||||
# image: epicgames
|
||||
# info_en: Launcher for the Epic Games game library.
|
||||
# info_ru: Лаунчер для библиотеки игр Epic Games.
|
||||
########################################################################
|
||||
export LAUNCH_PARAMETERS="/q"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/EpicGamesLauncherInstaller.msi"
|
||||
export PW_USE_D3D_EXTRAS="1"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Epic Games Launcher"
|
||||
export PW_WINE_USE="PROTON_LG"
|
||||
export PW_USE_ESYNC="1"
|
||||
export PW_USE_FSYNC="1"
|
||||
export PW_PREFIX_NAME="DEFAULT"
|
||||
|
||||
pw_clear_pfx
|
||||
start_portwine
|
||||
|
||||
if try_download "https://launcher-public-service-prod06.ol.epicgames.com/launcher/api/installer/download/EpicGamesLauncherInstaller.msi" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
try_remove_file "${WINEPREFIX}/drive_c/ProgramData/Epic/EpicGamesLauncher/EpicOnlineServicesInstaller.exe"
|
||||
try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Epic/EpicOnlineServices"
|
||||
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Epic Games/Epic Online Services/"
|
||||
try_remove_dir "${WINEPREFIX}/drive_c/Program Files (x86)/Epic Games/Launcher/"
|
||||
# try_remove_dir "${WINEPREFIX}/drive_c/ProgramData/Epic"
|
||||
pw_run msiexec /i "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="${WINEPREFIX}/drive_c/Program Files/Epic Games/Launcher/Portal/Binaries/Win64/EpicGamesLauncher.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
|
||||
stop_portwine
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus (Sergey P.)
|
||||
# type: emulators
|
||||
# name: ePSXe
|
||||
# image: epsxe
|
||||
# info_en: An emulator for the PlayStation console that allows users to play PS1 games on their PCs, providing excellent graphics and compatibility with most games. It supports various plugins to enhance sound and video, as well as features for saving and loading games at any moment.
|
||||
# info_ru: Эмулятор для консоли PlayStation, который позволяет пользователям играть в игры для PS1 на ПК, обеспечивая отличную графику и совместимость с большинством игр. Он поддерживает различные плагины для улучшения звука и видео, а также функции сохранения и загрузки игр в любой момент.
|
||||
########################################################################
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ePSXe205.zip"
|
||||
start_portwine
|
||||
if try_download "https://www.epsxe.com/files/ePSXe205.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/ePSXe"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/ePSXe/ePSXe.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="ePSXe"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,54 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: cefeiko
|
||||
# type: games
|
||||
# name: EVE Online Launcher
|
||||
# image: eve
|
||||
# info_en: Launcher for the EVE Online game. A vast multiplayer online game where players explore an endless cosmos, engage in trading, manufacturing, and combat with other players in a unique sandbox environment. The game is known for its complex economy, political intrigue, and the ability to form alliances among players to conquer galactic territories.
|
||||
# info_ru: Лаунчер для игры EVE Online. Масштабная многопользовательская онлайн-игра, в которой игроки исследуют бескрайний космос, занимаются торговлей, производством и ведением космических боев с другими игроками в уникальной песочнице. Игра известна своей сложной экономикой, политическими интригами и возможностью создания альянсов между игроками для завоевания галактических территорий.
|
||||
########################################################################
|
||||
export PW_WINDOWS_VER="10"
|
||||
export PW_WINE_USE="WINE_LG"
|
||||
export PW_USE_WINE_DXGI="0"
|
||||
export PW_VULKAN_USE="2"
|
||||
export PW_USE_GSTREAMER="0"
|
||||
export PW_PREFIX_NAME="EVE_ONLINE"
|
||||
export PW_WINE_FULLSCREEN_FSR="0"
|
||||
export PW_USE_GAMEMODE="0"
|
||||
export PW_USE_D3D_EXTRAS="1"
|
||||
export PW_USE_SHADER_CACHE="0"
|
||||
export PW_USE_EAC_AND_BE="1"
|
||||
export PW_DLL_INSTALL="vcrun2022 d3dcompiler_47 arial tahoma" # msdelta
|
||||
export WINEDLLOVERRIDES="msvcp140,msvcp140_1=n"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/eve-online-latest+Setup.exe"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://launcher.ccpgames.com/eve-online/release/win32/x64/eve-online-latest+Setup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
EVE_LAUNCHER_DIR="${WINEPREFIX}/drive_c/users/steamuser/AppData/Local/eve-online"
|
||||
|
||||
$pw_7z x "${PW_USER_TEMP}/eve-online-latest+Setup.exe" -o"${EVE_LAUNCHER_DIR}" -y
|
||||
EVE_VERSION="$(cat "${EVE_LAUNCHER_DIR}/RELEASES" | awk '{print $2}' | awk -F"-" '{print $3}')"
|
||||
|
||||
$pw_7z x "${EVE_LAUNCHER_DIR}/eve-online-${EVE_VERSION}-full.nupkg" -o"${EVE_LAUNCHER_DIR}/tmp" -y
|
||||
|
||||
|
||||
create_new_dir "${EVE_LAUNCHER_DIR}/app-$EVE_VERSION"
|
||||
create_new_dir "${EVE_LAUNCHER_DIR}/packages/SquirrelTemp"
|
||||
|
||||
cp -r "${EVE_LAUNCHER_DIR}/tmp/lib/net45/." "${EVE_LAUNCHER_DIR}/app-$EVE_VERSION"
|
||||
cp "${EVE_LAUNCHER_DIR}/eve-online-${EVE_VERSION}-full.nupkg" "${EVE_LAUNCHER_DIR}/packages"
|
||||
mv "${EVE_LAUNCHER_DIR}/app-${EVE_VERSION}/eve-online_ExecutionStub.exe" "${EVE_LAUNCHER_DIR}/eve-online.exe"
|
||||
cp "${EVE_LAUNCHER_DIR}/RELEASES" "${EVE_LAUNCHER_DIR}/packages"
|
||||
mv "${EVE_LAUNCHER_DIR}/setupIcon.ico" "${EVE_LAUNCHER_DIR}/app.ico"
|
||||
rm -rf "${EVE_LAUNCHER_DIR}/background.gif" "${EVE_LAUNCHER_DIR}/eve-online-${EVE_VERSION}-full.nupkg" "${EVE_LAUNCHER_DIR}/RELEASES" "${EVE_LAUNCHER_DIR}/tmp"
|
||||
|
||||
|
||||
PW_EXE_FILE="${EVE_LAUNCHER_DIR}/eve-online.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="EVE Online Launcher"
|
||||
portwine_create_shortcut
|
||||
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# author: chal55rus
|
||||
# type: games
|
||||
# name: ExoTanks
|
||||
# image: exotanks
|
||||
# info_en: A multiplayer battle game where players control exoskeletons and fight in various arenas using powerful weapons and strategic gameplay. The game offers both team and solo modes, along with the ability to customize their exoskeleton for a unique playing style.
|
||||
# info_ru: Многопользовательская боевая игра, в которой игроки управляют экзоскелетами и сражаются в различных аренах, используя мощное вооружение и стратегический подход. Игра предлагает как командные, так и одиночные режимы, а также возможность кастомизации своего экзоскелета для уникального стиля игры.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="EXOTANKS"
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/ExoTanksMOBA_Setup.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="ExoTanks"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://www.exotanks.com/ExoTanksMOBA_Setup.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_kill_autostart ExoTanksMOBA_Launcher.exe &
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Games/ExoTanksMOBA/ExoTanksMOBA_LauncherUpdater/Engine/Binaries/Win64/ExoTanksMOBA_LauncherUpdater.exe"
|
||||
# PW_EXE_FILE="$WINEPREFIX/drive_c/Games/ExoTanksMOBA/ExoTanksMOBA_Launcher/Engine/Binaries/Win64/ExoTanksMOBA_Launcher.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,26 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: Farlight 84
|
||||
# image: farlight84
|
||||
# info_en: A multiplayer battle royale game set in a colorful and futuristic world where players fight against each other using unique skills and weapons. The game features exciting gameplay with building elements, as well as the ability to utilize various vehicles to navigate the map.
|
||||
# info_ru: Многопользовательская игра в жанре королевская битва, которая проходит в красочном и футуристическом мире, где игроки сражаются друг с другом с использованием уникальных навыков и оружия. Игра предлагает захватывающий геймплей с элементами строительства, а также возможность использовать различные транспортные средства для перемещения по карте.
|
||||
########################################################################
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Farlight84_setup_1.3.0.1_238.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Farlight 84"
|
||||
export PW_PREFIX_NAME="FARLIGHT_84"
|
||||
export PW_WINE_USE="WINE_LG"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://static-gl.lilithgame.com/p/pcsdk/launcher/10060/prodef4621e968ad6b383b8754148b63/0/launcher/res/release/Farlight84_setup_1.3.0.1_238.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
create_new_dir "$WINEPREFIX/drive_c/Program Files (x86)/Farlight84"
|
||||
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/Farlight84"
|
||||
"$pw_7z" x -y "$WINEPREFIX/drive_c/Program Files (x86)/Farlight84/launcher.7z" -o"$WINEPREFIX/drive_c/Program Files (x86)/Farlight84"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/Farlight84/Farlight84Launcher.exe"
|
||||
try_remove_file "$WINEPREFIX/drive_c/Program Files (x86)/Farlight84/launcher.7z"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus (Sergey P.)
|
||||
# type: emulators
|
||||
# name: FCEUX
|
||||
# image: fceux
|
||||
# info_en: An emulator for the Nintendo Entertainment System (NES) that allows players to enjoy classic NES games on modern devices with high compatibility and various enhancements. The emulator includes tools for game development, testing, and recording.
|
||||
# info_ru: Эмулятор Nintendo Entertainment System (NES), который позволяет игрокам наслаждаться классическими играми для NES на современных устройствах с высокой совместимостью и различными улучшениями. Эмулятор включает инструменты для разработки, тестирования и записи игр.
|
||||
########################################################################
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/fceux-2.6.6-win64.zip"
|
||||
start_portwine
|
||||
if try_download "https://github.com/TASEmulators/fceux/releases/download/v2.6.6/fceux-2.6.6-win64.zip" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
"$pw_7z" x -y "${PW_AUTOINSTALL_EXE}" -o"$WINEPREFIX/drive_c/Program Files (x86)/FCEUX"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/FCEUX/fceux64.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="FCEUX"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,40 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus (Sergey P.), cefeiko, Castro-Fidel (linux-gaming.ru)
|
||||
# type: games
|
||||
# name: Gameforge Client
|
||||
# image: gameforge
|
||||
# info_en: Launcher for Gameforge studio games.
|
||||
# info_ru: Лаунчер для игр Gameforge.
|
||||
##########################################################################
|
||||
pw_shutdown_please () {
|
||||
if [[ "$PW_USE_RUNTIME" != 1 ]]
|
||||
then echo "PW_USE_RUNTIME: `echo $PW_USE_RUNTIME`"
|
||||
else
|
||||
sleep 10
|
||||
while true ; do
|
||||
if [[ -z "`ps aux | grep -v grep | grep -wm 1 "$1" | awk '{print $2}'`" ]] && [[ -n "`pgrep wrap | head -n 1`" ]] ; then
|
||||
echo -e "PID "$1" not found"
|
||||
sleep 1
|
||||
else
|
||||
killall -s TERM gfclient.exe
|
||||
killall -s TERM GameforgeInstaller.exe
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/GameforgeInstaller.exe"
|
||||
start_portwine
|
||||
if try_download "https://raw.githubusercontent.com/WarfaceZ/lutris-clients/master/GameforgeInstaller.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_shutdown_please SparkWebHelper.exe &
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/GameforgeClient/gfclient.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="GameforgeClient"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,25 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus
|
||||
# type: games
|
||||
# name: GameXP
|
||||
# image: gamexp
|
||||
# info_en: Launcher for GameXP studio games.
|
||||
# info_ru: Лаунчер для игр GameXP.
|
||||
########################################################################
|
||||
export PW_PREFIX_NAME="GAMEXP"
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-"
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/InstallGameXPlauncher.exe"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="GameXP"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://clotho-install.gamexp.com/launcher/InstallGameXPlauncher-0-pr.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_kill_autostart gamexp-launcher.exe &
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/users/steamuser/AppData/Local/Programs/GameXP/Launcher/gamexp-launcher.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: Castro-Fidel (linux-gaming.ru)
|
||||
# type: games
|
||||
# name: GOG Galaxy Launcher
|
||||
# image: gog
|
||||
# info_en: Launcher for the GOG game library.
|
||||
# info_ru: Лаунчер для библиотеки игр GOG.
|
||||
########################################################################
|
||||
GOG_VER=2.0
|
||||
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/setup_galaxy_${GOG_VER}.exe"
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT"
|
||||
export PW_PREFIX_NAME="GOG"
|
||||
export DISABLE_CP_DEFPFX="1"
|
||||
export PW_WINE_USE="PROTON_LG_9-12"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="GOG GALAXY"
|
||||
|
||||
start_portwine
|
||||
if try_download "https://webinstallers.gog-statics.com/download/GOG_Galaxy_${GOG_VER}.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files (x86)/GOG Galaxy/GalaxyClient.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,32 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: Castro Fidel
|
||||
# type: games
|
||||
# name: Guild Wars 2
|
||||
# image: gw2
|
||||
# info_en: An MMORPG with a vibrant world and a unique system of dynamic events, where players can freely explore the realms of Tyria and engage in large-scale battles. The game offers a variety of races and classes, with an emphasis on cooperative play and player interaction.
|
||||
# info_ru: MMORPG с ярким миром и уникальной системой динамических событий, где игроки могут свободно исследовать просторы Тираи и участвовать в масштабных сражениях. Игра предлагает разнообразие рас и классов, а также акцент на совместной игре и взаимодействии между игроками.
|
||||
########################################################################
|
||||
export LAUNCH_PARAMETERS="/VERYSILENT"
|
||||
export PW_PREFIX_NAME="GW2"
|
||||
export WINEDLLOVERRIDES="mscoree,mshtml="
|
||||
export PW_MUST_HAVE_DLL=""
|
||||
export PW_WINE_USE="WINE_LG"
|
||||
export PW_PREFIX_NAME="GUILD_WARS_2"
|
||||
|
||||
start_portwine
|
||||
create_new_dir "${WINEPREFIX}/drive_c/Program Files/Guild Wars 2/"
|
||||
export PW_AUTOINSTALL_EXE="${WINEPREFIX}/drive_c/Program Files/Guild Wars 2/Gw2Setup-64.exe"
|
||||
|
||||
if try_download "https://s3.amazonaws.com/gw2cdn/client/branches/Gw2Setup-64.exe" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
pw_kill_autostart Gw2.exe 3 &
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
PW_EXE_FILE="${WINEPREFIX}/drive_c/Program Files/Guild Wars 2/Gw2.exe"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
try_remove_file "${PW_EXE_FILE}.ppdb"
|
||||
kill_portwine
|
||||
mv -f "${WINEPREFIX}/drive_c/users/steamuser/Temp/"* "${WINEPREFIX}/drive_c/Program Files/Guild Wars 2/"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="Guild Wars 2"
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
stop_portwine
|
||||
@@ -1,30 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: Castro-Fidel (linux-gaming.ru)
|
||||
# type: games
|
||||
# name: HoYoPlay
|
||||
# image: hoyoplay
|
||||
# info_en: Launcher for HoYoverse studio games.
|
||||
# info_ru: Лаунчер для игр HoYoverse.
|
||||
########################################################################
|
||||
export PW_VULKAN_USE=2
|
||||
export PW_AUTOINSTALL_EXE="${PW_USER_TEMP}/Hoyolauncher_installer.exe"
|
||||
export PW_PREFIX_NAME="HO_YO_PLAY"
|
||||
export PORTWINE_CREATE_SHORTCUT_NAME="HoYoPlay"
|
||||
export PW_WINE_USE="WINE_HYP_10-10"
|
||||
|
||||
start_portwine
|
||||
|
||||
if try_download "https://sg-public-api.hoyoverse.com/event/download_porter/trace/hyp_global/hyphoyoverse/default?url=https%3A%2F%2Fhoyoplay.hoyoverse.com%2F" "${PW_AUTOINSTALL_EXE}" no_mirror
|
||||
then
|
||||
get_and_set_reg_file --add 'Software\Wine\X11 Driver' 'Decorated' 'REG_SZ' "N" "user"
|
||||
pw_kill_autostart HYP.exe &
|
||||
export PATH_TO_GAME="${PW_USER_TEMP}"
|
||||
pw_run "${PW_AUTOINSTALL_EXE}"
|
||||
export PW_EXE_FILE="$WINEPREFIX/drive_c/Program Files/HoYoPlay/launcher.exe"
|
||||
pw_create_unique_exe "hoyoplay_launcher_pp"
|
||||
try_remove_file "${PW_AUTOINSTALL_EXE}"
|
||||
kill_portwine
|
||||
portwine_create_shortcut
|
||||
fi
|
||||
|
||||
stop_portwine
|
||||
Loaded 100 of 724 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user