Chapter 19. Firefox

Configure Firefox

  1. Make Firefox the default

    update-alternatives --set gnome-www-browser /usr/bin/firefox update-alternatives --set x-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

  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

    • 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

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

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