minbrowser / min

A fast, minimal browser that protects your privacy
https://minbrowser.org/
Apache License 2.0
7.87k stars 697 forks source link

What is Min missing to become a real option for daily use? #909

Open lfom opened 4 years ago

lfom commented 4 years ago

Min is kinda fast, uses Chromium without privacy concerns (I hope), but it lacks a few things to become actually usable:

The concept of Min with some features available as comads in the tab bar is nice, I hope it is improved so it can be used in a daily basis actually.

Regards.

richbordoni commented 4 years ago

For me (on Win 10):

Otherwise it's in pretty good shape for daily use imo.

Back button isn't enough: please consider adding a forward and reload button (with shift+reload = hard reload);

I don't really mind because I mostly use Ctrl + Left arrow and Right arrow to go back and forward anyway and Ctrl + R to reload. Maybe Min could implement a similar system as Yandex browser where the Forward button is normally hidden and only appears when it's possible to go forward? (to keep things nice and clean) Also, something I miss is the ability to hold click on the Back button and be able to see a history of sites in the "Back queue" and click one to go directly to that page. Example (in Opera):

opera_ChyRJfe0SS

Who uses the keyboard to navigate the web? Swipping the trackpad would help, but IMHO they are used in the oposite direction: back should be swipe left, and forward, right, and going forward usually doesn't work for me (Pop!_OS 19.10). Touchscreen gestures would be awesome as well;

I do lol. I agree though that trackpad swipes are useful. I should probably use them more often. Forward seems to be working for me but I wish there was some kind of visual feedback on the screen when you're swiping so you know that Min is registering them. Touchscreen gestures would be nice to have too.

Get rid of the menu bar: more realstate for the browser window, either move it to a menu next to the Tasks button or merge both somehow.

What do you mean by the Menu bar? For me on Windows it's just a button and it barely takes up any space. I'm assuming it's different on Linux? Example:

min_WofIxKBACC

lfom commented 4 years ago

This is what I get in Pop!_OS 19.10:

Screenshot from 2020-02-28 02-17-38

freemansfreedom commented 4 years ago

Asides the already stated Linux menu, I'd say a more robust adblock. The possibility of having your own filters (Fanboy antiannoyances for example). Add a keyboard shorcut to disable/enable adblock on the current tab and reload, as in some instances it can break a webpage. A way to sync between instances on different computers. Maybe allow users to choose the config dir, and contain all user data in that folder we can then sync across computers would be enough (people that uses Min is bound to be a bit more on the savvy side). And the possibility of exporting bookmars as well as importing them. I'm torn on extensions, just for the fact that I use a password manager (Bitwarden if you are curious). I would love to autofill directly in the browser, but having extension support is a bit against the idea of Min.

PalmerAL commented 4 years ago

Thanks for all the feedback! I'm going to try to split these up into separate issues so they're more manageable.

more robust adblock

Are there any sites in particular where things aren't blocked?

The possibility of having your own filters (Fanboy antiannoyances for example)

Agree.

Add a keyboard shorcut to disable/enable adblock on the current tab and reload

Good idea

A way to sync between instances on different computers. Maybe allow users to choose the config dir, and contain all user data in that folder we can then sync across computers would be enough

User data is already in a single folder (/home/username/.config/min on Linux I think), you could turn it into a symlink if you wanted to. However, this has a really high chance of resulting in data corruption - LevelDB splits the history database into multiple files, so if you ever have sync conflicts, you could easily end up with different pieces of the database being from different times, which would be bad. Building our own sync would be really complicated (and also potentially expensive, although I think we could integrate with existing cloud storage providers to avoid this); I don't see this happening anytime soon.

And the possibility of exporting bookmars as well as importing them

This exists! Run !exportbookmarks in the searchbar.

I would love to autofill directly in the browser

This will also exist starting in a couple weeks! See #822.

PalmerAL commented 4 years ago

For the menu bar, I think it makes sense to do the following:

lfom commented 4 years ago

@PalmerAL Sounds great!

PalmerAL commented 4 years ago

Also, I just remembered the shortcut to hide the menu bar is actually ctrl+m.

PalmerAL commented 4 years ago

After pressing ctrl+m with 9f435bf3bf5745900a29852deb0126e5c6a8733c:

