Skip to content

feat: Add desktop GUI#42

Merged
LisoUseInAIKyrios merged 3 commits into
MorpheApp:devfrom
prateek-who:gui-update
Mar 14, 2026
Merged

feat: Add desktop GUI#42
LisoUseInAIKyrios merged 3 commits into
MorpheApp:devfrom
prateek-who:gui-update

Conversation

@prateek-who

@prateek-who prateek-who commented Feb 6, 2026

Copy link
Copy Markdown
Contributor

The GUI update with most of the stuff. Some stuff might be broken, will keep fixing them as they appear. Also, please check the build.gradle.kts file once just to make sure I didn't mess up anything that the team might have added there.

Tired of using the old CLI? Not sure where to get what files to get the CLI running? Too busy to read the documentation? Worry not ladies and gentlemen, we present to you the Morphe GUI!

We got shiny new look coat of paint to suit your needs with more coming on the way!

home_screen

Select the patch you want to use, including stable and dev patches!

Patch_selection_screen

See all the patches that will be applied even before they are applied! Are you a power user and want to make small tweak to the final command? With one click copy, your command will be all yours to experiment with! Also, see the morphe team's most deselected patches and decide if you want to listen to them :)

patches_application_screen

See the patch getting applied in real time just like how it does on the mobile patcher!

patch_getting_applied

Directly install the app to your phone over ADB if you are plugged in to your computer and not worry about transferring the app and installting it again!

Untitled design

And in case you happen to be in a hurry want the entire process to be done ASAP, we got your back there too!

quickmode

Visit your nearest morphe github to grab your CLI's GUI

@prateek-who

This comment was marked as resolved.

@LisoUseInAIKyrios LisoUseInAIKyrios changed the title feat: GUI Update feat: Add desktop GUI Feb 6, 2026
@LisoUseInAIKyrios

This comment was marked as resolved.

@LisoUseInAIKyrios LisoUseInAIKyrios linked an issue Feb 6, 2026 that may be closed by this pull request
2 tasks
@prateek-who

This comment was marked as resolved.

Comment thread src/main/composeResources/drawable/youtube_music.svg Outdated
@prateek-who

This comment was marked as resolved.

@prateek-who

This comment was marked as resolved.

@LisoUseInAIKyrios

This comment was marked as resolved.

@prateek-who

This comment was marked as resolved.

@LisoUseInAIKyrios

This comment was marked as resolved.

@prateek-who

This comment was marked as resolved.

@LisoUseInAIKyrios

This comment was marked as resolved.

@prateek-who

This comment was marked as resolved.

@prateek-who

Copy link
Copy Markdown
Contributor Author

Maybe we relocate the 'Code Preview' and the 'Suggested Deselected Patches' sections to the TopBar in the Patch Selection Screen? It's kinda looks ugly and cramped right now I feel. Will try to figure something out for this soon.

@LisoUseInAIKyrios

Copy link
Copy Markdown
Contributor

If code preview you mean the CLI command, then yes it can be at the top of the screen. It can be show if "expert mode" is enabled. The simplified mode setting can be inverted to "expert mode" and it's default off, to match Android Manager app.

Suggested deselected patches can be removed entirely. Patches already declare if they are default included, and we don't want hard coded patch preferences or anything else.

Ideally the only hard coded thing we should use, is a package name to app name lookup, so a human readable app name is shown and not the ugly package name. Eventually this will change so it's not needed, but for now it's ok.

@LisoUseInAIKyrios

Copy link
Copy Markdown
Contributor

The simple mode progress UI stub can be removed too since it's not easy to use with CLI text usage.

@prateek-who

prateek-who commented Feb 9, 2026

Copy link
Copy Markdown
Contributor Author

If code preview you mean the CLI command, then yes it can be at the top of the screen. It can be show if "expert mode" is enabled. The simplified mode setting can be inverted to "expert mode" and it's default off, to match Android Manager app.

Suggested deselected patches can be removed entirely. Patches already declare if they are default included, and we don't want hard coded patch preferences or anything else.

Ideally the only hard coded thing we should use, is a package name to app name lookup, so a human readable app name is shown and not the ugly package name. Eventually this will change so it's not needed, but for now it's ok.

Got it. I'll remove the suggested patches thingy entirely. Will integrate it into the patch card iteslf just like how mobile manager does it.

@prateek-who

Copy link
Copy Markdown
Contributor Author

