Updated DXVK / wine versions UI, added dynamic data loading

This commit is contained in:
Observer KRypt0n_ 2022-07-04 08:39:37 +02:00
parent d26c75c726
commit 0524cf80d4
No known key found for this signature in database
GPG key ID: 844DA47BA25FE1E2
6 changed files with 1068 additions and 57 deletions

136
assets/dxvk.json Normal file
View file

@ -0,0 +1,136 @@
{
"vanilla": [
{
"version": "1.10.1",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.10.1/dxvk-1.10.1.tar.gz",
"recommended": true
},
{
"version": "1.10",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.10/dxvk-1.10.tar.gz",
"recommended": true
},
{
"version": "1.9.4",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.9.4/dxvk-1.9.4.tar.gz",
"recommended": true
},
{
"version": "1.9.3",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.9.3/dxvk-1.9.3.tar.gz",
"recommended": true
},
{
"version": "1.9.2",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.9.2/dxvk-1.9.2.tar.gz",
"recommended": true
},
{
"version": "1.9.1",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.9.1/dxvk-1.9.1.tar.gz",
"recommended": true
},
{
"version": "1.9",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.9/dxvk-1.9.tar.gz",
"recommended": true
},
{
"version": "1.8.1",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.8.1/dxvk-1.8.1.tar.gz",
"recommended": false
},
{
"version": "1.8",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.8/dxvk-1.8.tar.gz",
"recommended": false
},
{
"version": "1.7.3",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.7.3/dxvk-1.7.3.tar.gz",
"recommended": false
},
{
"version": "1.7.2",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.7.2/dxvk-1.7.2.tar.gz",
"recommended": false
},
{
"version": "1.7.1",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.7.1/dxvk-1.7.1.tar.gz",
"recommended": false
},
{
"version": "1.7",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.7/dxvk-1.7.tar.gz",
"recommended": false
},
{
"version": "1.6.1",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.6.1/dxvk-1.6.1.tar.gz",
"recommended": false
},
{
"version": "1.6",
"uri": "https://github.com/doitsujin/dxvk/releases/download/v1.6/dxvk-1.6.tar.gz",
"recommended": false
}
],
"async": [
{
"version": "1.10.1",
"uri": "https://github.com/Sporif/dxvk-async/releases/download/1.10.1/dxvk-async-1.10.1.tar.gz",
"recommended": true
},
{
"version": "1.10",
"uri": "https://github.com/Sporif/dxvk-async/releases/download/1.10/dxvk-async-1.10.tar.gz",
"recommended": true
},
{
"version": "1.9.4",
"uri": "https://github.com/Sporif/dxvk-async/releases/download/1.9.4/dxvk-async-1.9.4.tar.gz",
"recommended": true
},
{
"version": "1.9.3",
"uri": "https://github.com/Sporif/dxvk-async/releases/download/1.9.3/dxvk-async-1.9.3.tar.gz",
"recommended": true
},
{
"version": "1.9.2",
"uri": "https://github.com/Sporif/dxvk-async/releases/download/1.9.4/dxvk-async-1.9.4.tar.gz",
"recommended": true
},
{
"version": "1.9.1",
"uri": "https://github.com/Sporif/dxvk-async/releases/download/1.9.1/dxvk-async-1.9.1.tar.gz",
"recommended": true
},
{
"version": "1.9",
"uri": "https://github.com/Sporif/dxvk-async/releases/download/1.9/dxvk-async-1.9.tar.gz",
"recommended": true
},
{
"version": "1.8.1",
"uri": "https://github.com/Sporif/dxvk-async/releases/download/1.8.1/dxvk-async-1.8.1.tar.gz",
"recommended": false
},
{
"version": "1.8",
"uri": "https://github.com/Sporif/dxvk-async/releases/download/1.8.1/dxvk-async-1.8.1.tar.gz",
"recommended": false
},
{
"version": "1.7.3",
"uri": "https://github.com/Sporif/dxvk-async/releases/download/1.7.3/dxvk-async-1.7.3.tar.gz",
"recommended": false
},
{
"version": "1.7.2",
"uri": "https://github.com/Sporif/dxvk-async/releases/download/1.7.2/dxvk-async-1.7.2.tar.gz",
"recommended": false
}
]
}

