Multi-row tab bar in Firefox Quantum

17,069

Solution 1

Here's an updated userChrome.css that shows icons and hides the ugly scrollbar in the tab rows

UPDATE: Newer Firefox versions changed userChrome behavior again, now I've taken the script directly from here (with a minor change to the max rows and tab width): https://github.com/MrOtherGuy/firefox-csshacks/blob/master/chrome/multi-row_tabs.css:

/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/multi-row_tabs.css made available under Mozilla Public License v. 2.0
See the above repository for updates as well as full license text. */

/* Makes tabs to appear on multiple lines */
/* Tab reordering will not work and can't be made to work */
/* You can use multi-row_tabs_window_control_patch.css to move window controls to nav-bar*/

/* You might want to move tabs-new-tab-button outside tabs toolbar for smoother behavior */

/* Change the --multirow-n-rows to change maximum number of rows before the rows will start to scroll  */

:root{
    --multirow-n-rows: 6;
    --multirow-tab-min-width: 150px;
    --multirow-tab-dynamic-width: 1; /* Change to 0 for fixed-width tabs using the above width. */
}

/* Scrollbar can't be clicked but the rows can be scrolled with mouse wheel */
/* Uncomment the next line if you want to be able to use the scrollbar with mouse clicks */

/* #tabbrowser-arrowscrollbox{ -moz-window-dragging: no-drag } */

/* Uncommenting the above makes you unable to drag the window from empty space in the tab strip but normal draggable spaces will continue to work */

#tabbrowser-tabs{
  min-height: unset !important;
  padding-inline-start: 0px !important
}

@-moz-document url(chrome://browser/content/browser.xhtml){
  #scrollbutton-up~spacer,
  #scrollbutton-up,
  #scrollbutton-down{ display: var(--scrollbutton-display-model,initial) }

  scrollbox[part][orient="horizontal"]{
    display: flex;
    flex-wrap: wrap;
    overflow-y: auto;
    max-height: calc(var(--tab-min-height) * var(--multirow-n-rows));
    scrollbar-color: currentColor transparent;
    scrollbar-width: thin;
  }
}

#tabbrowser-arrowscrollbox{
  overflow: -moz-hidden-unscrollable;
  display: block;
  --scrollbutton-display-model: none;
}

.tabbrowser-tab{ height: var(--tab-min-height); }

#tabbrowser-tabs .tabbrowser-tab[pinned]{
  position: static !important;
  margin-inline-start: 0px !important;
}

.tabbrowser-tab[fadein]:not([pinned]){
  min-width: var(--multirow-tab-min-width) !important;
  flex-grow: var(--multirow-tab-dynamic-width);
  /*
  Uncomment to enable full-width tabs, also makes tab dragging a tiny bit more sensible
  Don't set to none or you'll see errors in console when closing tabs
  */
  /*max-width: 100vw !important;*/
}

.tabbrowser-tab > stack{ width: 100%; height: 100% }

#alltabs-button,
:root:not([customizing]) #TabsToolbar #new-tab-button,
#tabbrowser-arrowscrollbox > spacer,
.tabbrowser-tab::after{ display: none !important }

Update July 7th 2020: UserChrome behavior has changed once again for FF78+, please update to the above or check the Github page for source CSS.

Solution 2

I tried looking for alternatives for this too and found no real options but to use a combination of addons:

I'm now using Tab Mix Plus (WebExtensions) and the Tree Style Tab addons, along with Session Sync, using a combination of those I can make a more bearable experience the tab management.

The tree style tab allows for a good alternative to the multirow feature due to the width of monitors and current resolutions, listing several tabs at the sidebar, the session sync improves the management via grouping of tabs in windows sessions and tab mix plus webextensions allows for related pages to stay in the same window. It's obviously not a multirow setup, but it's better than nothing.

Solution 3

The best solution, with tab movement support is: Izheil's Multirow tabs

Solution 4

I agree with https://superuser.com/a/1480226/460302 that Izheil's Multirow Tabs is the most promising means of obtaining multirow tabs in FireFox. However, that answer does not tell how to implement the solution. Here is some background:

First, Izheil states that his Javascript-based solution Works with Firefox 69-70. I can confirm that it does not work with Firefox 68.2.0 esr (the latest ESR as of this writing, 10/23/19) under Windows 10. However, Izheil provides several fully automated workarounds for Windows installations (see below).