Screen Shot 2020-02-29 at 3 27 48 PM

This may end up being a temporary solution; if we do start emulating the window controls in HTML, I think it would best to have the following:

And remove this in-between state.

PalmerAL commented 4 years ago

@llomellamomario I've added !enableblocking and !disableblocking shortcuts in 0ffef9bc16dfe68942b5e5ea49eaf1fe170ec2c3.

PalmerAL commented 4 years ago

@llomellamomario 1.13 has been released with autofill support: https://github.com/minbrowser/min/releases/tag/v1.13.0

freemansfreedom commented 4 years ago

Are there any sites in particular where things aren't blocked?

Mostly the usual mouse and cat game when filters take time to block ads. And sometimes I've noticed that they take up to a month to update, so I just do a quick fix myself. Another surprisingly useful option is to remove sidebars or other content I don't want in the page. Most common use are sites with both a top bar and a sidebar, so I tend to use the select feature on adblock to nuke the sidebar gaining more horizontal width for the content. However that is me using adblock for what it is not supposed to, and it is an annoyance not a necessity, so it falls outside Min's way of life.

User data is already in a single folder (/home/username/.config/min on Linux I think), you could turn it into a symlink if you wanted to. However, this has a really high chance of resulting in data corruption - LevelDB splits the history database into multiple files, so if you ever have sync conflicts, you could easily end up with different pieces of the database being from different times, which would be bad. Building our own sync would be really complicated (and also potentially expensive, although I think we could integrate with existing cloud storage providers to avoid this); I don't see this happening anytime soon.

Fair. We all have been spoiled by sync convenience. Maybe as a compromise and to prevent database corruption, have the current task list with the websites for each task saved as an independent file (maybe a simple html like when you export bookmarks) so we can sync just that and move from one computer to the next easily. And at launch, if the option is enabled check for that file first and ask the user if they want to overwrite their current task list.

This exists! Run !exportbookmarks in the searchbar. Maybe add it to the bookmarks menu? Not that big of a deal, as it is not that often used, mostly something I find inconsistent.

This will also exist starting in a couple weeks! See #822.

Yes, funny how the odds of you using also Bitwarden and adding integration worked in my favor :D Will update as soon as possible

The blocking and unblocking is a godsend. You don't realize how much you use something until you don't have it. Thanks!

The menu button actually seems like a worse design to me, since it makes it harder to get to the menu items

It depends on how you see it. Usually I'd agree with you, but in this particular case, I disagree. Removing another bar is a pro for me due one simple reason. Screen real state. You have more width than height. You spend far more time in the webpages, than you do on the menu. Webpages are usually tall not wide, and if you don't have enough width you rarely lose functionality due to mobile versions. Also Min not having a lot of menu options being minimalist makes it even less likely to access the menu. And more than half the menu is composed of items that most people using Min would use via shortcut keys. So having the menu a la Windows is IMHO the most sensible option. Now if it is a pain to make and maintain don't add it. I prefer a bit of inconvenience compared to making your work harder, I know that what users want doesn't necessarily align with development constrains.

PalmerAL commented 4 years ago

Mostly the usual mouse and cat game when filters take time to block ads. And sometimes I've noticed that they take up to a month to update, so I just do a quick fix myself. Another surprisingly useful option is to remove sidebars or other content I don't want in the page. Most common use are sites with both a top bar and a sidebar, so I tend to use the select feature on adblock to nuke the sidebar gaining more horizontal width for the content. However that is me using adblock for what it is not supposed to, and it is an annoyance not a necessity, so it falls outside Min's way of life.

