Open clefebvre opened 4 years ago
Hi @VinDSL and @PizzaLovingNerd,
I got an email from @VinDSL telling me you were interested in working with us on this but I don't yet know how.
On our side we got things moving a bit. I started working on the UI first since this was completely separate from ICE. I then worked on the backend and I approached this as a rewrite but I kept it as close as ICE as possible.
I also completely separated the UI from the backend.
And I made the backend 100% compatible with ICE (it reads ICE files, it writes files ICE can read).
https://github.com/linuxmint/webapp-manager/blob/master/usr/lib/webapp-manager/common.py#L77
The UI itself looks like this:
It defaults to showing the apps. Adding/editing switched the content to a dedicated page:
The backend is very similar to yours. I simplified the code but the features are almost the same. There's one little difference though, it does not move icon files. We want to support both icon paths and icon names so I thought that should be the responsibility of the UI, not the backend.
It's arguable of course... especially since both UIs are likely to handle favicons the same way (i.e. we're likely to want to move favicon downloads and processing into utility functions into the backend). I didn't work on this yet.
I found a solution to the favicon problem, I delegate the choice to the user:
It's slower (since we download all found icons) and it requires user intervention, but the user experience is nice thanks to the UI. I'll make it async and add a loading screen.
I'll add support for favicongrabber also.
I love this new UI. I rewrote the UI recently, but I kept it mostly the same, I just made it more compact by taking away unnecessary labels and utilizing CSDs (although I know the Mint team isn't fond of CSDs).
I'm not the official maintainer, but I would love this in ICE. I also agree with the name change to make it more generic because ICE in the USA means Immigration and Customs Enforcement, and ICE in the USA is very controversial.
Just a wish for the future, one of the reasons I am contributing to Ice is because I wish to put it in my OS called borderOS, and in the future, I want to port borderOS to the PinePhone and Librem 5, so I am trying to make everything included in borderOS mobile friendly, and my new ICE design makes it mobile friendly, so I was hoping that you could keep the UI adaptive.
Also, I recently forked Ice into Glacier because I want to add a web app store to ICE, but it got rejected on the Peppermint forums for security reasons. So I'm going to maintain a fork with this feature so it's not part of mainline ICE, so please keep some wiggle room in the new UI for me to add this feature, although since this is a separate from mainline ICE, this is not a priority, just a wish from me ;). Here is a demo of my idea although this is not the final UI, I want to make the UI different, with a sidebar for all the categories instead of a notebook bar.
Also keep up the great work with Linux Mint, it's one of my favorite distributions and I would use it forever if Linux Mint GNOME existed. But Cinnamon is great, and I love the Mint Software Manager.
Cheers
Thanks @PizzaLovingNerd :)
We're not against CSD. We're careful when it comes to UI. We want to look modern but we don't want to confuse users. When CSD came out it was poorly supported by many WMs and some GNOME apps used it in ways that made their UI look drastically different than what people were used to. So for a while we kept away from it.
Fast forward a few years and people are used to it, symbolic icons are common, WM support is excellent and so CSD becomes something we can use, we just need to use it properly.
In the screenshots above we are using CSD. That's a CSD headerbar right there, with a burger menu. It's not very different than a GTK Titlebar with a menubar and so it integrates pretty well. If we were to add buttons within the headerbar (like the Add/Remove buttons in ICE) that would be pushing things a little too far though in my opinion. This is all very subjective of course.
I'm not sure about the webapp store. I'd agree with Peppermint on this, not because of security but because of commitment and maintenance. That would be a significant amount of code to maintain for something that's beyond the scope. We could easily add a button which launches it if it's present though? If you want to fork it also, the code is brand new so it should be easy to work with.
I'll continue to separate UI and backend too, and also favicon management.
What can I do to help the Mint edition of ice.
As for CSDs I love GNOME so I usually follow GNOME guidelines, although I'm willing to not do that when other projects don't want that.
I'm sure there'll be bugs :)
I need a few more days to make it feature complete.
Oh it will be fantastic to look more Gnomish and also have the ability to edit webapps. I wonder if it would be possible for these webapps to use the icons from the default system icon pack if they exist.
Yes, the icons can be:
The ability to edit webapps was added. For now you can only edit the menu aspects though (category, name, icon), not the URL or the profile/browser settings.
Collisions were fixed, you can have multiple launchers for the same website or the same name.
The ability to show a navbar for Firefox was also added.
Yes, the icons can be:
- Selected by the user from the icon theme or a local file
- Auto-guessed from the icon theme
- Downloaded from favicons
The ability to edit webapps was added. For now you can only edit the menu aspects though (category, name, icon), not the URL or the profile/browser settings.
Collisions were fixed, you can have multiple launchers for the same website or the same name.
The ability to show a navbar for Firefox was also added.
Let me know when the base is finished. I want to add a feature to add extensions to each individual web app (if it's isolated).
It's almost finished now.
I think we need to think about the scope of each project and how they interact with each others.
You mentioned you wanted to work on your own fork as well? Who will be the main dev behind ICE going forward?
Who's using which UI? Are we all migrating towards the same backend?
I can backport quite a lot of improvements towards ICE but I need to know which parts.
@PizzaLovingNerd I forgot to ask, can you describe the extensions idea more in details?
My fork was just to add a web app store that Peppermint rejected, I would still contribute some code upstream, but the web app store will be exclusive to my fork.
I would love to port over the new mint UI to regular ice because it's great, whoever if the new UI is not adaptive to work on PureOS and some of the PinePhone OSes, than I'm going to maintain my own fork to bring that back.
As for my extension idea, when you select an app, it will detect the extensions installed in the web browser that your SSB uses, and it will allow you to copy them over to your isolated apps on a pure extension basis.
As for my extension idea, when you select an app, it will detect the extensions installed in the web browser that your SSB uses, and it will allow you to copy them over to your isolated apps on a pure extension basis.
I think this would be a super useful feature to have!
but the web app store will be exclusive to my fork.
Can you give more details about the web app store?
As for my extension idea, when you select an app, it will detect the extensions installed in the web browser that your SSB uses, and it will allow you to copy them over to your isolated apps on a pure extension basis.
I think this would be a super useful feature to have!
but the web app store will be exclusive to my fork.
Can you give more details about the web app store?
This is a demo for the store. https://www.youtube.com/watch?v=RCLY25s8n6E
Looks very interesting indeed! Thanks!
From my tests Gnome Web handles webapps in a fantastic manner and maybe some of its features could be implemented in your versions.
Super easy to add a webapp from the browser itself. Would be fantastic if you could also make a browser extension that simply takes teh URL of a website + its favicon and adds them to ICE so that users can simply click Apply and that's it. You add a website as a webapp.
If that's implemented it is hardly any need for a webapp store since every website is an app that can be added with a click. These apps could be managed via the extension. In Gnome Web you add apps from Gnome Web, and remove them from the same place. Seems more intuitive.
Many "webapps" are kinda charlatans. They want something from the user. Hardly any is free. They collect your data, put ads into your face, offer premium features, and such. Users are not aware of these. At least Gnome Web has an inbuilt adblocker and tracker blocker, so when you create a webapp with Gnome Web, at least you won't be bombarded by ads. Let's be honest, most people who may care about these webapps probably have a few extensions installed in their browser like UBlock or PrivacyBadger. I won't use most of these websites if it weren't for these privacy extensions. So, would be fantastic if what you are working on can implement UBlock and PrivacyBadger or as it was proposed before, to use the extensions from the main browser.
Navigation and control. In Gnome Web you have back and forward buttons which is really useful. Yes you can enable in your recent versions same thing but it also showcases the tabs and you can edit the url and such. Meaning, it looks as if it is a new window in firefox.
This is how it looks with ICE + Navigation enabled This is how it looks with Gnome Web
Speaking of control, in Gnome Web external links are opened in your default browser. In ICE they are in the same window. I tried to use ICE with our NextCloud Talk app but everytime someone posted a link and I clicked it, it opened in the same window and I could not go back, nor did I want to go back. I wanted to behave like an app and open the link in my browser.
I hope these will server as a good feedback! :)
@PizzaLovingNerd the UI should work in any distribution. It's an XApp project so it'll work everywhere. I added fixes and missing dependencies today.
Similar to Peppermint, I'd prefer not to have a store, but I'm interested in your extensions idea.
Y'know, I half wonder if we should maybe implement a CSS mod to these custom Firefox profiles, if that's even possible, to simplify the GUI a bit to be more suited for a WebApp...
@clefebvre I would request you to include Education in the category.
@s1-ranjan it's in.
@clefebvre Please can you read my post here: https://forums.linuxmint.com/viewtopic.php?f=120&t=335672&p=1927903#p1927903 . You have problem with web-app icons on XFCE panel. They doesn't appear, instead you have firefox icon for all web apps. So you can't distinguish web apps from firefox..
I resolve this using portable firefox (Firefox Nightly). I can explain you how i did this, if you interested? Or maybe you can find some better way..
Also, can you add some more futures?
What i plan to add or i already added:
1) From my script, you can select useragent (mobile or desktop) - some sites doesn't act well with desktop useragent. It's better to use ex. instagram with mobile useragent.
2) I removed all options from right click menu in firefox trough "userChrome.css" , and left only navigation buttons, 'take a screenshoot', 'inspect element' and 'open in new window'. Users doesn't need all other options.
3) I plan to add backup for installed web applications.
4) Web Store is a good idea. Users should have ability to add urls in store, and then you must have some online antivirus that checks for fake or malicious web sites, to avoid security problems.. Also users can vote, if site is good or malicious. Everyone should be careful when they install apps from web store. You don't need to maintain that part of code much..
@clefebvre @PizzaLovingNerd I've found something interesting in Firefox that you might want to exploit:
There's a value called browser.ssb.enabled over in about:config (disabled by default). Enable this (can be enabled via user.js), and then launch firefox -ssb https://example.com/ and you'll find that Firefox has just opened Example Domain in a window that looks just like Chromium-baseds' GUI-less windows.
Obviously you can use this for ANY URL, not just https://example.com/, but it's still an important find for ICE's main feature.
On second thought, doesn't seem ready yet as it seems as if you CAN'T right-click in it. Still, something to experiment with for sure.
@dominichayesferen yes, kind of limited https://github.com/peppermintos/ice/issues/52
I can see firefox as flatpak is included.
( ooops, forget about this, it just seems to work → what about internet browsers as …snap ? I know the controversy but well people might use them. https://github.com/peppermintos/ice/issues/47 )
@clefebvre @PizzaLovingNerd I've found something interesting in Firefox that you might want to exploit:
There's a value called browser.ssb.enabled over in about:config (disabled by default). Enable this (can be enabled via user.js), and then launch firefox -ssb https://example.com/ and you'll find that Firefox has just opened Example Domain in a window that looks just like Chromium-baseds' GUI-less windows.
Obviously you can use this for ANY URL, not just https://example.com/, but it's still an important find for ICE's main feature.
Well this sure as heck aged poorly.
Hi @VinDSL,
Congratulations on this tool. It's a fantastic idea. I couldn't find your contact details and I'm not really sure who else to get in touch with. Maybe we can gith-poke people here if needed.
We'd like to add a Web-app manager like ICE in the next version of Linux Mint. After taking ICE for a ride I find it to work well but there's so many changes I'd like to implement, I'm not sure how to go ahead with this.
I'd like to get in touch with you and the other devs so we can discuss the changes and see how to proceed:
Here are some of the changes I'd like to implement:
These changes could be made optional and have no impact at all. Even the new UI, could be an additional UI in addition to the existing one, and we could make the tool use one UI or another based on gsettings. We'd just need to separate UI and utility functions a little bit more first.
The changes below are important also, but they couldn't be made optional:
If you'd prefer a collaboration on the core but not go ahead with the UI changes we could do the following:
Let me know your thoughts about all of this.