Second, Izheil states [sic],

Mozilla finally removed all XBL bindings from firefox, so in advance of the removal of the posibility to inject JS scripts through userchrome.xml, I decided to update the patching method to another one that doesn't rely on this.

Basically this means he is no longer relying on userchrome.xml as an installation method. To deploy using the new Javascript-based solution you need to patch Firefox to enable JS injection. This is probably an excellent innovation, but it does involve multiple manual steps, including clearing one's FF startup cache following each install.

However, if you wish to keep using XBL bindings (which seems the only option with FF versions prior to 69), you may accomplish this automatically using one of several Windows batch scripts currently included in Izheil's repository. To use this method,

  1. Download and extract https://github.com/Izheil/Quantum-Nox-Firefox-Dark-Full-Theme/archive/master.zip

  2. Navigate to the extracted file's Installers directory

  3. Read the file titled READ BEFORE RUNNING ANY BATCH FILE.txt

  4. Select and execute one of the .bat files found in this directory

  5. Restart FireFox and leave a comment to this answer with your results, including Windows and FireFox versions.

Share:
17,069

Related videos on Youtube

gerrit
Author by

gerrit

I'm a researcher in satellite remote sensing at the Deutscher Wetterdienst in Offenbach, Hessen, Germany. I first came to Stack Exchange for practical reasons: Tex.SE has been of major help when I wrote my licentiate thesis. Since then, I have discovered the joy of many websites. As my network profile will show, I'm interested in travel, outdoor, scientific skepticism, and as my work is related to academia, also in academia and LaTeX. When using a personal pronoun to refer to me in English, I prefer the pronoun he/him/his. I will not feel offended if you use another pronoun of your choice. Profile photo by Dobromila, CC By-SA, via Wikimedia Commons

Updated on September 18, 2022

Comments

  • gerrit
    gerrit almost 2 years

    Firefox Quantum breaks tab mix plus and tab kit. Is there any way to get a multi-row tab bar in Firefox Quantum?

    If possible, I'm looking for a supported, stable solution, that is unlikely to break at the next new version.

    • gerrit
      gerrit almost 6 years
      @dsstorefile1 Preferably, yes, so that it's unlikely to break in the next upgrade.
    • Run5k
      Run5k almost 6 years
      If that's the case, I'm afraid that the answer to your question is probably "no." Unless you are willing to experiment just a bit with a solution like the one you already saw here, at this time there isn't a supported solution.
    • gerrit
      gerrit almost 6 years
      @dsstorefile1 Together with Run5ks "no" that's a useful answer, and answers are more secure to the future than comments (in particular in case this question remains without upvotes).
  • Lutz Prechelt
    Lutz Prechelt over 5 years
    I agree. Despite using an upright (hence narrow) monitor, with F1 key to show/hide the sidebar, I find Tree Style Tab quite bearable -- actually better than TabMix Plus in some respects, because you get (and can form yourself as well) groups of tabs that can be collapsed, which makes it quite scalable.
  • Triynko
    Triynko about 5 years
    April 3rd, 2019. Firefox is still unusable since there are still no multi-row tab extensions. Unbelievable how badly they crippled the browser with their extensions "upgrade". Sad. It's been like what... 2 years now? I'm so sick of scrolling 300 tabs across a single row.
  • Sanjay Manohar
    Sanjay Manohar almost 5 years
    As I use a vertical orientation of screen, TST doesn't really help. Unless there's an option for having it at the top of the screen somehow?
  • sancho.s ReinstateMonicaCellio
    sancho.s ReinstateMonicaCellio over 3 years
    Link-only answer should be avoided whenever possible. If you can provide at least a short step by step list that would help.
  • sergio
    sergio over 3 years
    A short step by step list is to install the project by the link above. And it's not 'Link-only' answer.
  • Triynko
    Triynko over 3 years
    Firefox is useless without multiple tab rows. Nov 3, 2020. No solution. WOW. I'm back. Hi. It's SHAMEFUL what Firefox has done to users by ruining this feature.
  • jokoon
    jokoon over 3 years
    @Coruscate5 Could you please be more precise on how to use this CSS file?