View file

@ -119,6 +119,18 @@ Adw.PreferencesPage general_page {
}; };
} }
Adw.ActionRow {
title: "Recommended only";
subtitle: "Show only recommended wine versions";
Gtk.Switch {
valign: center;
state: true;
}
}
}
Adw.PreferencesGroup {
Adw.ExpanderRow { Adw.ExpanderRow {
title: "Wine-GE"; title: "Wine-GE";
@ -221,61 +233,25 @@ Adw.PreferencesPage general_page {
}; };
} }
Adw.ExpanderRow { Adw.ActionRow {
title: "Recommended only";
subtitle: "Show only recommended DXVK versions";
Gtk.Switch dxvk_recommended_only {
valign: center;
state: true;
}
}
}
Adw.PreferencesGroup {
Adw.ExpanderRow dxvk_vanilla {
title: "Vanilla"; title: "Vanilla";
Adw.ActionRow {
title: "1.10.1";
} }
Adw.ActionRow { Adw.ExpanderRow dxvk_async {
title: "1.10";
}
Adw.ActionRow {
title: "1.9.4";
}
Adw.ActionRow {
title: "1.9.3";
}
Adw.ActionRow {
title: "1.9.2";
}
Adw.ActionRow {
title: "1.9.1";
}
}
Adw.ExpanderRow {
title: "Async"; title: "Async";
subtitle: "This version is not recommended for usage as can lead to anti-cheat detection"; subtitle: "This version is not recommended for usage as can lead to anti-cheat detection";
Adw.ActionRow {
title: "1.10.1";
}
Adw.ActionRow {
title: "1.10";
}
Adw.ActionRow {
title: "1.9.4";
}
Adw.ActionRow {
title: "1.9.3";
}
Adw.ActionRow {
title: "1.9.2";
}
Adw.ActionRow {
title: "1.9.1";
}
} }
} }
} }

809
assets/wine.json Normal file
View file

