Archives

Firefox: hide tab-bar completely

When using a vertical tab extension like Vertical Tabs Reloaded, you can hide the tab bar by adding the following line to userChrome.css:

TabsToolbar { visibility: collapse !important; }

See multi row tabs for instructions on how to find the userChrome.css file.

This mode may require changing the way new tabs open. Set browser.tabs.insertAfterCurrent and browser.tabs.insertRelatedAfterCurrent (in about:config) according to this table:

insertAfterCurrentinsertRelatedAfterCurrent
open all tabs next to the current tabtruewhatever
open all tabs at the end of the tab barfalsefalse
related tabs next to current, others at the endfalsetrue

This entry was posted on June 15, 2021, in blog, firefox.

Multi Row Tabs in Firefox 71+

  1. Open about:config and set toolkit.legacyUserProfileCustomizations.stylesheets to true.
  2. Open a new tab on about:support and click the button next to “Profile Folder
  3. Go to the “chrome” directory at the profile folder, or create it if it doesn’t exist.
  4. Create a file named “userChrome.css” (if it doesn’t exist) and open it in a text editor.
  5. Copy the css code from below (based on multi-row_bookmarks.css)
    (copy of the css is at the bottom of this post)
  6. Paste it into userChrome.css and save.
  7. Restart Firefox

More firefox tweaks at firefox-csshacks

userChrome.css

NOTE: I’ve been told that the old script (see below) stopped working. This new script should work but I didn’t test it. Some time ago I switched to using the Tree Style Tab extension.

/* Makes tabs to appear on multiple lines */

#PersonalToolbar{
  --multirow-bmb-n-rows: 3; /* Control how many rows are shown before scrolling */
  --multirow-bmb-row-margin: 2px; /* Control how much spacing is between rows */
  max-height: none !important;
}
:root[BookmarksToolbarOverlapsBrowser] :where(#PersonalToolbar){
  height: unset !important;
}

#PlacesToolbar > hbox:not(#PlacesToolbarDropIndicatorHolder){ 
  display: block;
  width: 100vw;
}

#PlacesToolbarItems{
  display: flex;
  flex-wrap: wrap;
  /* --uc-bm-padding is defined in autohide_bookmarks_toolbar.css */
  max-height: calc(var(--multirow-bmb-n-rows) * (4px + 1em + (2 * (var(--multirow-bmb-row-margin) + var(--uc-bm-padding,var(--bookmark-block-padding)))))) !important;
  overflow-y:auto;
  scrollbar-color: var(--lwt-accent-color) var(--toolbar-bgcolor);
  scrollbar-gutter: stable;
  scrollbar-width: thin;
}

/* Hide the all-bookmarks button */
#PlacesChevron{ display: none }

/* Add some spacing between rows, inline margin is collapsed to prevent dragging issues */
#PlacesToolbarItems > .bookmark-item{
  margin: var(--multirow-bmb-row-margin) 0 !important;
  border-inline: 2px solid transparent;
  visibility: visible !important; /* Just in case they would be hidden for some reason */
}

This is the previous script that worked until Firefox 130 or so (not sure when this broke)

/* 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*/

/* It's recommended to move tabs new-tab-button outside tabs toolbar */

/* Change the --multirow-n-rows to change maximum number of rows before the rows will start to scroll  */
/* This maximum visible rows won't work before Fx66 */
/* So this setting does nothing on Fx65 and all tab rows will be shown */
:root{
    --multirow-n-rows: 5;
    --multirow-tab-min-width: 60px;
    --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
}
/* Selectors for Firefox 71+ */
/* These are not tabs toolbar specific but horizontal scrollbox isn't used elsewhere, except in bookmarks toolbar but there it doesn't have [part] attribute since it's not in shadow-root */
@-moz-document url(chrome://browser/content/browser.xhtml){
  .scrollbutton-up[orient="horizontal"][part]~spacer,
  .scrollbutton-up[orient="horizontal"][part],
  .scrollbutton-down[orient="horizontal"][part]{ display: none }

  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;
  }
}

/* Test for Firefox > 66 */
@supports (inset-block:auto){
  #tabbrowser-tabs > .tabbrowser-arrowscrollbox > .arrowscrollbox-scrollbox{
    display: flex;
    flex-wrap: wrap;
    overflow-y: auto;
    max-height: calc(var(--tab-min-height) * var(--multirow-n-rows));
    scrollbar-color: var(--toolbar-bgcolor) var(--lwt-accent-color);
    scrollbar-width: thin;
  }
  #tabbrowser-tabs > .tabbrowser-arrowscrollbox,
  #tabbrowser-arrowscrollbox{
    overflow: -moz-hidden-unscrollable;
    display: block;
  }
}

