tabalanche / tabalanche-extension

The Tabalanche browser extension
GNU General Public License v3.0
27 stars 7 forks source link

OneTab feature parity review #16

Open stuartpb opened 9 years ago

stuartpb commented 9 years ago

Options

When a tab group is restored, send the tabs to:

OneTab has the options "A new window, unless OneTab is the only tab in the current window", "Always a new window", or "Always the current window".

Tabalanche will not make an option for this. There may two separate buttons, leaving it up to the user to choose the restoration behavior to use on a case-by-case basis. Tabalanche might also support "brushing" to open multiple tabs in one gesture. (I was originally thinking this would be dragging from any tab, but I remembered that dragging from a tab is a reasonable way to restore a link to a position in the window, so this may instead be done by dragging from the pop-out button.)

For now, "restore as new window" will be the only "restore all" mechanism, with the alternative to be just repeatedly clicking and removing tabs from a stash to restore to the current window. (In practice, this is how I usually end up restoring all the tabs in a group into the window anyway.)

Pinned tabs

Implemented in OneTab as a radio of "Don't send pinned tabs to OneTab" and "Allow pinned tabs to be sent to OneTab".

Implemented in Tabalanche as an "Ignore pinned tabs" checkbox.

OneTab does have a nice description explaining what pinned tabs are, plus some extra functionality that Tabalanche may want to duplicate:

Note: A tab becomes 'pinned' when you right click on the tab and click 'Pin tab'. Some people like to make sites such as Facebook or Gmail pinned so they can easily locate them. OneTab will remember whether a tab was pinned when you restore it.

OneTab also notes, for the "Don't send pinned tabs to OneTab" feature:

You can still manually send a pinned tab to OneTab by right clicking within the web page to access the OneTab menu, and then clicking 'Send only this tab to OneTab'

In Tabalanche, this may also be made a property of the popup / window, and maybe one that varies between snapshots and stashes.

Startup

Radio of "Display OneTab whenever you start your web browser for the first time" and "Do not open OneTab automatically" (with the addendum "To open it manually, use the right click menu and choose 'Display OneTab'").

Not a feature in Tabalanche. If you want Tabalanche to display on startup, make the dashboard your home page.

On clicking 'restore all' or restoring a single tab

Radio of "Open the tab(s) and remove them from your OneTab list" and "Keep them in your OneTab list".

Listed note for the former:

You still can press ctrl, cmd or shift to restore the tab(s) without removing them from OneTab. If you set any of your tab groups as 'locked' then the tabs will not be removed from OneTab unless you unlock that tab group first.

Listed note for the latter:

You can manually delete entries by hovering over them and clicking the X icon, or by clicking the 'delete all' button

In Tabalanche, this is a property of stashes vs. snapshots (like OneTab's locking). Like OneTab, you can hold a modifier key to suppress the removal: Tabalanche also supports middle-clicking for this behavior (for consistency/parity with "open in new tab" gestures).

Duplicates

Radio of "Allow duplicates" or "Silently reject duplicates" (with the note "If OneTab already contains the URL of a tab, it will not be added again. This only applies when you click the OneTab icon or use the right click menu to send multiple tabs to OneTab. If you use the right click OneTab menu to send only a specific tab to OneTab, then the duplicate will be allowed for that specific tab.")

This will probably not make it into Tabalanche, since it's a kind of nebulous, mercurial feature with leaks in both directions (duplicate pages with different hashes, the same URL meaning to correspond to different content differentiated by stashed title) that could be handled any number of better ways (not the least of which is "let the user figure it out themselves).

If it is integrated, it'd probably be as an option on the popup (and one that would only apply to snapshots, probably).

Tab group features

Restore all

See note about restoration behavior above.

Delete all

A "Delete Group" button will likely make it into Tabalanche at some point (right now I'm happy with the dashboard being a steel trap).

Share as web page

I might implement something like this in Tabalanche, backed by GitHub Gists (or even CouchDB). It's not really on the roadmap, though. #7 is more likely to get done first.

"More"

This isn't actually a feature (everything below this item is under the "More..." menu), but it's worth noting that Tabalanche will not hide features behind a "More" button. Arbitrary expando breaks like this are a total usability fail.

Also, there's a link to the "Help" page at the end of this menu, which is super stupid considering there's already a link to the same help page at the top of the page.

Name this tab group

Tabalanche will have naming as part of the popup, so you name stashes or snapshots when you create them.

Editing properties of tab groups after saving is something that'll make it in with the rest of post-facto editing (which may initially be surfaced as part of the #7 detail view).

"Lock this tab group" and "Star this tab group"

Locking is the property of snapshots in Tabalanche (after creation). Starring will most likely be a side effect of snapshots (with the default sort mode placing snapshots above stashes, or having them be a collapsible section or something).

Other features

"Bring all tabs into OneTab"

Unless it works across all windows (yikes), this is redundant with the browser action.

Import / Export URLs

I'm proud to say Tabalanche already has import and export (it was one of the first features I implemented), in the form of JSON dumps that are more complete than OneTab's list-of-URLs-and-titles-separated-by-a-vertical-bar.

This may be expanded in later versions of Tabalanche to support importing and exporting more formats.

YAML will probably be next for export, and/or a "plain text list" formatter (see the next paragraph's description of import).

My initial method for supporting importing is going to be a suite of external pages that translate from various formats into JSON (eg. a "Translate OneTab export to Tabalanche JSON" page). I might also design bookmarklets (or even a single, context-detecting-and-switching bookmarklet) to create proper exports (eg. a "read localStorage.get('state') and make a Tabalanche-compatible dump" bit of JS to pull results out of OneTab).

Importing might also get handled with some kind of general auto-detection for implementing lists of URLs that have various amounts of universal markup on every line (eg. this would also work to import links from, say, a Markdown list).

Options

Tabalanche already has an options view, using Chrome's "Options V2" interface.

Features / Help

While I don't like help pages (good UIs are self-explanatory), this might be useful for Tabalanche as some kind of "Tips and Tricks" page explaining how to use its provided set of features effectively (eg. explaining what things you solve with Snapshots vs. Stashes).

(I was originally going to call this a "Tips" page, but I realized that sounds like a "Tip me" page, which I probably do want to implement at some point, so it'll maybe be called "Protips" or something.)

About / Feedback

Will probably get implemented as an "About" page (users already know "About" is where you go for feedback on a menu like this).

stuartpb commented 9 years ago

Actually, "pin/stash selected tabs" should probably ignore the "ignore pinned tab" option, similarly to how OneTab ignores it in the context menu. (Also may wish to ignore it for the "tabs on the right" feature.)

That way, if you want all the tabs when "ignore pinned" is on, you just select them. Makes sense.

eight04 commented 5 years ago

Here is a onetab to tabalanche converter: https://codepen.io/eight04/pen/GRKMrJM