@ -0,0 +1,809 @@
[
{
"title": "Wine-GE-Proton",
"runners": [
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-16-x86_64",
"title": "Wine-GE-Proton 7-16",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-16/wine-lutris-GE-Proton7-16-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-15-x86_64",
"title": "Wine-GE-Proton 7-15",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-15/wine-lutris-GE-Proton7-15-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-14-x86_64",
"title": "Wine-GE-Proton 7-14",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-14/wine-lutris-GE-Proton7-14-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-12-x86_64",
"title": "Wine-GE-Proton 7-12",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-12/wine-lutris-GE-Proton7-12-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-11-x86_64",
"title": "Wine-GE-Proton 7-11",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-11/wine-lutris-GE-Proton7-11-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-10-x86_64",
"title": "Wine-GE-Proton 7-10",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-10/wine-lutris-GE-Proton7-10-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-9-x86_64",
"title": "Wine-GE-Proton 7-9",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-9/wine-lutris-GE-Proton7-9-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-8-x86_64",
"title": "Wine-GE-Proton 7-8",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-8/wine-lutris-GE-Proton7-8-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-7-x86_64",
"title": "Wine-GE-Proton 7-7",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-7/wine-lutris-GE-Proton7-7-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-6-x86_64",
"title": "Wine-GE-Proton 7-6",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-6/wine-lutris-GE-Proton7-6-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-5-x86_64",
"title": "Wine-GE-Proton 7-5",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-5/wine-lutris-GE-Proton7-5-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-4-x86_64",
"title": "Wine-GE-Proton 7-4",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-4/wine-lutris-GE-Proton7-4-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-3-x86_64",
"title": "Wine-GE-Proton 7-3",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-3/wine-lutris-GE-Proton7-3-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-2-x86_64",
"title": "Wine-GE-Proton 7-2",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-2/wine-lutris-GE-Proton7-2-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-GE-Proton7-1-x86_64",
"title": "Wine-GE-Proton 7-1",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/GE-Proton7-1/wine-lutris-GE-Proton7-1-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-ge-7.2-2-x86_64",
"title": "Wine 7.2 GE 2",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/7.2-GE-2/wine-lutris-ge-7.2-2-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-ge-7.2-1-x86_64",
"title": "Wine 7.2 GE 1",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/7.2-GE-1/wine-lutris-ge-7.2-1-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-ge-7.1-1-x86_64",
"title": "Wine 7.1 GE 1",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/7.1-GE-1/wine-lutris-ge-7.1-1-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-ge-6.21-1-x86_64",
"title": "Wine 6.21 GE 1",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/6.21-GE-1/wine-lutris-ge-6.21-1-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-ge-6.20-1-x86_64",
"title": "Wine 6.20 GE 1",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/6.20-GE-1/wine-lutris-ge-6.20-1-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-ge-6.19-1-x86_64",
"title": "Wine 6.19 GE 1",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/6.19-GE-1/wine-lutris-ge-6.19-1-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-ge-6.18-1-x86_64",
"title": "Wine 6.18 GE 1",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/6.18-GE-1/wine-lutris-ge-6.18-1-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Wine-GE-Proton",
"name": "lutris-ge-6.16-1-x86_64",
"title": "Wine 6.16 GE 1",
"uri": "https://github.com/GloriousEggroll/wine-ge-custom/releases/download/6.16-GE-1/lutris-ge-6.16-1-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
}
]
},
{
"title": "GE-Proton",
"runners": [
{
"family": "GE-Proton",
"name": "GE-Proton7-20",
"title": "GE-Proton 7-20",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-20/GE-Proton7-20.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "GE-Proton",
"name": "GE-Proton7-19",
"title": "GE-Proton 7-19",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-19/GE-Proton7-19.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "GE-Proton7-18",
"title": "GE-Proton 7-18",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-18/GE-Proton7-18.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "GE-Proton",
"name": "GE-Proton7-17",
"title": "GE-Proton 7-17",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-17/GE-Proton7-17.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "GE-Proton7-16",
"title": "GE-Proton 7-16",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-16/GE-Proton7-16.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "GE-Proton",
"name": "GE-Proton7-15",
"title": "GE-Proton 7-15",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-15/GE-Proton7-15.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "GE-Proton",
"name": "GE-Proton7-13",
"title": "GE-Proton 7-13",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-13/GE-Proton7-13.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "GE-Proton",
"name": "GE-Proton7-10",
"title": "GE-Proton 7-10",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-10/GE-Proton7-10.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "GE-Proton",
"name": "GE-Proton7-9",
"title": "GE-Proton 7-9",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-9/GE-Proton7-9.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "GE-Proton7-8",
"title": "GE-Proton 7-8",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-8/GE-Proton7-8.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "GE-Proton7-7",
"title": "GE-Proton 7-7",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-7/GE-Proton7-7.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "GE-Proton7-6",
"title": "GE-Proton 7-6",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-6/GE-Proton7-6.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "GE-Proton7-5",
"title": "GE-Proton 7-5",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-5/GE-Proton7-5.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "GE-Proton7-4",
"title": "GE-Proton 7-4",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-4/GE-Proton7-4.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "GE-Proton7-3",
"title": "GE-Proton 7-3",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-3/GE-Proton7-3.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "GE-Proton7-2",
"title": "GE-Proton 7-2",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-2/GE-Proton7-2.tar.gz",
"files": {
"wine": "dist/bin/wine64",
"wineserver": "dist/bin/wineserver",
"winecfg": "dist/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "GE-Proton7-1",
"title": "GE-Proton 7-1",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton7-1/GE-Proton7-1.tar.gz",
"files": {
"wine": "dist/bin/wine64",
"wineserver": "dist/bin/wineserver",
"winecfg": "dist/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "Proton-7.2-GE-2",
"title": "Proton 7.2 GE 2",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/7.2-GE-2/Proton-7.2-GE-2.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "Proton-7.2-GE-1",
"title": "Proton 7.2 GE 1",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/7.2-GE-1/Proton-7.2-GE-1.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "Proton-7.1-GE-2",
"title": "Proton 7.1 GE 2",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/7.1-GE-2/Proton-7.1-GE-2.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "Proton-7.1-GE-1",
"title": "Proton 7.1 GE 1",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/7.1-GE-1/Proton-7.1-GE-1.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "Proton-6.21-GE-2",
"title": "Proton 6.21 GE 2",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/6.21-GE-2/Proton-6.21-GE-2.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "Proton-6.20-GE-1",
"title": "Proton 6.20 GE 1",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/6.20-GE-1/Proton-6.20-GE-1.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "Proton-6.19-GE-2",
"title": "Proton 6.19 GE 2",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/6.19-GE-2/Proton-6.19-GE-2.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "Proton-6.19-GE-1",
"title": "Proton 6.19 GE 1",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/6.19-GE-1/Proton-6.19-GE-1.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "Proton-6.18-GE-2",
"title": "Proton 6.18 GE 2",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/6.18-GE-2/Proton-6.18-GE-2.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "Proton-6.18-GE-1",
"title": "Proton 6.18 GE 1",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/6.18-GE-1/Proton-6.18-GE-1.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "GE-Proton",
"name": "Proton-6.16-GE-1",
"title": "Proton 6.16 GE 1",
"uri": "https://github.com/GloriousEggroll/proton-ge-custom/releases/download/6.16-GE-1/Proton-6.16-GE-1.tar.gz",
"files": {
"wine": "files/bin/wine64",
"wineserver": "files/bin/wineserver",
"winecfg": "files/lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
}
]
},
{
"title": "Lutris",
"runners": [
{
"family": "Lutris",
"name": "lutris-7.2-x86_64",
"title": "Lutris 7.2",
"uri": "https://github.com/lutris/wine/releases/download/lutris-wine-7.2/wine-lutris-7.2-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "Lutris",
"name": "lutris-7.1-x86_64",
"title": "Lutris 7.1",
"uri": "https://github.com/lutris/wine/releases/download/lutris-7.1/wine-lutris-7.1-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "Lutris",
"name": "lutris-6.21-6-x86_64",
"title": "Lutris 6.21-6",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.21-6/wine-lutris-6.21-6-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "Lutris",
"name": "lutris-6.21-5-x86_64",
"title": "Lutris 6.21-5",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.21-5/wine-lutris-6.21-5-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "Lutris",
"name": "lutris-6.21-4-x86_64",
"title": "Lutris 6.21-4",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.21-4/wine-lutris-6.21-4-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Lutris",
"name": "lutris-6.21-3-x86_64",
"title": "Lutris 6.21-3",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.21-3/wine-lutris-6.21-3-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Lutris",
"name": "lutris-6.21-2-x86_64",
"title": "Lutris 6.21-2",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.21-2/wine-lutris-6.21-2-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Lutris",
"name": "lutris-6.21-x86_64",
"title": "Lutris 6.21",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.21/wine-lutris-6.21-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Lutris",
"name": "lutris-6.14-4-x86_64",
"title": "Lutris 6.14-4",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.14-4/wine-lutris-6.14-4-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "Lutris",
"name": "lutris-6.14-3-x86_64",
"title": "Lutris 6.14-3",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.14-3/wine-lutris-6.14-3-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": true
},
{
"family": "Lutris",
"name": "lutris-6.14-2-x86_64",
"title": "Lutris 6.14-2",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.14-2/wine-lutris-6.14-2-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Lutris",
"name": "lutris-6.14-x86_64",
"title": "Lutris 6.14",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.14/wine-lutris-6.14-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Lutris",
"name": "lutris-6.13-3-x86_64",
"title": "Lutris 6.13-3",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.13-3/wine-lutris-6.13-3-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Lutris",
"name": "lutris-6.13-2-x86_64",
"title": "Lutris 6.13-2",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.13-2/wine-lutris-6.13-2-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
},
{
"family": "Lutris",
"name": "lutris-6.13-x86_64",
"title": "Lutris 6.13",
"uri": "https://github.com/lutris/wine/releases/download/lutris-6.13/wine-lutris-6.13-x86_64.tar.xz",
"files": {
"wine": "bin/wine64",
"wineserver": "bin/wineserver",
"winecfg": "lib64/wine/x86_64-windows/winecfg.exe"
},
"recommended": false
}
]
}
]

22
src/lib/dxvk.rs Normal file
View file

@ -0,0 +1,22 @@
use serde::{Serialize, Deserialize};
const LIST: &str = include_str!("../../assets/dxvk.json");
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct List {
pub vanilla: Vec<Version>,
pub r#async: Vec<Version>
}
impl List {
pub fn get() -> Result<Self, serde_json::Error> {
Ok(serde_json::from_str(LIST)?)
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Version {
pub version: String,
pub uri: String,
pub recommended: bool
}

View file

@ -1,3 +1,4 @@
pub mod consts; pub mod consts;
pub mod config; pub mod config;
pub mod game; pub mod game;
pub mod dxvk;

View file

@ -7,24 +7,89 @@ use anime_game_core::prelude::*;
use crate::ui::get_object; use crate::ui::get_object;
use crate::lib::config; use crate::lib::config;
use crate::lib::dxvk;
#[derive(Clone)] #[derive(Clone)]
pub struct Page { pub struct Page {
pub page: adw::PreferencesPage, pub page: adw::PreferencesPage,
pub game_version: gtk::Label, pub game_version: gtk::Label,
pub patch_version: gtk::Label pub patch_version: gtk::Label,
pub dxvk_recommended_only: gtk::Switch,
pub dxvk_vanilla: adw::ExpanderRow,
pub dxvk_async: adw::ExpanderRow
} }
impl Page { impl Page {
pub fn new() -> Result<Self, String> { pub fn new() -> Result<Self, String> {
let builder = gtk::Builder::from_string(include_str!("../../../assets/ui/.dist/preferences_general.ui")); let builder = gtk::Builder::from_string(include_str!("../../../assets/ui/.dist/preferences_general.ui"));
Ok(Self { let result = Self {
page: get_object(&builder, "general_page")?, page: get_object(&builder, "general_page")?,
game_version: get_object(&builder, "game_version")?, game_version: get_object(&builder, "game_version")?,
patch_version: get_object(&builder, "patch_version")? patch_version: get_object(&builder, "patch_version")?,
})
dxvk_recommended_only: get_object(&builder, "dxvk_recommended_only")?,
dxvk_vanilla: get_object(&builder, "dxvk_vanilla")?,
dxvk_async: get_object(&builder, "dxvk_async")?
};
// Update DXVK list
let list = match dxvk::List::get() {
Ok(list) => list,
Err(err) => return Err(err.to_string())
};
let mut components = Vec::new();
for version in list.vanilla {
let row = adw::ActionRow::new();
let button = gtk::Button::new();
row.set_title(&version.version);
row.set_visible(version.recommended);
button.set_icon_name("document-save-symbolic");
button.set_valign(gtk::Align::Center);
button.add_css_class("flat");
row.add_suffix(&button);
result.dxvk_vanilla.add_row(&row);
components.push((row, version));
}
for version in list.r#async {
let row = adw::ActionRow::new();
let button = gtk::Button::new();
row.set_title(&version.version);
row.set_visible(version.recommended);
button.set_icon_name("document-save-symbolic");
button.set_valign(gtk::Align::Center);
button.add_css_class("flat");
row.add_suffix(&button);
result.dxvk_async.add_row(&row);
components.push((row, version));
}
// Set DXVK recommended only switcher event
result.dxvk_recommended_only.connect_state_notify(move |switcher| {
for (component, version) in &components {
component.set_visible(if switcher.state() {
version.recommended
} else {
true
});
}
});
Ok(result)
} }
pub fn title() -> String { pub fn title() -> String {
@ -39,6 +104,7 @@ impl Page {
self.game_version.set_tooltip_text(None); self.game_version.set_tooltip_text(None);
self.patch_version.set_tooltip_text(None); self.patch_version.set_tooltip_text(None);
// Update game version
status_page.set_description(Some("Updating game info...")); status_page.set_description(Some("Updating game info..."));
match game.try_get_diff()? { match game.try_get_diff()? {
@ -63,6 +129,7 @@ impl Page {
} }
} }
// Update patch version
status_page.set_description(Some("Updating patch info...")); status_page.set_description(Some("Updating patch info..."));
match Patch::try_fetch(config.patch.servers)? { match Patch::try_fetch(config.patch.servers)? {