python-eel / Eel

A little Python library for making simple Electron-like HTML/JS GUI apps
MIT License
6.3k stars 580 forks source link

Edge chromium doesn't run in app mode #605

Open properchopsticks opened 1 year ago

properchopsticks commented 1 year ago

Eel version 0.14

Describe the bug hi, i'm trying to open an empty window in eel using edge chromium and it does work but it opens a new tab instead of a window in app mode. does anyone know how to fix this?

To Reproduce run the following code:

import eel

eel.init("web")

eel.start("main.html", mode="edge", app_mode=True)

Expected behavior an edge window should open in app mode instead of a new tab.

Screenshots n/a

Desktop (please complete the following information):

Additional context n/a

properchopsticks commented 1 year ago

hey so i think i found the problem. apparently in edge.py to launch edge eel runs a method called run() and there it does sps.Popen() with the argument "start microsoft-edge:http://localhost:8000/main.html" and that just opens a new tab in edge. i found this question on stackoverflow where it shows the right command to run in order to open edge as an app to a certain website: https://stackoverflow.com/questions/66748958/how-to-open-website-as-app-in-microsoft-edge-from-cli

can you change the cmd argument at line 9 to take "start msedge --new-window --app=http://localhost:8000/main.html" ? image

thank you

properchopsticks commented 1 year ago

also, apparently run() doesn't want to pass any arguments to the cmd variable: image

dstricks commented 1 year ago

does anyone know how to fix this?

As you pointed out, it looks like a code update is required.

A related design question... is there any reason to preserve the ability to open up content in a new tab (which might suggest a flag or similar is needed)? I can't think of one... does anyone else have a valid use case?

dstricks commented 1 year ago

Hey @properchopsticks can you review pull request #612 and confirm that it meets your needs?

samuelhwilliams commented 1 year ago

So! A few things to cover off here.

1) @properchopsticks - you shouldn't need to wait on a fix from Eel authors to get around this. You can set the mode to 'custom' and then pass the full launch command under cmdline_args, eg something like cmdline_args="start msedge --new-window --app=https://localhost:8000"

2) We should probably still fix the app_mode option to work correctly for Edge. init.py:49 suggests this is a Chrome only option so we probably need to update the comment there as well if it can be generally supported for other browsers.

A related design question... is there any reason to preserve the ability to open up content in a new tab (which might suggest a flag or similar is needed)? I can't think of one... does anyone else have a valid use case?

3) I think if there is current behaviour in Eel to support opening pages as tabs (including when multiple start_urls are provided, we shouldn't remove that without a bit more consideration. I'm not sure off the top of my head honestly if this is possible - so we probably need to investigate it first. But if it is, let's not remove or change that functionality without thinking it through. If we do it's a breaking change and should be announced clearly (normally this would mean a major version bump but while we're <1.0.0 we have a bit more leeway).