Commit graph

169 commits

Author SHA1 Message Date
Observer KRypt0n_
25b18958bc
feat: implemented relm4 0.6.0-alpha.2 and gtk 4.10 2023-03-19 16:39:33 +02:00
Observer KRypt0n_
4efa6abbb0 feat(core): implemented new SDK 2023-03-15 23:11:34 +02:00
Observer KRypt0n_
da60529a0d
feat(i18n): added "disabled dxvk selection" translations 2023-03-08 20:08:47 +02:00
Observer KRypt0n_
e21dddd2a3
feat(core): implemented SDK 0.5.0 2023-03-08 18:37:16 +02:00
Observer KRypt0n_
ae990e996b
feat(core): implemented SDK 0.4.0 2023-03-08 14:32:32 +02:00
Observer KRypt0n_
58743eca04
3.1.4 2023-03-07 22:52:24 +02:00
Observer KRypt0n_
3e8b63e1a5
Merge pull request #88 from tigersoldier/zh-translation
Adding translation for zh-cn (Simplified Chinese)
2023-03-06 21:00:09 +02:00
Observer KRypt0n_
95548fc394 feat(ui): added signal blockings to recommended only switches 2023-03-06 20:00:06 +02:00
Tiger Soldier
f46ae89dca Merge remote-tracking branch 'upstream/main' into zh-translation 2023-03-06 09:53:26 -08:00
Tiger Soldier
b2aef08471 Adding translation for zh-cn (Simplified Chinese)
Note that I changed the language names to lookup from {lang}-{region} instead of
just {lang}, because Genshin Impact supports both zh-cn and zh-tw locales.
zh-tw's tranlsation is different zh-cn.
2023-03-06 09:49:08 -08:00
Observer KRypt0n_
c220c74d5d
feat(ui): shrinked wine/dxvk lists to 12 versions 2023-03-06 19:26:43 +02:00
Observer KRypt0n_
d69107dfba feat(core): added dynamic components loading
Now launcher will update its local wine/dxvk versions index from remotes in config file
2023-03-06 12:39:24 +02:00
Observer KRypt0n_
7fead37513
refactor: implemented #84 2023-03-05 22:52:53 +02:00
Observer KRypt0n_
824da89578
Merge pull request #84 from cybik/xdg-nit
Use open library for xdg
2023-03-05 22:42:32 +02:00
Renaud Lepage
e1e53d4b49 xdg open 2023-03-05 20:31:12 +00:00
Observer KRypt0n_
f8c457b699 feat(ui): moved integer scaling, fsr and nis into separate group in gamescope settings
FSR, NIS and Integer scaling got separate "upscaling" section in gamescope settings.
As well were added descriptions so users can actually
know what e.g. integer scaling is
2023-03-05 12:52:19 +02:00
Observer KRypt0n_
3c7eba4d79
feat: added game repairing function 2023-03-05 00:16:17 +02:00
Observer KRypt0n_
e6c99ba59c
feat(ui): temporary hidden repair game button
Marked as planned to be done in 3.1.0
2023-03-04 19:36:50 +02:00
Observer KRypt0n_
3ccd66aa74
fix(ui): fixed background picture updating on "update background" switch disabled 2023-03-04 19:32:56 +02:00
Observer KRypt0n_
5075588f6a
fix(ui): changed some icons names to -symbolic variants 2023-03-04 13:54:18 +02:00
Observer KRypt0n_
3f6fe2b847
feat(ui): added experimental discord rpc support 2023-03-02 22:31:35 +02:00
Observer KRypt0n_
84683ded86
feat(ui): added gamescope settings support
Added gamescope settings support. As well made gamemode and gamescope switches
non-sensitive if needed packages aren't installed
2023-03-02 15:31:21 +02:00
Observer KRypt0n_
5ae39efbac
fix(ui): fixed background picture updating 2023-03-01 18:59:00 +02:00
Observer KRypt0n_
7d080fcdf4
fix: fixed mistake in the previous commit
I'm such a clown lol
2023-02-28 23:04:25 +02:00
Observer KRypt0n_
a3aad7a2f4
fix: fixed (?) error on deleting non-installed voice package
I didn't test this but I think it should work lol
2023-02-28 22:52:18 +02:00
Observer KRypt0n_
f5231fe637
feat: added voice packages selection to settings 2023-02-28 22:42:08 +02:00
Observer KRypt0n_
3b40ce75e6
feat(ui): added environment settings page
Added Environment settings page where you can specify command which
will be used to run the game, and manage
its environment variables
2023-02-26 19:15:18 +02:00
Observer KRypt0n_
ad0893ec8b
fix(i18n): changed format of selected launcher language in config file 2023-02-26 15:07:40 +02:00
Observer KRypt0n_
c8e8413a00
feat(i18n): added automatic language settings updating from i18n mod 2023-02-26 15:05:43 +02:00
Observer KRypt0n_
0e07cb0698
feat(core): reworked main window's messages
Some messages (relm4 component's input commands) were renamed

Added `UpdateLauncherState` message to, well, update launcher state.
By calling this status page will appear with information about
current status getting progress

Added some new error messages. Before, heavy tasks
were sending errors only to tracing logs. Now they also will generate toast messages

Added patch applying functionality to the main button.
Also made main window disappear when the game is running (like it works now in GTK launcher)
2023-02-25 18:08:25 +02:00
Observer KRypt0n_
b7e85b7a8f
fix(ui): 🐛 added background downloading on style's change from settings
Previously launcher wasn't downloading background picture if the style was changed from the settings. This lead to situation when the window size and components position is updated, but background is fully transparent. With this change launcher will try to download picture if default background file doesn't exist. Not that launcher won't try to update this picture and this will happen only after restart, which is not an issue, I think
2023-02-24 19:31:32 +02:00
Observer KRypt0n_
4f560eaa5e
feat(ui): added paths selection page in first run window 2023-02-24 11:13:14 +02:00
Observer KRypt0n_
3f5ce430f9
feat(ui): initial work on adding first run window
Added blank first run window with welcome page. On first start launcher will create launcher folder and `.first-run` file inside if needed. If file exists - launcher will open first run window instead of the main one (to prevent further data loadings in `init` functions)
2023-02-23 20:37:02 +02:00
Observer KRypt0n_
fcb24f803b
feat(ui): made "update background" switcher
Now this switch will create `.keep-background` file in the launcher folder if launcher is supposed to keep current `background` file
2023-02-23 19:33:59 +02:00
Observer KRypt0n_
8199e0eac9
components: made all preferences components async
- apparently they tend to freeze without it
- also added use of `AdwStatusPage` during heavy tasks execution
2023-02-22 20:58:01 +02:00
Observer KRypt0n_
6525fbb0d9
core: done dynamic heavy tasks initialization
- now launcher is able to load some heavy stuff in background
  so they will not freeze it during start
- patch status and latest game data is loaded in background from now
- renamed some components and their messages types for consistency
2023-02-22 20:46:47 +02:00
Observer KRypt0n_
ba75180811
preferences: made settings sections separate components
- now `General` and `Enhancements` sections are relm4 components
- this change improves code structure and should help
  adding dynamic data loading on app start in future
- settings components are also not async from now because they don't need to
2023-02-22 20:13:58 +02:00
Observer KRypt0n_
76538fbf7d
appearance settings: added initial "download background" option support
- added translations for appearance section
2023-02-22 18:43:35 +02:00
Observer KRypt0n_
5870316724
general settings: added test launcher style switcher
- classic style loads its background from "config's_tmp_path/background"
  so from "launcher folder/background" by default
- icons will be changed in some future
2023-02-21 17:32:57 +02:00
Observer KRypt0n_
44d074d864
Changed debug logging
- stdout logs got rid of rustls messages and now are pretty styled
- logs are saved into the `debug.log` file in the launcher folder
  they're not filtered and contain all the messages
- toasts timeout fixed to 5 seconds
- added "save" button which will, well, not save logs
  but open `debug.log` file using `xdg-open`
2023-02-11 12:34:39 +02:00
Observer KRypt0n_
4965a9f005
Settings: added toast messages on errors 2023-02-11 11:12:57 +02:00
Observer KRypt0n_
036beac9d8
Settings: added wine/dxvk applying on one's selection 2023-02-05 14:26:40 +02:00
Observer KRypt0n_
5ad110a9b4
Removed unnecessary things 2023-02-04 16:05:14 +02:00
Observer KRypt0n_
0916894165
core: made some components async and updated launcher sdk
which fixed app's blocking when downloading wine/dxvk
2023-02-04 14:44:19 +02:00
Observer KRypt0n_
2a96982fd7
Components list: added on_downloaded / deleted events 2023-02-03 17:23:17 +02:00
Observer KRypt0n_
7ba025489d
preferences: added downloaded wine/dxvks lists 2023-02-03 13:25:40 +02:00
Observer KRypt0n_
29702782e2
settings: added patch status displaying 2023-01-29 15:11:13 +02:00
Observer KRypt0n_
84163c470d
config: fixed test path fox game diff getter 2023-01-28 21:19:13 +02:00
Observer KRypt0n_
bf3e58e21c
settings: added showing of installed game version 2023-01-28 21:18:24 +02:00
Observer KRypt0n_
14c425ae9b
Updated SDK 2023-01-28 20:02:06 +02:00
Observer KRypt0n_
db24d1bd25
Components list: added base components states system 2023-01-22 12:33:26 +02:00
Observer KRypt0n_
f168862cc7
Components list: added working "recommended only" switcher 2023-01-22 11:56:56 +02:00
Observer KRypt0n_
48d7f0fc06
General settings: added wine/dxvk selection skeleton 2023-01-22 11:24:15 +02:00
Observer KRypt0n_
d38d098882
General settings: added wine & dxvk selection UI 2023-01-19 14:03:11 +02:00
Observer KRypt0n_
e3d36f1f3a
Splitted localization files & added about dialog 2023-01-19 13:23:17 +02:00
Observer KRypt0n_
7bb2ecb270
Added 3 remaining options to the fps unlocker settings 2023-01-19 12:13:53 +02:00
Observer KRypt0n_
6839ec1ba2
Implemented all remained enhancements properties 2023-01-18 19:54:07 +02:00
Observer KRypt0n_
d6b5eb6411
relm4 init commit 2023-01-18 18:37:53 +02:00
Observer KRypt0n_
7d91714d30
Added new options to the fps unlocker 2022-12-21 17:31:45 +02:00
Observer KRypt0n_
9fa5f9e306 Several changes
- updated core library with a few fixes
- improved gamer updater. Now it will not start to download next update
  before the previous one was properly applied (hdiff and so on)

Core library changes:
- updated `VOICE_PACKAGES_SIZES`
- added version prediction based on the `.version` file for voiceovers
- fixed redownloading of downloaded files in `Downloader::download_to`
2022-12-07 11:25:00 +02:00
Observer KRypt0n_
eaa8379976
Not sure what I wanted to fix initially
but in the end I rewrote tons of code,
including total change of strings to PathBuf
also I fixed all the warnings generated by clippy
2022-09-30 00:00:36 +02:00
Observer KRypt0n_
002c77a9c1
Several changes
- updated core library and components library
- added (likely working) updates pre-downloading functionality
- moved to `anyhow::Result` in lots of places
2022-09-26 15:08:29 +02:00
Observer KRypt0n_
5d26f84659
Moved to libadwaita 1.2 2022-09-24 16:52:31 +02:00
Observer KRypt0n_
368710fd9d
Improved FPS unlocker support
- added fullscreen and priority options
- added fps unlocker folder creation
2022-09-14 09:32:56 +02:00
Observer KRypt0n_
a7b1345302
Added support for FPS unlocker 2022-09-11 23:42:58 +02:00
Observer KRypt0n_
1eedbb52a3
Added initial updates pre-downloading support (from 1.0.3 core) 2022-09-10 22:05:46 +02:00
Observer KRypt0n_
57c36ae52d
Several changes
- updated core library; now launcher will continue downloading
  of partially downloaded files
- added downloading speed limiter (`config.json` -> `launcher.speed_limit`)
- added `Config::try_get_selected_dxvk_info` method;
  now launcher loads currently applied dxvk version from the wine prefix files
2022-09-08 17:27:37 +02:00
Observer KRypt0n_
8a62ed5674
Reworked DXVKs UI components to support different builds 2022-08-31 22:39:58 +02:00
Observer KRypt0n_
00ff5c6409
Implemented updated core library and new components system (2) 2022-08-31 20:27:52 +02:00
Observer KRypt0n_
6e2ca304ff
Fixed gamescope switcher's state loading from config 2022-08-08 12:24:50 +02:00
Observer KRypt0n_
3bb1688e59
Fixed FSR switch in gamescope settings 2022-08-08 10:24:04 +02:00
Observer KRypt0n_
43b09f295d
1.0.0
- added new wine versions

From previous commits:
- changed preferences icon, updated main window's menu
- removed open launcher folder button from settings
- added fix for dxvk applying with spaces to the runners folder path
- updated default patch repo's mirror
- updated core library; added support for Chinese version
- added default game edition prediction based on system locale
- added ability to run the game when all patch servers are down
- used `std::process::Output` on DXVK applying instead of String
  this fixes errors related to UTF-8 decoding since different systems may have
  different default encodings
- added "borderless" and "virtual desktop" options to settings;
  added separate FSR option to gamescope settings
- dxvk now uses wine64 to update prefix before applying patches
- added setting of `-window-mode exclusive` args to the wine when using wine FSR
- `WinePrefix::update` and so now use wine64 binary instead of wineboot
- renamed `files.wine` to `files.wine64` in `wine.json`
- `Config::try_get_wine_executable` function now return wine64 binary
- added errors toasting for initial setup window
2022-08-07 15:15:51 +02:00
Observer KRypt0n_
bfa8276a8e
Removed open launcher folder button from settings 2022-08-07 14:27:56 +02:00
Observer KRypt0n_
a1cdf81eca
Used std::process::Output on DXVK applying instead of String
This fixes errors related to UTF-8 decoding since different systems may have
different default encodings
2022-08-05 23:22:42 +02:00
Observer KRypt0n_
08a6e3bc5e
Several changes
- added "borderless" and "virtual desktop" options to settings;
  added separate FSR option to gamescope settings
- dxvk now uses wine64 to update prefix before applying patches
- added setting of `-window-mode exclusive` args to the wine when using wine FSR
- `WinePrefix::update` and so now use wine64 binary instead of wineboot
- renamed `files.wine` to `files.wine64` in `wine.json`
- `Config::try_get_wine_executable` function now return wine64 binary
- added picture to the repo
2022-08-05 22:33:47 +02:00
Observer KRypt0n_
bf31327532
Reworked work with config file
- now missing fields will be automatically filled;
  excess fields - removed.
  thanks to new code structure I can easily create
  new fields or rename old ones
- improved `WineLang` enum; now launcher loads languages list dynamically
  from this enum so I can easily add support for new languages
2022-08-04 11:47:57 +02:00
Observer KRypt0n_
cc5e9b3d4e
0.7.1
- updated core library; new version caches patch fetching results
- added Nvidia Image Scaling option to gamescope

From previous commits:
- added `dxvk-async-1.10.3`
2022-08-03 22:37:36 +02:00
Observer KRypt0n_
ea6094daf5
0.7.0
- added gamescope support
- now gamemode option will not be clickabke if gamemode is not installed
- reworked enhancements page's events
- changed winesync env variables
- added `lib::is_available` function to check packages availability
2022-08-03 21:38:01 +02:00
Observer KRypt0n_
a5caf1a217
0.6.3
- updated core library;
  added `lib::consts::TELEMETRY_CHECK_TIMEOUT` and `PATCH_FETCHING_TIMEOUT`
  to specify new core-required timeouts
- fixed error message toasting when failed to run the game
- added telemetry servers acessibility checking before running the game

From previous commits:
- fixed setting game command default value in environment settings
- use `patch.root = false` by default in flatpak
2022-08-03 13:44:48 +02:00
Observer KRypt0n_
bbedc288fe
Fixed settings game command default value in environment settings 2022-08-03 12:22:40 +02:00
Observer KRypt0n_
b5fe109be6
Several changes
- added "Open launcher folder" button to settings
- removed `glib::Downgrade` trait from all the `App`s' `Value`s
- removed `tasks` mod; removed `tokio` dependency;
  rewritten `OpenPreferencesPage` to work with threads instead of futures
- added `opt-level = 3` to release profile
2022-08-02 19:26:10 +02:00
Observer KRypt0n_
0baa3593ac
Several changes
- upscaled logo to 512x512; added source link
- bundled all the UI files into gtk resources
2022-08-02 18:43:07 +02:00
Observer KRypt0n_
0990340a2b
0.6.1
- added ability to edit game running command
2022-08-02 12:22:37 +02:00
Observer KRypt0n_
2d520f5e40
0.6.0
- made working environment variables manager

From previous commits:
- renamed `ToastError` trait to `Toast`;
  renamed its `toast_error` method to `toast`;
  now `toast` method will not display button if toast's message is empty
- updated `game::run` function, now it prints running command
  and supports `gamemoderun`
- added automatic `DXVK_ASYNC=1` setting for dxvk-async
2022-08-02 10:45:37 +02:00
Observer KRypt0n_
114d388a8c
Several changes
- renamed `ToastError` trait to `Toast`;
  renamed its `toast_error` method to `toast`;
  now `toast` method will not display button if toast's message is empty
- updated `game::run` function, now it prints running command
  and supports `gamemoderun`
2022-08-02 09:38:27 +02:00
Observer KRypt0n_
4a83100b7e
0.5.3
- added "Repair game" button
- added `repairer` field to settings file
- updated core library

From previous commits:
- made preparations for environment settings
- now launcher hides when you launch the game
- now `Config::try_get_wine_executable` can return `Some("wine")`
- removed old wine and dxvk versions;
  added new Wine-GE-Proton and GE-Proton builds
2022-08-01 20:04:32 +02:00
Observer KRypt0n_
21ee39ad17
Several changes
- made preparations for environment settings
- now launcher hides when you launch the game
- now `Config::try_get_wine_executable` can return `Some("wine")`
- removed old wine and dxvk versions;
  added new Wine-GE-Proton and GE-Proton builds
2022-08-01 14:13:26 +02:00
Observer KRypt0n_
c378f8e379
0.5.2
- updated core library
- now general settings page displays patch version with orange color
  if patch is not applied
- added working patch applying mechanism
- added `patch.root` config, and you can apply patch
  without using root privilegies
2022-07-31 13:42:16 +02:00
Observer KRypt0n_
1aa144bf37
0.5.1
- updated core library;
  now you can delete voice packages from settings
2022-07-30 19:17:38 +02:00
Observer KRypt0n_
2f0862946f
0.5.0
- removed "Settings" main menu item because I said so
- made `VoiceoverRow` component;
  added dynamic voiceovers loading
  Now you can download new voiceovers, but can't delete them (WIP)

From previous commits:
- probably fixed startup gtk errors
2022-07-30 11:54:11 +02:00
Observer KRypt0n_
dcf2a7821a
Several changes
- added subfolders support for blueprint compiler;
  moved first_run and preferences pages to subfolders
- added 2 first run pages:
  + when you don't have some required components
  + to select default folders paths
2022-07-29 14:44:48 +02:00
Observer KRypt0n_
fbfba4744f
Removed excess use statements to hide warning messages 2022-07-28 14:07:16 +02:00
Observer KRypt0n_
b1b6f2d68e
Improved DXVK applying experience 2022-07-24 22:04:35 +02:00
Observer KRypt0n_
737aa7e8bc
Added hot config system, fixed gamemode option 2022-07-24 15:01:59 +02:00
Observer KRypt0n_
5fee051c43
Added temp folder path param to config
it fixes issue with huge data downloading. You can specify `null` as temp path
and then default system temp folder will be used
Also added `unwrap` everywhere I could add it
just not to see warnings in the code editor
2022-07-23 22:03:11 +02:00
Observer KRypt0n_
3f4949fc26
Several changes
- added DXVK applying
- added wine versions sorting in comborow
- fixed error toast displaying during wine/dxvk downloading
2022-07-23 17:08:50 +02:00
Observer KRypt0n_
9d5b3b27ed
Made some progress on adding game/voiceovers downloading 2022-07-17 16:59:57 +02:00
Observer KRypt0n_
82a6e01200
Added working wine version selection 2022-07-15 17:17:34 +02:00
Observer KRypt0n_
b6bfc4d2ec
Added dxvks downloading and deleting functionality 2022-07-15 15:09:45 +02:00
Observer KRypt0n_
741513ab91
Made an abstraction over widgets with downloading functionality 2022-07-14 23:13:00 +02:00