I agree faster updates would be good. The ideal solution to that would be automatic updates, although there have been issues in the past where new filters led to broken filtering (because our filter parser isn't completely spec-compliant), so that might not be a good idea. I also haven't been very diligent about updating the built-in list before each release; fixing that would probably help somewhat.

Supporting cosmetic filters is a separate issue; I agree it would be nice to have at some point, but I don't think it's a very high priority at the moment.

Maybe as a compromise and to prevent database corruption, have the current task list with the websites for each task saved as an independent file (maybe a simple html like when you export bookmarks) so we can sync just that and move from one computer to the next easily. And at launch, if the option is enabled check for that file first and ask the user if they want to overwrite their current task list.

It actually is a separate file already (sessionRestore.json inside the Min data folder). I think you could probably move this folder to a Dropbox folder or something similar, make a symlink, and it would probably work. (let me know if you try it!)

. Screen real state. You have more width than height. You spend far more time in the webpages, than you do on the menu. Webpages are usually tall not wide, and if you don't have enough width you rarely lose functionality due to mobile versions

Good point.

And more than half the menu is composed of items that most people using Min would use via shortcut keys.

I'm not convinced this is actually true, although it's impossible to say for sure. (Then again, on Linux specifically it might be).

So having the menu a la Windows is IMHO the most sensible option. Now if it is a pain to make and maintain don't add it. I prefer a bit of inconvenience compared to making your work harder, I know that what users want doesn't necessarily align with development constrains.

It's not terribly hard to do (but thanks for thinking about that!). Each new UI layout does add more complexity when making changes, however, so I'd like to try to keep the number low. Right now, I think the best option (as mentioned in my previous comment) is to have two options: non-native titlebar and menu button (minimizes vertical space), or native titlebar + menu. If we do that, the window controls may not match other apps on your system, which may generate complaints, but I'm hoping that leaving the fully-native option around will be enough to resolve that.

freemansfreedom commented 4 years ago

I'm not convinced this is actually true, although it's impossible to say for sure. (Then again, on Linux specifically it might be).

First of all I'm making a reasonable assumption: That Min users come from other browser, and they are at the very least users that have some know how. Not advanced, but at least they are able to find ways to improve their user experience. If not, how they found Min in the first place? Chrome/Edge works. And if you are searching something like Min, outside of mainstream browsers, it is not a stretch to think that those users at least have picked up some basic shortcuts along the way common to a lot of apps. From Windows menu, file submenu not common. Edit menu common shorcuts with most apps, undo redo cut copy paste select all and find. The only one missing is preferences View menu zoom and fullscreen are common, minus focus mode specific for Min that doesn't have shortcut. Developer is for, well developers that know what they are doing and help which is arguably not used. The shortcuts that people might not know are the uncommon ones, and are a minority, so 1 or 2 extra clicks ain't a big deal.

If we do that, the window controls may not match other apps on your system, which may generate complaints, but I'm hoping that leaving the fully-native option around will be enough to resolve that.

Not matching is a given. As much as r/unixporn shows, trying to have something uniform in Linux is stupid hard and not easily achievable. Having a menu that you will rarely see not match ain't exactly a big problem. You don't even need to go far to show this: Put Plasma, with the Breeze theme (both Qt and GTK) and open Firefox (or any GTK app for that matter). And to a lesser extent the other way around thanks to the work done on Qt's GTK style

EDIT Well, something I noticed that can fall into adblock capabilities is the ability to mute a tab, as well as show an audio icon. I prefer to cut short that tab title, but being able to notice wtf is playing and mute it.

lfom commented 4 years ago

1.13 release looks great on Pop!_OS, thank you very much! Waiting for the forward button. Regards

Screenshot from 2020-03-14 22-19-20

PalmerAL commented 4 years ago

This is what I have so far in regards to integrating the window controls into the tab bar:

Screen Shot 2020-04-04 at 5 33 43 PM

My original goal was to replicate the default Ubuntu buttons, but they don't match very closely, and I'm also not sure that they look very good. Given that they're not going to look consistent with the rest of the system in a lot of cases anyways, I think I'm going to try to just make them look better even if they don't exactly match anything that already exists.

lfom commented 4 years ago

if I am not mistaken, Gnome uses only the close button by default. I am not sure if you are using Linux, that is how a native GTK app look using the default dark theme on Gnome 3.34 (the buttons animation/colors changed a bit in latest 3.36 IIRIC).

Screenshot from 2020-04-04 19-53-23

PalmerAL commented 4 years ago

Interesting, so maximize/unmaximize are done through dragging the titlebar? How would you minimize a window? I haven't used gnome in a long time.

On Windows, we have a dragging area above the tab bar that hides itself when the window is maximized, so that you can move your mouse to the top of the screen to select a tab. However, this wouldn't work if there isn't an unmaximize button, so we might have to move the drag region to the upper-left corner instead. How do other apps handle this?

Looking through this article, one of the close buttons seems identical to your screenshot, but the others are just an "x" with no circle - I guess that's the updated design?

lfom commented 4 years ago

@PalmerAL Gnome's UI is meant to be used in many devices, from small touchscreens to desktop. By default, the maximize and minimize buttons are hidden, but they can be enabled using Tweaks app (some desktop distros enable them, mainly those with modified Gnome Shells). Maximize can be achieved by either moving the window to the top (or tiled using both borders of the screen) or double-clicking the title bar. Only the active window (the one with focus) has a colored X button, the other ones show a light gray color.

PalmerAL commented 4 years ago

I just remembered that #369 had some Linux buttons as well that looked like this:

Screen Shot 2020-04-05 at 5 37 14 PM

I don't think that matches anything either, but since it seems like nothing will anyway, that might work.

PalmerAL commented 4 years ago

With a single button, and a draggable area on top:

Screen Shot 2020-04-05 at 5 52 35 PM

With the draggable area to the left of the menu button:

Screen Shot 2020-04-05 at 5 50 17 PM

This is similar to the issue we ran into on windows: with both of these options, the drag area interferes somehow (either you can't move your mouse to the top to click tabs, or you can't move it to the top-left to click the menu button). And unlike windows, we can't hide it entirely, since there wouldn't be an unmaximize button.

lfom commented 4 years ago

@PalmerAL if there is a draggable are at the top, it can be maximized either by double-clicking or moving it to the top of the screen, and "unmaximized" the same way. I think it is more user friendly as making the whole window can be moved only by a small area at left (some may think it is a bug).

If you want, I can beta-test a version for Linux and screenrecord how it works on Gnome 3.34.

PalmerAL commented 4 years ago

I agree having the draggable area across the top is probably more intuitive. I think I've been thinking about this the wrong way actually: before, I was thinking about #630 - on Windows, clicking on tabs is much easier if we hide the drag area when maximized, since you can just move your mouse all the way to the top of the screen. However, on gnome at least, there's a titlebar above the window when it's maximized, so you can't do that anyway. Given that, it would probably be fine to just leave the drag area visible when the window is maximized, which would allow us to place the drag area at the top.

edit: this would however still be an issue in fullscreen, but I'm not sure how frequently that's actually used.

PalmerAL commented 4 years ago

I installed gnome on ubuntu, which seems to be slightly different than stock, but close enough to test with. Here's a build if you want to test:

https://send.firefox.com/download/fd0d58feb448b601/#0cVfilj_NYkAfsX5GdgwHw

(or use the linux-controls branch).

lfom commented 4 years ago

@PalmerAL Looks great! The area used to drag the window is kinda short (and my screen is only 1280x800, I wonder how short it is in UHD monitors) but it works. But there is a problem with the tabs: while the site is loading, it is OK, but when the page is loaded it "goes up" and take some area of the tab bar. Please see the screencast: https://streamable.com/vmiojp

And if you want to really simulate GTK's behavior, the close button background goes to light gray when hovered. :P

Screenshot from 2020-04-05 23-00-31

richbordoni commented 4 years ago

Please see the screencast: https://streamable.com/vmiojp

Although that's a bug, I thought to myself after watching that that it also makes kind of an interesting feature! 😁

The browsing window would collapse up slightly like that and your tabs would slightly grey out after finishing navigation to give you more vertical space and less distraction/a cleaner look, while still being able to see your tabs. And if you mouseover the tab area or use a keyboard shortcut to get back into the tab area, the browsing window would collapse back downward giving you a full, normal view of your tabs. I feel like that find of feature would work the best with a more skeuomorphic design for the tabs though, like the old Chrome interface, but it's still pretty cool just how it is in Min.

Maybe it could be like a "halfway" focus mode, in between regular browsing and full focus mode where you can only see one tab? 😁

freemansfreedom commented 4 years ago

My original goal was to replicate the default Ubuntu buttons, but they don't match very closely, and I'm also not sure that they look very good. Given that they're not going to look consistent with the re

Being honest, ignore how distros look. Like they don't exist. Just make it look cohesive with the rest of your own's browser design. If it does not look even remotely close to a linux design, so be it but it will make it look alright at worst. Prime example is Steam interface in linux, screencaps are for comparison. The buttons do not match any linux ui controls in any way shape or form. However, they don't look out of place no matter the distro, because they are cohesive with the own app.

Going with the trend, even more so ignore how GNOME does things. They do it their own way and tends to be the complete opposite of how the rest do things (for example they removed desktop icons, ignoring their users). In fact, Ubuntu, arguably the most used GNOME distro adds them back (and for a good reason) And most other desktops in linux (including KDE Plasma) uses the standard 3. Just have the 3 buttons, since that is the sane default, and, if it is really requested, have a toggle in the settings for only one. Again consistency is key more than "matching an specific theme" as long as your base design isn't hideous (which it isn't).

