Skip to content

Experimental Legendary support + UI + update monarch-launcher.com API#96

Merged
an0nymoos3 merged 28 commits intodevelopmentfrom
legendary
Jan 22, 2026
Merged

Experimental Legendary support + UI + update monarch-launcher.com API#96
an0nymoos3 merged 28 commits intodevelopmentfrom
legendary

Conversation

@an0nymoos3
Copy link
Copy Markdown
Member

@an0nymoos3 an0nymoos3 commented Jan 22, 2026

This change brings abstractions for handling more storefronts in the "backend" logic, UI updates/changes and more stores show up thanks to new API changes in monarch-launcher.com.

Summary of changes:

  • Uses legendary exe to download and manage Epic Games store games.
  • UI updates
  • Updated Rust code for handling general Store type T. Useful for adding more stores in the future.

@an0nymoos3 an0nymoos3 merged commit 2256256 into development Jan 22, 2026
2 of 4 checks passed
@an0nymoos3 an0nymoos3 deleted the legendary branch January 22, 2026 22:11
an0nymoos3 added a commit that referenced this pull request Mar 18, 2026
* Default settings button (#91)

* Game properties (#92)

* backend functionality for getting game info

* added frontend code for displaying game properties/info

* changed error to wip to reflect progress

* ProtonDB integration (#93)

* backend functionality for getting game info

* added frontend code for displaying game properties/info

* changed error to wip to reflect progress

* added ProtonDB rating to game properties

* added linux condition for getting protondb rating and changed store window name to be used for other purposes

* Improved global state handling (#94)

* initial replacement of public static mut with Lazy<RwLock<T>> for MONARCH_STATE

* added some bails

* Game properties (#95)

* backend functionality for getting game info

* added frontend code for displaying game properties/info

* changed error to wip to reflect progress

* added ProtonDB rating to game properties

* added linux condition for getting protondb rating and changed store window name to be used for other purposes

* added descriptions to searched games

* fixed local descriptions

* fixed frontend build issues

* Experimental Legendary support + UI + update monarch-launcher.com API (#96)

* added document for Store Interface

* empty legendary files

* added empty traits

* updated readme

* changed some interface code

* added support for downloading legendary + started writing LegendaryClient

* added empty store client implementations

* fixed compiler issues related to new traits

* added more trait methods

* added basic launch() method

* added some logic for launching game type interface via their storefront interface

* added some legendary methods

* big reworks to game platform/store implementations and how commands are executed in the backend

* got rid of some unused code

* changed search page UI and improved library UI

* added better filter passing from frontend to backend

* legendary launcher stuffs and new ui to accomodate changes

* new search games struct with multiple stores

* can now download games from both steam and epic games

* adding game download options

* adding compile-time urls to monarch-launcher.com for development

* adding legendary support to windows

* update env variables in .github workflows

* automatic download and login to legendary

* Iced rework (#98)

* Fixed release action (#78)

* added a new action

* Create release.yml

* Delete .github/workflows/release.yml

* updated create-release file from docs and error

* initial change moving from Tauri to Iced

* working on initial app and theme

* more styling similar to Tuari Monarch

* search page is back to MVP state

* added hover effects

* reimplementing game drawers

* moving animation logic into drawer component

* started working on library

* debugging library stuff

* can refresh and display library games

* library animations

* fixed library refresh adding missing thumbnails

* more theming

* ui layout for settings page

* adding settings functionalitty

* game details page

* improved layout of game details page + download artwork for wallpaper

* game details page improvements + library still orange

* windows compilation errors fixed

* better gamedetails styling + launch button

* fixed compiler issues

* working on terminal

* monarch terminal, closing behaviour, etc...

* launch games via terminal

* can launch games via steam again

* reworking stores/platforms for games

* added modal + helper functions + adding modal into errors that occur in 'backend calls'

* better game details wallpaper

* working on adding a webview

* removed webview temporarily and just open links in browser

* added different calls for windows and linux

* initial properties modal

* added properties to gamedetailspage

* moving properties into MonarchGame

* more properties + better properties consistency

* removed references to Tauri from README

* updated phrasing in readme

* made secondary button more visible

* re-adding packaging to Monarch

* added None and Native options to compatibility layer and exec paths

* got packaging going. needs more config

* added run command to monarch-packager

* sync

* implemented settings using Arc<RwLock>

* updated global state and settings

* fixed logging issue

* improved properties selection + umu can launch from termina

* cleaning up + removing warnings

* improved scanner button

* changing settings persistent state code

* renamed platform to store for better semantics. added download options modal + 'store-page' for games

* added danger_button type + moved settings path into Settings struct to avoid calling fs function all the time for path

* only load game properties once, not every time library page loads

* cleaned up settings by replaceing RwLockGuard syntax with &mut

* added link to settings page

* confirm modal dissapears, moved some shit into folders

* added check + button for installing steamcmd. does not function yet

* readding steamcmd install functionality

* added channels to tell terminal spawners when their commands end + improved installation of steamcmd and legendary

* umu download

* send a reference to settings to view(). display username of saved user in settings

* delete credentials buttons

* mock home page

* steamcmd login works + better umu log

* added remove buttons for umu, steamcmd and legendary

* trying to make fonts more consistent

* moved logo icons into seperate folder for cleaner structure

* updated paths

* fixed incorrect file loading

* home recommendations now contain properties

* added some more icons

* reimplementing 'manual game adding'

* ui updates settings page

* protondb in store page

* added option for fields that can be empty

* added file and folder dialogs

* added file browser for importing games manually

* added spinning refresh symbol when scanning for games

* made sure refresh button always spins on refresh

* added actions modal for handling removal/uninstallation of library games and future actions

* gonna test on windows now

* somehow previously missed actions modal

* fixing windows build

* sort recomended games based on last played

* version bump

* windows packaging

* updating workflows

* removed node dependency

* just make macos compile

* forgot to add macos legendary module

* updated README

* forcing bash for creating releases

* trying to fix missing artifacts in release

* trying to use monarch-packager for releases
an0nymoos3 added a commit that referenced this pull request Apr 22, 2026
* Default settings button (#91)

* Game properties (#92)

* backend functionality for getting game info

* added frontend code for displaying game properties/info

* changed error to wip to reflect progress

* ProtonDB integration (#93)

* backend functionality for getting game info

* added frontend code for displaying game properties/info

* changed error to wip to reflect progress

* added ProtonDB rating to game properties

* added linux condition for getting protondb rating and changed store window name to be used for other purposes

* Improved global state handling (#94)

* initial replacement of public static mut with Lazy<RwLock<T>> for MONARCH_STATE

* added some bails

* Game properties (#95)

* backend functionality for getting game info

* added frontend code for displaying game properties/info

* changed error to wip to reflect progress

* added ProtonDB rating to game properties

* added linux condition for getting protondb rating and changed store window name to be used for other purposes

* added descriptions to searched games

* fixed local descriptions

* fixed frontend build issues

* Experimental Legendary support + UI + update monarch-launcher.com API (#96)

* added document for Store Interface

* empty legendary files

* added empty traits

* updated readme

* changed some interface code

* added support for downloading legendary + started writing LegendaryClient

* added empty store client implementations

* fixed compiler issues related to new traits

* added more trait methods

* added basic launch() method

* added some logic for launching game type interface via their storefront interface

* added some legendary methods

* big reworks to game platform/store implementations and how commands are executed in the backend

* got rid of some unused code

* changed search page UI and improved library UI

* added better filter passing from frontend to backend

* legendary launcher stuffs and new ui to accomodate changes

* new search games struct with multiple stores

* can now download games from both steam and epic games

* adding game download options

* adding compile-time urls to monarch-launcher.com for development

* adding legendary support to windows

* update env variables in .github workflows

* automatic download and login to legendary

* Iced rework (#98)

* Fixed release action (#78)

* added a new action

* Create release.yml

* Delete .github/workflows/release.yml

* updated create-release file from docs and error

* initial change moving from Tauri to Iced

* working on initial app and theme

* more styling similar to Tuari Monarch

* search page is back to MVP state

* added hover effects

* reimplementing game drawers

* moving animation logic into drawer component

* started working on library

* debugging library stuff

* can refresh and display library games

* library animations

* fixed library refresh adding missing thumbnails

* more theming

* ui layout for settings page

* adding settings functionalitty

* game details page

* improved layout of game details page + download artwork for wallpaper

* game details page improvements + library still orange

* windows compilation errors fixed

* better gamedetails styling + launch button

* fixed compiler issues

* working on terminal

* monarch terminal, closing behaviour, etc...

* launch games via terminal

* can launch games via steam again

* reworking stores/platforms for games

* added modal + helper functions + adding modal into errors that occur in 'backend calls'

* better game details wallpaper

* working on adding a webview

* removed webview temporarily and just open links in browser

* added different calls for windows and linux

* initial properties modal

* added properties to gamedetailspage

* moving properties into MonarchGame

* more properties + better properties consistency

* removed references to Tauri from README

* updated phrasing in readme

* made secondary button more visible

* re-adding packaging to Monarch

* added None and Native options to compatibility layer and exec paths

* got packaging going. needs more config

* added run command to monarch-packager

* sync

* implemented settings using Arc<RwLock>

* updated global state and settings

* fixed logging issue

* improved properties selection + umu can launch from termina

* cleaning up + removing warnings

* improved scanner button

* changing settings persistent state code

* renamed platform to store for better semantics. added download options modal + 'store-page' for games

* added danger_button type + moved settings path into Settings struct to avoid calling fs function all the time for path

* only load game properties once, not every time library page loads

* cleaned up settings by replaceing RwLockGuard syntax with &mut

* added link to settings page

* confirm modal dissapears, moved some shit into folders

* added check + button for installing steamcmd. does not function yet

* readding steamcmd install functionality

* added channels to tell terminal spawners when their commands end + improved installation of steamcmd and legendary

* umu download

* send a reference to settings to view(). display username of saved user in settings

* delete credentials buttons

* mock home page

* steamcmd login works + better umu log

* added remove buttons for umu, steamcmd and legendary

* trying to make fonts more consistent

* moved logo icons into seperate folder for cleaner structure

* updated paths

* fixed incorrect file loading

* home recommendations now contain properties

* added some more icons

* reimplementing 'manual game adding'

* ui updates settings page

* protondb in store page

* added option for fields that can be empty

* added file and folder dialogs

* added file browser for importing games manually

* added spinning refresh symbol when scanning for games

* made sure refresh button always spins on refresh

* added actions modal for handling removal/uninstallation of library games and future actions

* gonna test on windows now

* somehow previously missed actions modal

* fixing windows build

* sort recomended games based on last played

* version bump

* windows packaging

* updating workflows

* removed node dependency

* just make macos compile

* forgot to add macos legendary module

* updated README

* forcing bash for creating releases

* trying to fix missing artifacts in release

* trying to use monarch-packager for releases

* flip if-let to let-else to unindent code (#100)

* add caching to CI, remove unused/unnecessary code/comments (#101)

* add caching to CI, remove unused/unnecessary code/comments

* remove apt update from ubuntu platform

* Replace JSON library with Sqlite/sqlx (#102)

* messing around with sqlx and sqlite instead of json

* added some methods for communicating with sqlite db

* added more sql shit

* init_db() creates a new .db3 file with tables

* cleaning up library code + refining sql code. currently sql code has duplication

* fixed some export/import issues

* fixed async library loading. TODO: Improve loading performance

* faster library load times by using in-ram games

* removed some compiler warnings + fixed steam secret stuff

* added missing match case for windows and mac + removed some debug!() statements

* added upserting to update_game()

* Improved XDG spec compliance (#103)

* monarch checks for and uses system managed binaries for umu, steamcmd and legendary

* try to make umu, steamcmd and legendary installs adhere to the xdg base dir spec

* removed early exit in case of failed directory reads

* fixing some logic errors

* fixed minor merge issues

* removed umu code from non-linux builds

* fixed steam related compiler errors

* removed async from func definition

* copied func def

* added errors messages when preinstalled versions of umu, steamcmd and legendary exist

* reworking steamcmd installation to fix lock poisoning

* fixed deadlock issue

* fixed steamcmd_is_installed() check

* Fixes refresh issue in library (#104)

* fixed some clippy warnings

* fixed refresh library bug

* add `secure_input_field` and use it for password inputs (#105)

* Toggle button for hiding password (#106)

* added conditional text fields for password + buttons with conditional icons

* added button for toggling hidden/secret password

* version bump

* removed git changes from file

---------

Co-authored-by: Samuel Åkesson <sermuns@lysator.liu.se>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant