Drive4ik / simple-tab-groups

Create, modify and quick change tab groups. Inspired by the Tab Groups app :)
https://addons.mozilla.org/firefox/addon/simple-tab-groups/
Mozilla Public License 2.0
1.2k stars 96 forks source link

Pinned tabs should migrate to group #286

Open stecydube opened 6 years ago

stecydube commented 6 years ago

Pinned tabs do not belong to any groups. They are always displaying for all groups.

I would like to have an option at the least to automatically assign pinned tabs to a group like Sync Tabs Group does.

Lirt commented 6 years ago

It would be great if there is selectable option like that. I can imagine cases, when it is convenient to have pinned tabs same in all groups.

piyushsoni commented 5 years ago

I actually prefer the current behavior (pinned tabs are available for all groups), so hope if it is implemented, it's off by default.

rexzhang commented 5 years ago

+1

0x7969 commented 5 years ago

Was about to request that too, so +1

Pauan commented 5 years ago

I also want different pinned tabs per group. My use case is that I have two groups: Personal and Work.

There are tabs that I want to be pinned in Personal (because I use them frequently), but I don't want them distracting me when I'm in the Work group.

Right now the pinned tabs are always visible, even when in the Work group.

Other than that, this extension is fantastic, I like it a lot!

Drive4ik commented 5 years ago

Hi guys. The fact is that the browser itself does not know how to do this for pinned tabs.

Not all tabs are eligible for being hidden:

  • Tabs that are pinned cannot be hidden.
  • Tabs that are sharing the screen, microphone or camera cannot be hidden.
  • The current active tab cannot be hidden.
  • Tabs that are in the process of being closed cannot be hidden.

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/hide

I could try this with the manual method, but it would be very laborious and unstable, since I need to change half of the code and logic. Also, errors can lead to data loss.

Pauan commented 5 years ago

@Drive4ik Thanks for the reply! Since this is a limitation in Firefox itself, we should file a bug report on Bugzilla (or similar).

Drive4ik commented 5 years ago

It seems to me that nothing will come of it. They knowingly set such conditions.

Morikko commented 5 years ago

The pinned tabs are the only things that blocks me to stop Sync Tab Groups. I am using them as @Pauan told it, they are "important" tabs with easy access rather than global session tabs.

For the pinned tabs, I would expect at least to see them in a special groups so that I could search them and manage them from within the extension.

On top of that, if it could be possible to include the pinned tabs to the current group, it would be even more awesome. Not mandatory by default, but trough an option to enable. If a manual method that unpin before hiding is too complicated, I would not complain with a method that closes the pinned tabs and open them again each time (in discarded mode).

AnthonyMuscio commented 5 years ago

The value of Pinned tabs to me is the tabsize is minimised, and they always appear at the same position at the top of the window. The favicon is a good graphical way to locate a tab and the text for a tab is often not of much value.

Perhaps rather than play with the pin process which some have suggested has its own value working across groups, but could this add on or another provide a way to simply hide the text title on all tabs. Since the groups will most likely open in the same order this would be the equivalent or pinning tabs in many ways. Ideally this would be selectable within each group.

fish-face commented 3 years ago

This also applies, as mentioned, to tabs which are using the microphone or similar. It is quite annoying if you open a video call for example and are then almost stuck on the current tab group until you end the call. Firefox refuses to do anything about this because they don't understand tab groups. As a workaround it would be very useful if pinned/microphone/etc tabs just remained visible in other groups. To aid the UI one possibility would be to have "ghost copies" visible in the current tab group, in addition to the real tabs visible in the home group. Clicking these would take you to that tab in the current group rather than moving to the tab's actual group.

grahamperrin commented 3 years ago

With notifications allowed, expectations are reduced:

image

By Mozilla's design, pinned tabs cannot be hidden – this is logical.

Less logical: in 2017, Mozilla chose to not provide a tab groups API. This was, I believe, short-sighted.

https://github.com/Drive4ik/simple-tab-groups/issues/286#issuecomment-522251712

… expect at least to see them in a special groups …

For as long as Firefox will have no concept of grouping:

– and the tab-hiding feature of Firefox is fundamental to extensions such as Simple Tab Groups. Realistically we can not expect any extension to hide a pinned tab.

https://github.com/Drive4ik/simple-tab-groups/issues/286#issuecomment-534819150

… hide the text title …

I should not expect Mozilla to allow this for anything other than pinned tabs. A little history …

The successor to the original (and best) FireTitle extension was named Crappy Firetitle through frustration with the constraints of WebExtensions APIs. Whilst the extension for Firefox Quantum is no longer so provocatively named, there remain the frustrations caused by Mozilla bugs that are linked from the description of the extension. In particular:

– as the required changes were disallowed, so (quoting the developer):

… support setting a custom prefix … that's as far as we can go without the proper API.

Mozilla might allow a prefix (effectively lengthening a title), however the decision to disallow changes to titles is probably immovable and in that context, I can't imagine hiding of titles in any context other than pinning (or windows that lack title bars).

grahamperrin commented 3 years ago

https://github.com/Drive4ik/simple-tab-groups/issues/286#issuecomment-440559046

… prefer the current behavior (pinned tabs are available for all groups), …

Recommended:

Active Pinned Tab