The simple mode progress UI stub can be removed too since it's not easy to use with CLI text usage.

Do I do what the normal mode does and show the progress bar just spinning but no actual number?

@prateek-who

prateek-who commented Feb 9, 2026

Copy link
Copy Markdown
Contributor Author

Ok, it just says 'patching' now with a circular spinning icon, no progress or numbers and shows the latest text of the CLI in there like this:

Screenshot 2026-02-09 at 9 08 51 AM

@prateek-who

Copy link
Copy Markdown
Contributor Author

Was looking at adding this #26 . Saw your comment https://github.com/MorpheApp/morphe-patches/issues/336 on keeping them separate for the manager and the CLI. So, we add a flag that keeps only our needed lib and deletes other libs right? Or we could make this a GUI only option too and the Expert Mode gets the option to do this now since we are able to track the user device's architecture if they are connected over ADB (or give them an option to choose).
What do you think?

@LisoUseInAIKyrios

Copy link
Copy Markdown
Contributor

Rip-libs can be a cli argument. Can be something like --riplibs (architectures to keep, separated by commas)

--riplibs arm64-v8a,x86 strips all except for armv8 and x86.

I think this should be do-able by deleting subdirectories before apktool recompiles the app. Or remove before zipping the files into the final apk, or possibly even remove from the apk after it's created. Deleting before APKTool would be preferred if possible, but whatever is simplest may be the best.

@prateek-who

Copy link
Copy Markdown
Contributor Author

If a patch is not recommended the patches.mpp file sets "use" to false right? For youtube, only 2 out of the 61 patches have this field set to false,so naturally the gui auto selects the rest 59 and unselects those 2 and then lets the user decide what they want to do. However on the mobile patcher seems to deselect many more patches and shows only 54/61 selected. How is it doing that?

@LisoUseInAIKyrios

Copy link
Copy Markdown
Contributor

The Android Manager still auto selects all patches with use == true, so it includes 59 patches like CLI does.

But it will remember the last selected patches if using expert mode. Maybe you already patched using expert mode and excluded some patches?

@prateek-who

Copy link
Copy Markdown
Contributor Author

The Android Manager still auto selects all patches with use == true, so it includes 59 patches like CLI does.

But it will remember the last selected patches if using expert mode. Maybe you already patched using expert mode and excluded some patches?

Ah, that's probably it.

@prateek-who

Copy link
Copy Markdown
Contributor Author

Rip-libs can be a cli argument. Can be something like --riplibs (architectures to keep, separated by commas)

--riplibs arm64-v8a,x86 strips all except for armv8 and x86.

I think this should be do-able by deleting subdirectories before apktool recompiles the app. Or remove before zipping the files into the final apk, or possibly even remove from the apk after it's created. Deleting before APKTool would be preferred if possible, but whatever is simplest may be the best.

Added --riplibs like you said here. Right as it re-aligns the apk and before the signing it, it rips the libs that the user doesn't want. Right now it does it only for youtube. Will test and add reddit too since reddit says universal too. Size seems to be dropping by 50% for youtube.

@LisoUseInAIKyrios

Copy link
Copy Markdown
Contributor

Please make a separate PR with riplibs. Can merge that now.

@prateek-who

Copy link
Copy Markdown
Contributor Author

Add the CLI changes to the new PR, this PR has those changes and the GUI changes that riplibs needs. I am hoping I did it right here too? Those files won't cause nay conflicts in the future when this merges with dev branch right?

@LisoUseInAIKyrios

Copy link
Copy Markdown
Contributor

Correct there shouldn't be problems after riplibs PR is merged.

@LisoUseInAIKyrios

Copy link
Copy Markdown
Contributor

@wchill @inotia00 Feel free to review.

@prateek-who Please look over everything once more and make any other changes you'd like. If there are no new reviews then I will merge this 2 days from now.

@prateek-who

Copy link
Copy Markdown
Contributor Author

Will reset and do the remaining changes. Revamping the UI a bit, but maybe I'll release that as a future update.

@prateek-who

Copy link
Copy Markdown
Contributor Author

I need to be executed for the amount of times I have messed up doing a simple job on git.
Please check out the latest changes. I accidentally committed them a bit too early, but they have the GUI revamp I was talking about. See if they fit they aesthetics morphe wants to go for. Also added ability to add patches from non-morhpe sources too

@LisoUseInAIKyrios

Copy link
Copy Markdown
Contributor

