From 056954216f1cffa7a52b97f65a2b1810a8125695 Mon Sep 17 00:00:00 2001 From: Lillian-Violet Date: Sun, 21 Apr 2024 17:59:03 +0200 Subject: [PATCH] Let's try yeeting firefox and only keeping librewolf with all kinds of customisations --- home-manager/desktop/default.nix | 3 +- home-manager/package-configs/firefox.nix | 392 +++++++++++++++++++++++ 2 files changed, 393 insertions(+), 2 deletions(-) create mode 100644 home-manager/package-configs/firefox.nix diff --git a/home-manager/desktop/default.nix b/home-manager/desktop/default.nix index a4cc553..7b854b0 100644 --- a/home-manager/desktop/default.nix +++ b/home-manager/desktop/default.nix @@ -87,9 +87,8 @@ zsh # Web browsing: - (firefox.override {nativeMessagingHosts = [pkgs.firefoxpwa];}) firefoxpwa - librewolf + (librewolf.override {nativeMessagingHosts = [pkgs.firefoxpwa];}) ungoogled-chromium ]; diff --git a/home-manager/package-configs/firefox.nix b/home-manager/package-configs/firefox.nix new file mode 100644 index 0000000..b49099d --- /dev/null +++ b/home-manager/package-configs/firefox.nix @@ -0,0 +1,392 @@ +{ + config, + pkgs, + ... +}: { + programs.firefox = { + enable = true; + nativeMessagingHosts = [pkgs.firefoxpwa]; + package = pkgs.librewolf; + isDefault = true; + settings = { + "browser.aboutConfig.showWarning" = false; + "browser.bookmarks.addedImportButton" = true; + "browser.bookmarks.restore_default_bookmarks" = false; + "browser.bookmarks.showMobileBookmarks" = true; + "browser.ctrlTab.sortByRecentlyUsed" = true; + "browser.discovery.enabled" = false; + "browser.download.panel.shown" = true; + "browser.firefox-view.feature-tour" = "{\"message\":\"FIREFOX_VIEW_FEATURE_TOUR\",\"screen\":\"\",\"complete\":true}"; + "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; + "browser.pageActions.persistedActions" = ''{"ids":["bookmark","_3c078156-979c-498b-8990-85f7987dd929_","firefoxpwa_filips_si"],"idsInUrlbar":["_3c078156-979c-498b-8990-85f7987dd929_","firefoxpwa_filips_si","bookmark"],"idsInUrlbarPreProton":[],"version":1}''; + "browser.search.region" = "NL"; + "browser.uiCustomization.state" = ''{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":["ubo-scope_raymondhill_net-browser-action","treestyletab_piro_sakura_ne_jp-browser-action","wayback_machine_mozilla_org-browser-action","plasma-browser-integration_kde_org-browser-action","kde-connect_0xc0dedbad_com-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","bibitnow018_aqpl_mc2_chalmers_se-browser-action","_09b14d46-21c3-4a7d-b244-e756f497935b_-browser-action","_7fc8ef53-24ec-4205-87a4-1e745953bb0d_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_800215d6-eff0-4a62-9268-09857c048030_-browser-action","_b3e677f4-1150-4387-8629-da738260a48e_-browser-action","_d133e097-46d9-4ecc-9903-fa6a722a6e0e_-browser-action","myallychou_gmail_com-browser-action","_b7f9d2cd-d772-4302-8c3f-eb941af36f76_-browser-action","_cca112bb-1ca6-4593-a2f1-38d808a19dda_-browser-action","gdpr_cavi_au_dk-browser-action","_54da8dcf-a015-4c80-bbb4-db7f226ac7bd_-browser-action","jid1-om7ejgwa1u8akg_jetpack-browser-action","_7c1aa46e-b74f-4325-95d2-84c07d19cdce_-browser-action","_3c078156-979c-498b-8990-85f7987dd929_-browser-action","7esoorv3_alefvanoon_anonaddy_me-browser-action","_15b1b2af-e84a-4c70-ac7c-5608b0eeed5a_-browser-action","_b9db16a4-6edc-47ec-a1f4-b86292ed211d_-browser-action","dontfuckwithpaste_raim_ist-browser-action"],"nav-bar":["back-button","forward-button","stop-reload-button","urlbar-container","customizableui-special-spring2","downloads-button","_testpilot-containers-browser-action","addon_darkreader_org-browser-action","umatrix_raymondhill_net-browser-action","ublock0_raymondhill_net-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_3579f63b-d8ee-424f-bbb6-6d0ce3285e6a_-browser-action","woop-noopscoopsnsxq_jetpack-browser-action","jid1-bofifl9vbdl2zq_jetpack-browser-action","cookieautodelete_kennydo_com-browser-action","addon_simplelogin-browser-action","jid1-aqqsmbyb0a8adg_jetpack-browser-action","unified-extensions-button","reset-pbm-toolbar-button","firefoxpwa_filips_si-browser-action","jid1-mnnxcxisbpnsxq_jetpack-browser-action"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["tabbrowser-tabs","new-tab-button","alltabs-button","_c607c8df-14a7-4f28-894f-29e8722976af_-browser-action"],"PersonalToolbar":["import-button","personal-bookmarks"]},"seen":["save-to-pocket-button","developer-button","treestyletab_piro_sakura_ne_jp-browser-action","addon_darkreader_org-browser-action","_testpilot-containers-browser-action","wayback_machine_mozilla_org-browser-action","plasma-browser-integration_kde_org-browser-action","_c607c8df-14a7-4f28-894f-29e8722976af_-browser-action","kde-connect_0xc0dedbad_com-browser-action","_f209234a-76f0-4735-9920-eb62507a54cd_-browser-action","ublock0_raymondhill_net-browser-action","cookieautodelete_kennydo_com-browser-action","bibitnow018_aqpl_mc2_chalmers_se-browser-action","_09b14d46-21c3-4a7d-b244-e756f497935b_-browser-action","_7fc8ef53-24ec-4205-87a4-1e745953bb0d_-browser-action","woop-noopscoopsnsxq_jetpack-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","_800215d6-eff0-4a62-9268-09857c048030_-browser-action","_3579f63b-d8ee-424f-bbb6-6d0ce3285e6a_-browser-action","_b3e677f4-1150-4387-8629-da738260a48e_-browser-action","_d133e097-46d9-4ecc-9903-fa6a722a6e0e_-browser-action","jid1-bofifl9vbdl2zq_jetpack-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","myallychou_gmail_com-browser-action","_b7f9d2cd-d772-4302-8c3f-eb941af36f76_-browser-action","umatrix_raymondhill_net-browser-action","_cca112bb-1ca6-4593-a2f1-38d808a19dda_-browser-action","gdpr_cavi_au_dk-browser-action","_54da8dcf-a015-4c80-bbb4-db7f226ac7bd_-browser-action","ubo-scope_raymondhill_net-browser-action","jid1-om7ejgwa1u8akg_jetpack-browser-action","_7c1aa46e-b74f-4325-95d2-84c07d19cdce_-browser-action","_3c078156-979c-498b-8990-85f7987dd929_-browser-action","addon_simplelogin-browser-action","7esoorv3_alefvanoon_anonaddy_me-browser-action","jid1-aqqsmbyb0a8adg_jetpack-browser-action","_15b1b2af-e84a-4c70-ac7c-5608b0eeed5a_-browser-action","firefoxpwa_filips_si-browser-action","_b9db16a4-6edc-47ec-a1f4-b86292ed211d_-browser-action","dontfuckwithpaste_raim_ist-browser-action","jid1-mnnxcxisbpnsxq_jetpack-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","toolbar-menubar","TabsToolbar","unified-extensions-area","widget-overflow-fixed-list"],"currentVersion":20,"newElementCount":14}''; + "browser.urlbar.placeholderName" = "DuckDuckGo"; + "browser.urlbar.placeholderName.private" = "DuckDuckGo"; + }; + userChrome = '' + /* + Title: Drannex42's FirefoxSidebar / Vertical Tabs + Description: Vertical tab design for Firefox with dynamic indentation:: + Sideberry and TreeStyleTabs (Legacy) themes available! + Repository URL: https://github.com/drannex42/FirefoxSidebar + Version: 12022.04.17 + */ + + /* + Preferences / Settings :: + Use this file to set your preferences this will save them in one place for easier future updating + ========================================================================= + */ + + /* + Preferences / Settings + Use this file to set your preferences this will save them in one place for easier future updating + ========================================================================= + */ + + :root { + --sidebar-width: 50px; + --toolbar-height: -50px; + --menubar-height: -74px; + --sidebar-padding: calc(var(--sidebar-width) + 5px); + --toolbar-start-end-padding: 5px !important; + + /* Custom Sidebar/Header Backround :: + This sets the background for the other sidebar options (bookmarks, history, in case it is transparent from a theme that is not set up properly + */ + /* --custom-sidebar-bg: Field; /* Default: Field (Disabled) */ + --custom-sidebar-header-bg: #000; /* Default: Field (Disabled) */ + + /* ====== Extension Settings ====== */ + + /* Window Control / Client Side Display Settings === + If you are putting this on the left or right side uncomment the side + preferences below and comment the other + ========================================================================= + */ + --csd-width: 100px; + --csd-top: 8px; + + /* + CSD - Left Side === + Default: --csd-left: 50px; --csd-margin-left: 92px; + */ + + /* + --csd-left: 50px; + --csd-margin-left: 92px; + */ + + /* + CSD - Right Side === + Defaults: --csd-right: 0px; --csd-margin-right: 95px; + */ + + --csd-right: 36px; + --csd-margin-right: 130px; + + /* === END: Window Control / Client Side Display Settings === */ + + /* === END: Extension Settings === */ + + } + + + /* ========================================================================= */ + + /* Sidebar (Core) :: This file is for the sidebar implementation */ + /* + Extension (Core): Sidebar + Description: This is the core implementation of the sidebar used in drannex42's FirefoxSidebar. + Repository URL: https://github.com/drannex42/FirefoxSidebar + Version: v12022.11.22 (YYYYY.MM.DD) + */ + + #main-window #TabsToolbar { + visibility: collapse; + } + + + + #sidebar-box > #browser, + #webextpanels-window { + background: transparent !important; + + } + + #sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] + #sidebar-header { + /*! display: none; */ + } + + /*Collapse in default state and add transition*/ + #sidebar-box { + /*! overflow: visible !important; */ + border-right: none !important; /* border-right: 1px solid var(--sidebar-border-color) !important; */ + z-index: 2; + border-right: none !important; + width: 100% !important; + background: var(--custom-sidebar-bg, --sidebar-background); + + /* lock sidebar to height by doing the inverse margin of the toolbar element */ + z-index: 1000 !important; + position: relative !important; + margin-top: var(--menubar-height) !important; + border-right: none; + transition: none !important; + + /* lock sidebar to specified width */ + min-width: var(--sidebar-width) !important; + max-width: var(--sidebar-width) !important; + overflow: hidden !important; + transition-property: width; + transition-duration: 0.25s; + transition-delay: 0.25s; + transition-timing-function: ease-in; + } + + #sidebar-box::after { + background: var(--sidebar-border-color) !important; + margin-left: 207px; + z-index: 9999999; + position: absolute; + content: " "; + width: 1px; + height: 100%; + top: 0; + right: 0px; + } + + #sidebar-box:hover:after { + top: 42px; + } + + /*All other sidebar-boxes should be larger on hover*/ + #sidebar-box:hover, #sidebar-box #sidebar:hover { + min-width: 350px !important; + max-width: 350px !important; + z-index: 999; + margin-right: -300px !important; + } + + /*Tree Style Tabs && Sideberry specific sidebar width and size*/ + + #sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"]:hover, + #sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"]:hover, + #sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"] #sidebar:hover { + min-width: 260px !important; + max-width: 260px !important; + margin-right: -210px !important; + } + + #sidebar-header { + border: none !important; + border-right: 1px solid var(--sidebar-border-color); + background: var(--custom-sidebar-header-bg, transparent) !important; + } + + #sidebar-close, + #sidebar-title, + #sidebar-switcher-arrow { + display: none; + border: none; + } + + #sidebar-switcher-target { + border: none !important; + margin-left: 4.5px !important; + padding-top: 4px !important; + padding-bottom: 6px !important; + } + + #sidebar-switcher-target:focus-visible:not(:hover, [open]), + #sidebar-close:focus-visible:not(:hover, [open]) { + outline: none !important; + } + + + + .sidebar-splitter { + opacity: 0 !important; + width: 0px !important; + border: none !important; + --avatar-image-url: none !important; + } + + #sidebarMenu-popup .subviewbutton { + min-width: 0px; + padding: 0; + margin: 0 !important; + } + + toolbarseparator { + display: none; + } + + #nav-bar-customization-target { + z-index: 99999; + position: relative; + } + + .browser-toolbar { + padding-left: var(--sidebar-width) !important; + position: relative !important; + } + + #PersonalToolbar { + padding: 2px 5px !important; + padding-top: 0px !important; + margin-top: 0px !important; + padding-left: calc(var(--sidebar-width) + 6px) !important; + } + + + /* + Extensions :: + To enable/disable specific extensions just comment/uncomment the line below. + ========================================================================= + */ + + /* CSD / Window Controls */ + /* + Extension: Window Controls / Client Side Decorations (CSD) + Description: This brings the window controls into the main bar (where the address bar exists). Please see the prefs.css folder for switching the sides from left to right. + Repository URL: https://github.com/drannex42/FirefoxSidebar + Contributors: Mr-nUUb, Xanaxus, Drannex42 + Issue URL: https://github.com/drannex42/FirefoxSidebar/issues/14 + */ + + /* allow the buttons to appear */ + .browser-toolbar { + position: unset !important; + } + + /* reserve space for buttons */ + #nav-bar { + padding-right: var(--csd-margin-right) !important; + margin-left: var(--csd-margin-left) !important; + } + + /* move buttons next to menu button */ + .titlebar-buttonbox-container { + visibility: visible !important; + position: fixed !important; + display: block; + z-index: 999999999; + top: var(--csd-top, inherit); + right: var(--csd-right, inherit); + left: var(--csd-left, inherit); + max-width: var(--csd-width); + } + + /* hide buttons in fullscreen mode (video player and F11) */ + #main-window[inFullscreen="true"] .titlebar-buttonbox-container, + #main-window[inDOMFullscreen="true"] .titlebar-buttonbox-container { + visibility: hidden !important; + } + + /* remove empty space when in fullscreen mode (F11) */ + #main-window[inFullscreen="true"] #nav-bar { + padding-right: 0px !important; + margin-left: 0px !important; + } + /* END Client Side Decorations / Window Controls */ + + + + /* --- Prevent enlargement */ + #urlbar[breakout-extend] { + top: calc( + (var(--urlbar-toolbar-height) - var(--urlbar-height)) / 2 + ) !important; + left: 0 !important; + width: 100% !important; + } + + #urlbar[breakout-extend] #urlbar-input-container { + height: var(--urlbar-height) !important; + /* padding: 0px !important; */ + padding-block: 0px !important; + padding-inline: 0px !important; + } + .urlbarView-row { + padding: 0px 2px 0px 2px; + } + /* END Prevent enlargement --- */ + + /*/* --- Reduce row paddings to make them more compact */ + .urlbarView-row { + padding: 2px 0px !important; + line-height: 1.2em !important; + margin: -1px; + margin-bottom: 0px; + } + .urlbarView-row-inner { + padding-bottom: 6px !important; + } + .urlbarView { + margin: 0px !important; + width: 100% !important; + } + /* END Reduce row paddings to make them more compact --- */ + + /* Disable Urlbar Animation */ + #urlbar[breakout][breakout-extend][breakout-extend-animate] + > #urlbar-background { + animation-name: none !important; + animation: none !important; + } + /* END Disable Urlbar Animation */ + + /* --- More compact "Search with Google" rows */ + .urlbarView-row[dynamicType="onboardTabToSearch"] > .urlbarView-row-inner { + min-height: auto !important; + width: auto !important; + } + .urlbarView-row[dynamicType="onboardTabToSearch"] + > .urlbarView-row-inner + > .urlbarView-no-wrap + > .urlbarView-favicon { + margin-bottom: -1px; + } + /* END More compact "Search with Google" rows --- */ + + /* Remove active border on the addressbar when in focus */ + #nav-bar { + --toolbar-field-focus-border-color: #ccc; + } + + /* Remove box shadow on address bar */ + #urlbar-background, + #searchbar { + box-shadow: none !important; + } + ''; + profiles.lillian = { + Bookmarks = [ + { + name = "estrogen production"; + tags = ["chemistry" "oestrogen" "estrogen" "diy"]; + url = "https://crimethinc.com/2022/12/15/producing-transdermal-estrogen-a-do-it-yourself-guide"; + } + { + name = "Nix sites"; + toolbar = false; + bookmarks = [ + { + name = "packages"; + tags = ["packages" "basic" "nix"]; + url = "https://search.nixos.org/"; + } + { + name = "settings"; + tags = ["settings" "services" "packages" "nix"]; + url = "https://mynixos.com"; + } + ]; + } + ]; + }; + }; +}