Chapter 25. Firefox

  1. Make Firefox the default

    sudo update-alternatives --set gnome-www-browser /usr/bin/firefox

  2. Sync

    Set up Firefox sync.

  3. Configuration

    Browse to about:config and adjust:

    • browser.enable_automatic_image_resizing = false

    • browser.search.context.loadInBackground = true

    • dom.event.clipboardevents.enabled = ¿maybe?

    • dom.webnotifications.enabled = false

      Notes on eliminating popups: Disable popups

    • geo.enabled = false

    • pref.privacy.disable_button_view.view_passwords = false

    • toolkit.legacyUserProfileCustomizations.stylesheets = true

    • There may be something to make popups open in new tabs (which is very helpful in tiled WMs like sway).

    Note

    Note that auditd is included in the big list of packages previously installed; the main reason is that it will segregate all apparmor messages; otherwise, firefox tends to spam syslog if apparmor is set up.

  4. Install Extensions

    Extensions may come over automatically from sync, but this is inconsistent. If necessary, load them manually: Ctrl+Shift+A

    • UBlock Origin

    • Noscript

    • Firefox Multi-Account Containers

    • Tree Style Tab (laptop only)

  5. Hide UI clutter

    Install custom chrome file. It may be necessary to close Firefox before doing this. mkdir ~/.mozilla/firefox/*Default*/chrome cp ~/Dropbox/Basic/new_machine/linux/firefox/userChrome.css ~/.mozilla/firefox/*Default*/chrome

    Note

    userChrome.css source

    @namespace
    url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
    
    
    /* How to inspect the browser UI: https://firefox-source-docs.mozilla.org/devtools-user/browser_toolbox/index.html */
    
    /* Hide lots of cruft on the bookmarks toolbar */
    
    #BMB_bookmarksPopup menuseparator[builder="end"],
    #BMB_bookmarksToolbar+menuseparator,
    #BMB_bookmarksToolbar,
    #BMB_unsortedBookmarks,
    #alltabs-button,
    #appmenu_bookmarksPopup menuseparator[builder="end"],
    #appmenu_bookmarksToolbar+menuseparator,
    #appmenu_bookmarksToolbar,
    #appmenu_unsortedBookmarks,
    #bookmarksMenuItemsSeparator,
    #bookmarksMenuPopup menuseparator[builder="end"],
    #bookmarksToolbarFolderMenu+menuseparator,
    #bookmarksToolbarFolderMenu,
    #menu_unsortedBookmarks,
    #organizeBookmarksSeparator,
    #subscribeToPageMenuitem,
    .hide-if-empty-places-result {
        display:none!important;
    }
    
    :root[sizemode="normal"] #nav-bar{ --uc-window-drag-space-width: 20px }
    
    #titlebar{ -moz-appearance: none !important; }
    #TabsToolbar{ min-height: 0px !important }
    
    #tabbrowser-tabs,
    #tabbrowser-arrowscrollbox{ min-height: 0 !important; }
    
    :root:not([customizing]) #tabs-newtab-button,
    :root:not([customizing]) #TabsToolbar-customization-target > .toolbarbutton-1,
    :root:not([customizing]) #TabsToolbar .titlebar-button{
      -moz-appearance: none !important;
      height: 0px;
      padding-top: 0px !important;
      padding-bottom: 0px !important;
      -moz-box-align: stretch;
      margin: 0 !important;
    }
    
    .accessibility-indicator,
    .private-browsing-indicator{ 
      height: unset !important;
    }
    .accessibility-indicator > hbox{ padding-block: 0 !important }
    
    .tabbrowser-tab{
      height: calc(var(--tab-min-height) + 2 * var(--tab-block-margin,0px));
    }
    
    .tabbrowser-tab[first-visible-tab="true"][last-visible-tab="true"]{
      visibility: collapse !important;
      /* These seem unnecessary, but they achieve compatibility with hide_tabs_with_one_tab.css */
      min-height: 0 !important;
      height: 0;
    }
    
    
    
    /* past attempts at hiding one-tab tabbar */
    /* .titlebar-spacer[type="pre-tabs"], .titlebar-spacer[type="post-tabs"] { */
    /*     visibility: collapse; */
    /* } */
    
    /* .tab-label-container { */
    /*     height: auto ! important; */
    /* } */
    
    
    /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/hide_tabs_with_one_tab.css made available under Mozilla Public License v. 2.0
    See the above repository for updates as well as full license text. */
    
    /* Makes tabs toolbar items zero-height initially and sets enlarge them to fill up space equal to tab-min-height set on tabs. Optionally use privatemode_indicator_as_menu_button.css to replace main menu icon with private browsing indicator while tabs are hidden. */
    
    /* This style causes CSD window controls to disappear on linux, but you can kind of work around that by using window_control_fallback_for_custom_windows_theme.css */
    
    /* Hide Tab bar with only one Tab - [110] https://support.mozilla.org/en-US/questions/1394300 */
    #tabbrowser-tabs .tabbrowser-tab:only-of-type,
    #tabbrowser-tabs .tabbrowser-tab:only-of-type + #tabbrowser-arrowscrollbox-periphery{
      display:none !important;
    }
    #tabbrowser-tabs, #tabbrowser-arrowscrollbox {min-height:0!important;}
    /* #TabsToolbar:not(:hover) */ #alltabs-button {display:none !important;}
    
    
    
    /* Button re-styling */
    #tabs-newtab-button{ transform: scale(0.8); }
    #tabs-newtab-button:hover{
      background-color: var(--toolbarbutton-hover-background);
      border-radius: var(--tab-border-radius);
    }
    
    #tabs-newtab-button > .toolbarbutton-icon{
      padding: 0 !important;
      transform: scale(0.5);
      background-color: transparent !important;
    }
    /* Fix window controls not being clickable */
    :root[tabsintitlebar] #toolbar-menubar[autohide="true"][inactive]{
      transition: height 0ms steps(1) 80ms;
    }
    :where(#nav-bar){
      border-inline: var(--uc-window-drag-space-width,0) solid var(--toolbar-fgcolor);
    }
    @media (-moz-platform: linux){
      #TabsToolbar .titlebar-buttonbox{
        -moz-box-align: stretch !important;
      }
      #TabsToolbar > .titlebar-buttonbox-container > .titlebar-buttonbox > .titlebar-button{
        transform: scale(0.8);
        margin-inline: -3px !important;
      }
      #TabsToolbar .titlebar-button > .toolbarbutton-icon{ padding: 0 13px !important }
    }
    

    For more details on editing userChrome.css, see Browser Toolbox help. See also this answer.

    Right-click on Recent bookmarks to get option to hide them