- added remained .tmp files removing before launcher closes
- improved `Process.run()`, fixed its work with AppImages
also now it finds the real process id by the `pgrep -P` command
which is a lot faster and better
- made Discord RPC preparations
made `discord-rpc` cli utility
made `DiscordRPC` class to manage it
- changed `'` to `"` in every command execution
- `Voice.current` field changed to `Voice.installed`
- `Voice.selected` field now returns list of selected voice packages
- added `Voice.delete()` method to delete voice package
- `Voice.isUpdatePredownloaded()` method now can check list of voice packages
- fixed ProgressBar's `showTotals` property work
- decreased maximal wine prefix creation log size in progress bar
- improved `Process.run` command which now finds correct process id
- made DropdownCheckboxes component
- made voice packages selection system
- `Prefix.getWinetricks()` now makes `winetricks.sh` executable
- added test patch hint
- fixed `Install` script error with game updating
- fixed `InstallWine` and `InstallDXVK` scripts work
now they select installed things in config file
- now Archive Stream creates folders recursively before unpacking
- `DXVK.list()` and `Runners.list()` now don't require related to them folders to work
- now launcher automatically creates `constants.paths.launcherDir` directory at the start
- Wine-GE runners family moved to the top of the runners list
- now installed runner will be automatically selected
- launcher controls were slightly moved down
- fixed double resolved unpack directory logging in AbstractInstaller
- fixed `Prefix.create()` method work
- added `State.update()` method logging
- now settings button will be hidden when user are doing something
- added `InstallWine` and `InstallDXVK` scripts; added related launcher states
- decreased splash window size
- added `Game.getLatestData()` result caching, so basically every
`Game` and `Voice` method and field now caches most of the data
- Made `Game.predownloadUpdate()` method
- Made `Game.isUpdatePredownloaded()` method
- Made `Voice.predownloadUpdate()` method
- Made `Voice.isUpdatePredownloaded()` method
- fixed `Cache.get()` method work
- now launcher window hides when you launch the game
- added `pre_download_game` API field type definition
- added game pre-downloading button