/* Test for Firefox < 66 */
@supports not (inset-block:auto){
  #tabbrowser-tabs > .tabbrowser-arrowscrollbox{
    min-height: unset !important;
  }
  #tabbrowser-tabs .scrollbox-innerbox{
    display: flex;
    flex-wrap: wrap;
  }
  #tabbrowser-tabs .arrowscrollbox-scrollbox {
    overflow: -moz-hidden-unscrollable;
    display: block;
  }
}

.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% }

#scrollbutton-up,
#scrollbutton-down,
#scrollbutton-up~spacer,
#tabbrowser-tabs .scrollbutton-up,
#tabbrowser-tabs .scrollbutton-down,
#alltabs-button,
:root:not([customizing]) #TabsToolbar #new-tab-button,
#tabbrowser-tabs spacer,
.tabbrowser-tab::after{ display: none !important }
This entry was posted on December 4, 2019, in blog, firefox.

Firefox tweak: more compact tabs

[OBSOLETE stopped working with firefox 71]

  1. Open about:config and set toolkit.legacyUserProfileCustomizations.stylesheets to true.
  2. Open a new tab on about:support
  3. Click the button next to “Profile Folder”
  4. Go to the “chrome” directory at the profile folder, or create it if it doesn’t exist.
  5. Create a file named “userChrome.css” (if it doesn’t exist) and open it in a text editor.
  6. Copy the css code from github.com/andreicristianpetcu/UserChrome-Tweaks
    (copy of the css is at the bottom of this post)
  7. Paste it into userChrome.css and save.
  8. Restart Firefox

userChrome.css

/* 
* Makes tabs only 22px high rather than the default 29px
* Only works on compact mode, otherwise tab height will be normal
*/

[uidensity="compact"]:root {
  --tab-min-height: 22px !important;
  --newtab-margin: -3px 0 -3px -3px !important;
}

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

.tabs-newtab-button{
  margin: var(--newtab-margin) !important;
}
This entry was posted on November 28, 2017, in blog, firefox.

Firefox tweaks

Decrease session store interval

Open about:config and set browser.sessionstore.interval to 1800000 (this means 30 minutes). Now, Firefox will save the session once every 30 mins instead of every 15 seconds.

Disable save to pocket icon

Open about:config and set extensions.pocket.enabled to false

This entry was posted on November 27, 2017, in blog, firefox.

Multi Row Tabs in Firefox Quantum

[OBSOLETE stopped working with firefox 71]

The Tab Mix Plus addon stopped working with v57 :-(

  1. Open about:config and set toolkit.legacyUserProfileCustomizations.stylesheets to true.
  2. Open a new tab on about:support
  3. Click the button next to “Profile Folder”
  4. Go to the “chrome” directory at the profile folder, or create it if it doesn’t exist.
  5. Create a file named “userChrome.css” (if it doesn’t exist) and open it in a text editor.
  6. Copy the css code from github.com/andreicristianpetcu/UserChrome-Tweaks
    (copy of the css is at the bottom of this post)
  7. Paste it into userChrome.css and save.
  8. Restart Firefox

Update for v58: Changed .tabbrowser-tabs to #tabbrowser-tabs.

Update for v65: Removed #titlebar related stuff

userChrome.css

.tabbrowser-tab:not([pinned]) {
    flex-grow:1;
    min-width:150px;
}
.tabbrowser-tab,.tab-background {
    height:var(-tab-min-height);
}
.tab-stack {
    width: 100%;
}
#tabbrowser-tabs .scrollbox-innerbox {
    display: flex;
    flex-wrap: wrap;
}
#tabbrowser-tabs .arrowscrollbox-scrollbox {
    overflow: visible;
    display: block;
}
#tabbrowser-tabs .scrollbutton-up,#tabbrowser-tabs .scrollbutton-down,#alltabs-button,.tabbrowser-tab:not([fadein]){
    display: none;
}
#main-window[sizemode="maximized"] #TabsToolbar{
    margin-left:var(-tab-min-height);
}
/*
#titlebar,#titlebar-buttonbox{
    height:var(--tab-min-height) !important;
}
#titlebar{
    margin-bottom:calc(var(--tab-min-height)*-1) !important;
}
#main-window[sizemode="maximized"] #titlebar{
    margin-bottom:calc(6px + var(--tab-min-height)*-1) !important;
}
#titlebar:active{
    margin-bottom:0 !important;
}
#titlebar:active #titlebar-content{
    margin-bottom:var(--tab-min-height) !important;
}
*/

Based on instructions here.