… automatically moved to the current window.

… use them in multiple windows without having to switch to the window where the tab was originally pinned.


In addition: if you do work with multiple windows, you'll want something to restore pinned tabs after closing a window.

(Do not use the History menu of Firefox to restore the closed window – it will create duplicate, non-grouped (non-synchronised) tabs.)

Save Pinned Tabs

… allows you to save your current pinned tabs as a set. You can then load the pinned tab set on any window that has the extension enabled. …

Pinned Tab Fix

This saves the set automatically. Experimental.

grahamperrin commented 3 years ago

https://github.com/Drive4ik/simple-tab-groups/issues/704#issuecomment-787492776 @michaelschufi asked:

… Why do the tabs need to be hidden? …

In as few words as possible:

barreira commented 3 years ago

#286 (comment)

Realistically we can not expect any extension to hide a pinned tab.

I don't know exactly how they do it, but this Tab Group Switch extension does it. They probably close and reopen tabs, though, as they reload every time.

grahamperrin commented 3 years ago

Tab Group Switch

I tried a few times to get it to work, I couldn't get it to restore any group (with or without pinned tabs) and tabs were lost without warning. If you'd like to follow up on this, I can start a topic at https://discourse.mozilla.org/c/add-ons/add-on-support/111

Shayan-To commented 3 years ago

I would love to see this feature.

I also use pinned tabs as a way to make the tab smaller and fix its position. This would be a must-have for me.

Pin Unpin Tab can pin or unpin tabs, so I suppose it would be possible to unpin the tabs and hide them, and later pin again when showing them.

blueacorn commented 3 years ago

👍 +1 to work-around the Firefox API limitations

Please support moving Pinned Tabs to a Group through "Unpinning" before "Hide/Close"

jclaveau commented 2 years ago

I just opened a bug on Bugzilla in case this api limitation can be removed: https://bugzilla.mozilla.org/show_bug.cgi?id=1792430

RicoGit commented 1 year ago

Hi, is thre any news about this?

blueacorn commented 1 year ago

Hi @Drive4ik , I realize this may not be your priority right now, but just in case...

There's a great article on your plugin, got me using it again, and I am converted 👍 https://www.techrepublic.com/article/firefox-finally-tab-management-add-on-worth-using/

Working across a lot of projects, with a lot of context switching, you end up pinning a lot of frequently-used tabs for quick access on each project... it would be great if STG supported grouping pinned tabs :<3:

Tab Session Manager and Save Pinned Tabs both do a decent job in Firefox of saving/restoring pinned tabs - perhaps you can borrow some inspiration from them for experimental handling of pinned tabs?

chriscz commented 1 year ago

Hi guys. The fact is that the browser itself does not know how to do this for pinned tabs.

Not all tabs are eligible for being hidden:

  • Tabs that are pinned cannot be hidden.
  • Tabs that are sharing the screen, microphone or camera cannot be hidden.
  • The current active tab cannot be hidden.
  • Tabs that are in the process of being closed cannot be hidden.

https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/hide

I could try this with the manual method, but it would be very laborious and unstable, since I need to change half of the code and logic. Also, errors can lead to data loss.

Hey @Drive4ik, thanks so much for this excellent extension. This is indeed unfortunate, I know risk aversion when it comes to editing legacy code, but maybe there is a "safeish" way of approaching it. I imagine a multi-step transformation as below:

  1. Define a new tab module which will hide the details of working with tabs. Define blank API functions (to mind comes show, hide, create, isPinned, export, import and a Tab data structure).
  2. Move behaviour into the blank API functions and swap out the code blocks with calls to this module
  3. Implement conditionals in your "Tab" module for dealing with pinned tabs according to the suggested mechanism above.
  4. Test it (we must come up with a test check-list)
  5. Maybe do a beta-release?
  6. Stable for 6 months maybe cut a new release.

It's probably a bit more work than this, but I hope we find a contributor which could do this type of refactoring and thoroughly test it.

Again, thanks for spending time on this extension! We really are blessed with an amazing tool here! :tada:

Chaitran77 commented 9 months ago

Any update on this? STG still does not allow you to create default/pinned tabs specific to each group.

scarlion1 commented 1 month ago

The info for the pinned tabs is saved in the backup json file towards the end in the pinnedTabs array.  However, not all.  For example, none of the about: pages I had pinned are saved.  The UI doesn't seem to have a place that enumerates or shows this info anywhere; the only way to retrieve it is by opening the backup json file.  As mentioned, if a group that had pinned tabs is closed and restored, none of the pinned tabs are restored.  This also causes the info to be deleted from the pinnedTabs array the next time a backup is created (within 10 mins by default).  I think if the info is in the backup data, then there shouldn't be a problem displaying it somewhere in the UI.  Can this feature be added?  Perhaps in the list of groups there is another special "Pinned tabs" group?  The tabs in this group could then be moved back into the group we had them in, so we can pin them again, at least.  This could help mitigate this issue.  Thanks

fontaholic commented 1 month ago

just commenting to say i'm a user who'd like the pins to stay in the tab groups when i close a window. i could manage with a single set across all groups, but as i use it for client project management, i have a core group of tabs and then slightly different set of tools for each client's tab groups depending on the project. thank you so much.