I think a re-write or major changes can be a separate PR so we have CLI release before and after the major changes.

Keep your changes locally and after this PR is merged we can open a second PR work in progress with continued changes.

I will reset to the commit before the overhaul.

@prateek-who

Copy link
Copy Markdown
Contributor Author

Sure thing. Thanks a lot! Sorry for the mess!

@LisoUseInAIKyrios

Copy link
Copy Markdown
Contributor

@prateek-who Do you use Reddit? Feel free to send a mod message to https://www.reddit.com/r/MorpheApp and we can give a "contributor" flair, and you can make an announcement of this awesome new feature that we will sticky so others can find it.

Or if you're not active on Reddit, then one of the existing mods will make a post announcing this feature.

Will merge this tomorrow.

# Conflicts:
#	build.gradle.kts
#	gradle/libs.versions.toml
@prateek-who

Copy link
Copy Markdown
Contributor Author

Sure thing, will message the mods right away. Excited to see how people will find the whole package now!

Very soon after the launch I have a bit of a gui overhaul planned as well, since I am not happy with how the UI looks (and also the custom patch source update that the manager has).

Would love to write the post. I'll put it up here first so that you can look at it once before I post it?

@LisoUseInAIKyrios

Copy link
Copy Markdown
Contributor

Send a mod message so everyone can review there.

@LisoUseInAIKyrios LisoUseInAIKyrios merged commit cd627e6 into MorpheApp:dev Mar 14, 2026
3 checks passed
github-actions Bot pushed a commit that referenced this pull request Mar 14, 2026
# [1.6.0-dev.1](v1.5.1-dev.3...v1.6.0-dev.1) (2026-03-14)

### Features