image

image

PalmerAL commented 4 years ago

@richbordoni It is sort of an interesting idea; you could shrink the tab size and make everything a bit shorter. Getting the BrowserView to resize smoothly might be a challenge though.

Also sort of off-topic, but I've been thinking about changing focus mode so that it shows all the tabs you already have open and just prevents you from making new ones; if you're using it currently, how well does that fit with how you're using it?

I'm fine with having 3 buttons as well if that makes more sense; I'm not sure which one is actually better. Are there any environments in which maximizing by dragging the titlebar wouldn't work?

lfom commented 4 years ago

I use (and actually like) Gnome because it is the best DE for touchscreens as of now. But if you are not using its toolkit (GTK), and I think you aren't, then it's OK to add the other buttons as default so users using other DEs will feel more comfortable (there are many apps that show them on Gnome, apps that don't use GTK, so it is kinda normal even on Gnome). Another idea would be show only the close button if you can easily detect the DE on Linux.

Regarding the browsing window shrink/expand, I think it is very distracting when the content of the window moves. As simply hiding part of the tab bar won't help, it would require moving the page content up and down, what isn't desirable IMO.

I haven't used focus mode much, so I can't help with this for now.

PalmerAL commented 4 years ago

Yeah, the buttons are emulated in HTML, so we're not limited by any particular toolkit. I think we could probably detect the DE; I'm hoping to avoid having to maintain two kinds of buttons, but I guess we could if it's necessary.

PalmerAL commented 4 years ago

Given that, it might make more sense to have no background.

PalmerAL commented 4 years ago

@llomellamomario I like the second screenshot you posted, it looks similar-ish to the gnome style while still having all 3 buttons, and we could make the red background on the close button appear only when it is hovered.

PalmerAL commented 4 years ago

I've started working on a 3-button design, since it seems like that might work better in non-gnome environments. Screenshots:

Screen Shot 2020-04-07 at 11 07 36 AM Screen Shot 2020-04-07 at 11 07 50 AM

Hovering over the button shows the background circle:

Screen Shot 2020-04-07 at 11 08 14 AM
lfom commented 4 years ago

@PalmerAL Looks great! You don't need to be worried about the close button. Actually, it works the other way around, as I said previously: the active window shows the close button with an orange background, the background apps or when the active close button is hovered, then it changes to a light gray background. I think you can pick any color you want, just change the background for all of then individually when hovered, I guess.

https://streamable.com/c6yago

PalmerAL commented 4 years ago

New build to try: https://send.firefox.com/download/16c68bbe6f14cedb/#BchDMad59S7XijrIqKNkwQ

Having a fixed color background doesn't work well on some backgrounds (as I mentioned above) and it doesn't seem to be very consistently used anyway, so I changed all 3 buttons to no background + gray background on hover.

I increased the height of the drag area a little bit as well; it still might be easier to drag if it was taller, but I'm not sure if it's worth losing more space for content by doing that or not.

lfom commented 4 years ago

@PalmerAL Very nice, I love the new look and the taller drag area. Loading pages has no glitches anymore (well done!). Just a small issue: clicking the maximize button when the window is maximized does nothing, draging it from the top works tho. Usually the maximize button is a "+" when the window isn't maximized and then a box when it is, but as Min already has a plus icon, I guess it is better to keep the box all the time.

Screenshot from 2020-04-08 17-10-14

PalmerAL commented 4 years ago

Just a small issue: clicking the maximize button when the window is maximized does nothing, draging it from the top works tho

Fixed in 6ea480a1db68f64f352434583f096d86dc32c132.

PalmerAL commented 4 years ago

PR: #963

richbordoni commented 4 years ago

Also sort of off-topic, but I've been thinking about changing focus mode so that it shows all the tabs you already have open and just prevents you from making new ones; if you're using it currently, how well does that fit with how you're using it?

Tbh, I don't really use focus mode so I'm probably not the best person to ask. 😅

deadb0d4 commented 4 years ago

I think that the most basic and important feature of everyday, (sort of) main browser is stability: if one does not do anything strange (like opening 100000 tabs at the same time), the browser should not crush.

So I would say that at the moment Min should not crush (which unfortunately still an issue).

PalmerAL commented 4 years ago

@deadb0d4 Just to make sure, are you experiencing other crashes than the hackernoon issue?

deadb0d4 commented 4 years ago

@deadb0d4 Just to make sure, are you experiencing other crashes than the hackernoon issue?

Yeah, and I did not figure out the way how I can build the browser in a sort of debug mode so that I could read logs and get a hint what went wrong.

PalmerAL commented 4 years ago

For errors in the Min frontend code, errors would show up in developer > inspect browser > console. For Electron crashes, you'd need to find the crash report file. On macOS, they're in ~/library/logs/diagnosticReports; I'm not actually sure where they are on other OS's.

When does it crash?

w3slley commented 3 years ago

I recently noticed that there is no way to see the current value of the zoom in a page (like in the image bellow for chrome). image

I think something like this would be useful since it's really easy to change the zoom in a page and not know how to set it back to its default value (and, in this case, not know which value the page is currently on).

I've been looking into the Issues page to see whether anything of the sort was talked about but wasn't able to find any (except from #1230). I would also like to add some of the things I think could be interesting to see implemented (I apologize in advance if any of these have already been discussed before):

PalmerAL commented 3 years ago

I'm sort of skeptical on the page-zoom indicator; if the goal is to set the page to a comfortable zoom level for you, it seems like it wouldn't be important whether you're at the default zoom or not.

Opening the previous page in a new tab when the back button is clicked using the middle mouse button

Another day, another obscure mouse shortcut I didn't realize exists in other browsers :). SGTM.

as well as using the right click to see all the pages navigated so far

That also sounds good.

Adding a bit of space at the top of the browser to allow dragging when the window is maximized

It used to be this way in previous versions, and we got a lot of complaints about it; the issue is that when the window is maximized, people want to quickly move their mouse all the way to the top edge of the screen to click on a tab. If there's a drag space above that, you have to actually aim the mouse, which is slower. There was some discussion about this in #630, but I don't think we ever came up with a great solution.

flightmansam commented 2 years ago

While testing out Min for the last little bit -- and even trying out my own builds, I have come up with some ideas for what I'd like to see implemented as this browser matures. If some of these ideas gain traction, I am happy to convert them to official gh issues. I may add more here, or in a new comment. Whichever is cleanest.

[PDF] rotate page in pdf viewer

It can sometimes be handy to rotate a page in the pdf viewer. I'm sure PDF.js has a way to do this so shouldn't be hard. Could be nifty if a secondary option (potentially as a bang) to rotate all pages.

I think there are two import clarifications:

  1. the original pdf is not modified, if using a local file:///
  2. printing the pdf preserves the rotated state

[PDF] hyperlinks and bookmarks in pdf

Noticed that pdfs with embedded internal links don't work. Once again not sure how much of a problem that is to other people as it is easy enough just to download and open in a fully fledged pdf reader. But it is something that hasn't been raised yet as an issue.

[History] url queue when hold down back button

This has been mentioned briefly here. I think this is quite a nifty feature for quick navigation or for those with short term memory like a sieve (like me). I understand this is potentially harder to do than it seems not only because a new viewer dropdown js needs to be written and debugged, but also as I understand in electron webview.getWebContents().history may be a private thing to do so it may have some implications?? Mentioned in #7186.

Edit: This functionality has long since been depreciated, however I'm waiting for a reply on #7186 to see what the deal is, apparently it can all be done with the existing electron API, but perhaps we could make a patch.

[History] restore tabs with history

Same dealio for the history mentioned above. I notice that the browser state stores the tab history for the currently selected tab+task. We could extend this to store tab history for all tabs and all tasks, and then on browser load restore webview.getWebContents().history with the array stored on file. Not sure about storing the scrollPosition for each history tab since they are going to be reloaded anyway.

[History] send current tab to another browser (either with or without history)

Given there are still a few things that are being ironed out for Min to work 100% (DRM watching, and apparently self-signed pages), it might be nice for a share button to send the current URL to another browser installed on the machine. I mean, you could just copy-paste it like a pleb. The R&D to implement might not pay off so maybe just park this here as an idea, unless it gains traction.

[History] duplicate tab does not duplicate history as well

Since duplicating a tab is only copying MIN tracked metadata about the tab state, the webContents are not copied as well. Therefore leaving the new tab without the history of the predecessor.

[UI] view page certs!

Event just a little page info pop-out or something. But this is defo a big one for a lot of internetz folk.

Edit: Unlock icon already implemented.

[UI] edit domain specific colours (and remember for future use), also needs a reset button

This could be cool. Say you aren't quite fuzzled with how the colours for https://www.101dogbreeds.com/ were decided, and you visit that site frequently. Well having a little dropper menu icon and colour picker could save the domain colour for all current and future loads of the site.

image

[UI] multiple windows (at the very least, be able to pop out the window, undocked)

I know that's been discussed elsewhere, but I just wanted to add that to some (especially those with the multi monitor life), this is an important feature of a daily driver browser. Happy to help fund/get-hands-dirty some of the R&D required to rethink how Min works to support this.

[UI] UI scaling?

Haven't tested if this is a problem yet. Works great on vHiDPI screens already (eg. Macbook Pro 16)

[UX] select opened tab when "search with default search engine"

Pretty simply explained. Currently the opened tab is hidden (not selected) when it is created. I think it makes more UX sense to open the tab as selected.

[UX] sort tabs by most recently opened

This could be a cool little keyboard command to clean up the workspace, could re-order the tabs so that your most recently viewed tab is to the left (or right, if you are a RTL reader). Definitely would help with the mod+tabbing or option+command+arrow_key.

[UX] export task to file

So here is a bit of a shower thought I had. This could be like bookmarks V2.

Say you have spent all day in one task doing your taxes or something. And you have another task open with your socials. Maybe even another task with directions to that restaurant you like. These are all reasonable sorta things to be having there. You can easily close them when you want and manage, yada yada. This is a way better version of chrome's grouped tabs in my opinion.

But say you are working on a bigger project. We all know that person in the office that has like 1000 tabs open in chrome just to keep their journal articles in the same place or browsing parts catalogues. Let's help them out. Say after every day or sub-component of a project your tabs are at a state where you know what info is on which page but you're not ready to crystallise them into a document, or reference manager. You just wanna know you can bring them back again some time. You could export your task as a file (potentially just the same as the JSON you store the sessionRestore in). Maybe this file could have a custom file extension, so that when you are in your desktop's file manager and you double-click it, it straight away adds that task to you Min session (or opens Min if it isn't active). Someone's project directory could look something like this:

image

mini thought: Perhaps Min could easily merge tasks, or generate a pretty html of the tabs?

[UX] only open preferences once

Every time you open preferences, it opens a new tab. I suggest, if the tab is already open, just make it selected.

[UX] delete tab with keyboard in task edit view

A simple mod+backspace or mod+w on the selected tab would suffice.

PalmerAL commented 2 years ago

@flightmansam Yeah, separate issues for each of these would be good; this issue is kind of a mess already. Most of these are pretty good ideas! A few notes:

select opened tab when "search with default search engine"

There's a setting for this: additional features > open new tabs in the foreground

url queue when hold down back button restore tabs with history

Like you mentioned, Electron doesn't expose the history object publicly, so to do these two I think we'd need to start using the page navigation events to keep track of the page history ourselves. Possible to do, but has a lot of edge cases.

view page certs!

What info do you typically look at from this? I don't think Electron has a built-in dialog for this, so it'd be a bunch of work to build a custom one, and it seems like it wouldn't be used very often. But maybe I'm missing something?

edit domain specific colours (and remember for future use), also needs a reset button

This seems like a fairly complex thing to implement (and would make the UI confusing); I'd prefer not to do this. For popular sites where the color detection doesn't work well, we could have a built-in list of overrides.

(Also, random thought: we already favor certain colors more heavily than others when deciding what to use. Would it be possible to detect "ugly" colors automatically and pick something else?)

multiple windows (at the very least, be able to pop out the window, undocked)

169

export task to file

The way I typically do this is to give the task a name, collapse it, and just leave it in the task list until I want to come back to it at some point. However, I use google docs / notion for everything, so I don't have the kind of local project directory structure that you describe. If you did, I could see this being useful.

flightmansam commented 2 years ago

select opened tab when "search with default search engine"

There's a setting for this: additional features > open new tabs in the foreground

I remember reading that your ethos for the "open new tabs in the foreground" selection is more around giving configurability for the mod+click behaviour on page links/selectables. However, all other browsers will foreground the tab that results from the "search with Google" right-click menu and I think that makes sense – the user most likely is desiring the information from the search engine result straight away. Anyway, all good if you don't agree I found the line in webviewMenu.js to tweak it to my liking.

view page certs!

What info do you typically look at from this? I don't think Electron has a built-in dialog for this, so it'd be a bunch of work to build a custom one, and it seems like it wouldn't be used very often. But maybe I'm missing something?

Yeah you're absolutely right, a fully fledged cert info is probably not that important. More just some indicator that the loaded pages as valid certs/the https is all going fine. Other browsers use lock icons as indicators. Or, maybe we just only warn the user if the page isn't secure (is this done already? my bad if so).

This seems like a fairly complex thing to implement (and would make the UI confusing); I'd prefer not to do this. For popular sites where the color detection doesn't work well, we could have a built-in list of overrides.

Maybe just a bang then? !setcolor #RRGGBB

(Also, random thought: we already favor certain colors more heavily than others when deciding what to use. Would it be possible to detect "ugly" colors automatically and pick something else?)

This is interesting. I think a lot can be learnt from devs that have done work to find UI pallets that work with album artworks. I use a tweak on my phone (ColorFlow5) that seldom makes a bad pallet. You're probably right in saying: let's not clutter up the UI with these options, rather make a kickass algo for selecting colours. I had a quick peak at the colour code, am I right in saying you check to see if the browser has a preferred colour already?

If you did, I could see this being useful.

I honestly think this feature would be game changing - I'm going to do a proof of concept and see how it goes. Perhaps one day you can merge it and make it available as an experimental feature.

BTW: do you prefer these as issues, or discussions?

PalmerAL commented 2 years ago

I remember reading that your ethos for the "open new tabs in the foreground" selection is more around giving configurability for the mod+click behaviour on page links/selectables. However, all other browsers will foreground the tab that results from the "search with Google" right-click menu and I think that makes sense – the user most likely is desiring the information from the search engine result straight away. Anyway, all good if you don't agree I found the line in webviewMenu.js to tweak it to my liking.

Yeah that's a good point, didn't realize that other browsers always open the "search with" tab in the foreground regardless of preference. Will change it.

Or, maybe we just only warn the user if the page isn't secure (is this done already? my bad if so).

Yup, insecure pages get a broken-lock icon.

I had a quick peak at the colour code, am I right in saying you check to see if the browser has a preferred colour already?

Not sure what you mean here exactly. The logic is something like:

  1. Check if the website has a <meta name="theme-color" tag (lets sites pick their own color).
  2. If not, load the favicon and extract the most common color in it (but weight very dark or light colors less heavily)
  3. If dark mode is on, darken the extracted color.

I honestly think this feature would be game changing - I'm going to do a proof of concept and see how it goes. Perhaps one day you can merge it and make it available as an experimental feature.

Sounds good. From a UI perspective, I think the best way to do this would be to have an !exporttask bang, and then set Min as the default application to open whatever the file extension for a task file is.

BTW: do you prefer these as issues, or discussions?

Either way. I imagine issues as being for more specific changes and discussions for larger/less-defined ideas, but it's a pretty fuzzy line between the two.

PalmerAL commented 2 years ago

hyperlinks and bookmarks in pdf

PR: https://github.com/minbrowser/min/pull/1858