* Add desktop GUI ([#42](#42)) ([cd627e6](cd627e6))
@l205306

l205306 commented Mar 16, 2026

Copy link
Copy Markdown

I’m wondering if there’s a way to import a keystore file.

As far as I know, the current approach requires export Morphe settings > uninstall > reinstall > import Morphe settings.

@prateek-who

Copy link
Copy Markdown
Contributor Author

@l205306 Sorry I'm not very familiar with how the keystore works. I know the gui doens't have that ability yet. I plan to add this, but I wanna know how it works and how I can add it.

My current idea is to add this in the settings panel. Maybe something like a add keystore file. And when the patching is done, it uses this keystore instead of the default one.

What other thing would you require here? Or maybe you have see a better way of doing this. Please tell me your idea.

@l205306

l205306 commented Mar 16, 2026

Copy link
Copy Markdown

@prateek-who Maybe users could specify their own keystore file path and saved in the user configuration file. If the path is empty, the GUI will generate a new keystore; otherwise, it will use the keystore from the specified path.

What do you think?

@prateek-who

Copy link
Copy Markdown
Contributor Author

That does sound good. I'll add this in my gui-overhaul update.

github-actions Bot pushed a commit that referenced this pull request Mar 22, 2026
# [1.6.0](v1.5.0...v1.6.0) (2026-03-22)

### Bug Fixes

* Bump arsclib version, remove APKEditor ([412847e](412847e))
* Dispatch error when launching app ([#79](#79)) ([989e72a](989e72a))
* Update to latest patcher dev ([496d8e9](496d8e9))
* Update to latest patcher dev ([1356259](1356259))
* Update to latest patcher dev ([fb8a4ff](fb8a4ff))
* Update to latest patcher dev ([1551c8e](1551c8e))
* Update to Patcher 1.3.0 ([19c0846](19c0846))
* Use GitHub raw links for CLI update check ([#87](#87)) ([2aa6263](2aa6263))
* Use more logging verbosity when updating options.json ([#72](#72)) ([4d223f2](4d223f2))

### Features

* Add desktop GUI ([#42](#42)) ([cd627e6](cd627e6))
* Inform user if cli is outdated ([#81](#81)) ([5bcd4f7](5bcd4f7))
AzyrRuthless pushed a commit to AzyrRuthless/morphe-cli that referenced this pull request Mar 24, 2026
github-actions Bot pushed a commit to AzyrRuthless/morphe-cli that referenced this pull request Mar 24, 2026
# [1.4.0-dev.1](v1.3.0...v1.4.0-dev.1) (2026-03-24)

### Bug Fixes

* Bump arsclib version, remove APKEditor ([7db96f0](7db96f0))
* Dispatch error when launching app ([MorpheApp#79](https://github.com/AzyrRuthless/morphe-cli/issues/79)) ([5a18f49](5a18f49))
* Update to latest patcher dev ([0e0ccf0](0e0ccf0))
* Update to latest patcher dev ([df1b416](df1b416))
* Update to latest patcher dev ([0d6d9d8](0d6d9d8))
* Update to latest patcher dev ([e2bd02e](e2bd02e))
* Update to Patcher 1.3.0 ([42a0042](42a0042))
* Update to Patcher 1.3.1 ([a808bf1](a808bf1))
* Update to Patcher 1.3.2 ([d935ad9](d935ad9))
* Use GitHub raw links for CLI update check ([MorpheApp#87](https://github.com/AzyrRuthless/morphe-cli/issues/87)) ([afd0cc3](afd0cc3))
* Use more logging verbosity when updating options.json ([MorpheApp#72](https://github.com/AzyrRuthless/morphe-cli/issues/72)) ([bb00a53](bb00a53))

### Features

* Add desktop GUI ([MorpheApp#42](https://github.com/AzyrRuthless/morphe-cli/issues/42)) ([4e33491](4e33491))
* Inform user if cli is outdated ([MorpheApp#81](https://github.com/AzyrRuthless/morphe-cli/issues/81)) ([093e068](093e068))
github-actions Bot pushed a commit to AzyrRuthless/morphe-cli that referenced this pull request Mar 24, 2026
# [1.4.0](v1.3.0...v1.4.0) (2026-03-24)

### Bug Fixes

* Bump arsclib version, remove APKEditor ([7db96f0](7db96f0))
* Dispatch error when launching app ([MorpheApp#79](https://github.com/AzyrRuthless/morphe-cli/issues/79)) ([5a18f49](5a18f49))
* Update to latest patcher dev ([0e0ccf0](0e0ccf0))
* Update to latest patcher dev ([df1b416](df1b416))
* Update to latest patcher dev ([0d6d9d8](0d6d9d8))
* Update to latest patcher dev ([e2bd02e](e2bd02e))
* Update to Patcher 1.3.0 ([42a0042](42a0042))
* Update to Patcher 1.3.1 ([a808bf1](a808bf1))
* Update to Patcher 1.3.2 ([d935ad9](d935ad9))
* Use GitHub raw links for CLI update check ([MorpheApp#87](https://github.com/AzyrRuthless/morphe-cli/issues/87)) ([afd0cc3](afd0cc3))
* Use more logging verbosity when updating options.json ([MorpheApp#72](https://github.com/AzyrRuthless/morphe-cli/issues/72)) ([bb00a53](bb00a53))

### Features

* Add desktop GUI ([MorpheApp#42](https://github.com/AzyrRuthless/morphe-cli/issues/42)) ([4e33491](4e33491))
* Inform user if cli is outdated ([MorpheApp#81](https://github.com/AzyrRuthless/morphe-cli/issues/81)) ([093e068](093e068))
@imPratyoosh imPratyoosh mentioned this pull request Apr 13, 2026
2 tasks
@ArcherLegend

Copy link
Copy Markdown

@prateek-who

A few personal notes on the latest GUI for CLI release:

  1. Finally we can costumise settings for some patches! Thank you
  2. I preferred the old UI as it was easier to read
  3. I can't seem to find how to strip unused libraries (ARM-V7 etc...) am I missing something?

Anyways amazing job. Thank you :)

When I can Crowdin translate it let me know!

@wchill

wchill commented Apr 18, 2026

Copy link
Copy Markdown
Contributor

@ArcherLegend there was a bug in library stripping in patcher 1.3.3, so strip libs is not enabled in the current version. It'll be re-enabled soon.

@l205306

l205306 commented Apr 18, 2026

Copy link
Copy Markdown

@prateek-who

Copy link
Copy Markdown
Contributor Author

@ArcherLegend

I preferred the old UI as it was easier to read.

Could you point out what exactly is the pain point? Is the color contrast bad? The font family or size is bad?

@ArcherLegend

Copy link
Copy Markdown

@ArcherLegend

I preferred the old UI as it was easier to read.

Could you point out what exactly is the pain point? Is the color contrast bad? The font family or size is bad?

Font family and UI contrast, personally I find it harder to read.

@prateek-who

Copy link
Copy Markdown
Contributor Author

Will look into this

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.

feat: Simplify the usage of CLI by improving UX

7 participants