From 366b44eea4cbd70aced4d8da1ba9deb5d2c9663e Mon Sep 17 00:00:00 2001 From: Tristan Druyen Date: Fri, 28 Feb 2025 15:46:22 +0100 Subject: [PATCH] Switch ff to florp --- ext/doom/config.el | 2 + home-mods/firefox/_base.nix | 409 ++++++++++++++++++++++++++++++++ home-mods/firefox/default.nix | 408 +------------------------------ home-mods/firefox/floorp.nix | 13 + systems/nixos-pulse/default.nix | 4 +- users/admin-fat.nix | 3 +- 6 files changed, 430 insertions(+), 409 deletions(-) create mode 100644 home-mods/firefox/_base.nix create mode 100644 home-mods/firefox/floorp.nix diff --git a/ext/doom/config.el b/ext/doom/config.el index 8fbb87c..4564bd0 100644 --- a/ext/doom/config.el +++ b/ext/doom/config.el @@ -145,6 +145,7 @@ ;; ;; (treesit-auto-add-to-auto-mode-alist 'all) ;; (global-treesit-auto-mode)) + (use-package ultra-scroll :init (setq scroll-conservatively 101 ;; important! @@ -161,6 +162,7 @@ ;; Eat (Native Term Emu) (use-package! eat :custom + ;; TODO check if even needed or it reads SHELL or user shell settings ? (eat-shell "fish") (explicit-shell-file-name "/etc/profiles/per-user/tristand/bin/fish") ;; TODO username dependant :config diff --git a/home-mods/firefox/_base.nix b/home-mods/firefox/_base.nix new file mode 100644 index 0000000..da0aa9b --- /dev/null +++ b/home-mods/firefox/_base.nix @@ -0,0 +1,409 @@ +{ config +, lib +, pkgs +, ... +}: { + enable = true; + # package = pkgs.firefox; + + profiles = { + default = { + isDefault = true; + + # userChrome = '' + # @-moz-document url(chrome://browser/content/browser.xhtml) { + # /* tabs on bottom of window */ + # /* requires that you set + # * toolkit.legacyUserProfileCustomizations.stylesheets = true + # * in about:config + # */ + # #main-window body { flex-direction: column-reverse !important; } + # #navigator-toolbox { flex-direction: column-reverse !important; } + # #urlbar { + # top: unset !important; + # bottom: calc(var(--urlbar-margin-inline)) !important; + # box-shadow: none !important; + # display: flex !important; + # flex-direction: column !important; + # } + # #urlbar > * { + # flex: none; + # } + # #urlbar-input-container { + # order: 2; + # } + # #urlbar > .urlbarView { + # order: 1; + # border-bottom: 1px solid #666; + # } + # #urlbar-results { + # display: flex; + # flex-direction: column-reverse; + # } + # .search-one-offs { display: none !important; } + # .tab-background { border-top: none !important; } + # #navigator-toolbox::after { border: none; } + # #TabsToolbar .tabbrowser-arrowscrollbox, + # #tabbrowser-tabs, .tab-stack { min-height: 28px !important; } + # .tabbrowser-tab { font-size: 80%; } + # .tab-content { padding: 0 5px; } + # .tab-close-button .toolbarbutton-icon { width: 12px !important; height: 12px !important; } + # toolbox[inFullscreen=true] { display: none; } + # /* + # * the following makes it so that the on-click panels in the nav-bar + # * extend upwards, not downwards. some of them are in the #mainPopupSet + # * (hamburger + unified extensions), and the rest are in + # * #navigator-toolbox. They all end up with an incorrectly-measured + # * max-height (based on the distance to the _bottom_ of the screen), so + # * we correct that. The ones in #navigator-toolbox then adjust their + # * positioning automatically, so we can just set max-height. The ones + # * in #mainPopupSet do _not_, and so we need to give them a + # * negative margin-top to offset them *and* a fixed height so their + # * bottoms align with the nav-bar. We also calc to ensure they don't + # * end up overlapping with the nav-bar itself. The last bit around + # * cui-widget-panelview is needed because "new"-style panels (those + # * using "unified" panels) don't get flex by default, which results in + # * them being the wrong height. + # * + # * Oh, yeah, and the popup-notification-panel (like biometrics prompts) + # * of course follows different rules again, and needs its own special + # * rule. + # */ + # #mainPopupSet panel.panel-no-padding { margin-top: calc(-50vh + 40px) !important; } + # #mainPopupSet .panel-viewstack, #mainPopupSet popupnotification { max-height: 50vh !important; height: 50vh; } + # #mainPopupSet panel.panel-no-padding.popup-notification-panel { margin-top: calc(-50vh - 35px) !important; } + # #navigator-toolbox .panel-viewstack { max-height: 75vh !important; } + # panelview.cui-widget-panelview { flex: 1; } + # panelview.cui-widget-panelview > vbox { flex: 1; min-height: 50vh; } + # } + # ''; + settings = { + # Disable internal passwod manager + "signon.rememberSignons" = false; + # Extensions are managed with Nix, so don't update. + "extensions.update.autoUpdateDefault" = false; + "extensions.update.enabled" = false; + + # Default to dark theme in DevTools panel + "devtools.theme" = "dark"; + + # Reduce search engine noise in the urlbar's completion window. The + # shortcuts and suggestions will still work, but Firefox won't clutter + # its UI with reminders that they exist. + "browser.urlbar.suggest.searches" = true; # Let's hope duckduckgo doesn't sell it all :) + "browser.urlbar.shortcuts.bookmarks" = false; + "browser.urlbar.shortcuts.history" = false; + "browser.urlbar.shortcuts.tabs" = false; + "browser.urlbar.showSearchSuggestionsFirst" = false; + "browser.urlbar.speculativeConnect.enabled" = false; + "browser.urlbar.suggest.quicksuggest.nonsponsored" = false; + "browser.urlbar.suggest.quicksuggest.sponsored" = false; + + # Disable some not so useful functionality. + "browser.disableResetPrompt" = true; # "Looks like you haven't started Firefox in a while." + "browser.onboarding.enabled" = false; # "New to Firefox? Let's get started!" tour + "browser.aboutConfig.showWarning" = false; # Warning when opening about:config + "extensions.pocket.enabled" = false; + "extensions.shield-recipe-client.enabled" = false; + + # Sync + # "services.sync.username" = config.etu.user.email; + + "services.sync.engine.addons" = false; # Do not sync extensions. + + "general.autoScroll" = true; # Middle click to scroll + + "browser.startup.page" = 3; # Restore previous windows and tabs. + + # Security-oriented defaults + "security.family_safety.mode" = 0; + # https://blog.mozilla.org/security/2016/10/18/phasing-out-sha-1-on-the-public-web/ + "security.pki.sha1_enforcement_level" = 1; + # https://github.com/tlswg/tls13-spec/issues/1001 + "security.tls.enable_0rtt_data" = false; + # Use Mozilla geolocation service instead of Google if given permission + "geo.provider.network.url" = "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"; + "geo.provider.use_gpsd" = false; + # https://support.mozilla.org/en-US/kb/extension-recommendations + "browser.newtabpage.activity-stream.asrouter.userprefs.cfr" = false; + "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; + "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false; + "extensions.htmlaboutaddons.recommendations.enabled" = false; + "extensions.htmlaboutaddons.discover.enabled" = false; + "extensions.htmlaboutaddons.inline-options.enabled" = false; + "extensions.getAddons.showPane" = false; # uses Google Analytics + "browser.discovery.enabled" = false; + + # Privacy enhancements + "browser.newtabpage.activity-stream.feeds.telemetry" = false; + "browser.newtabpage.activity-stream.telemetry" = false; + "browser.newtabpage.activity-stream.feeds.snippets" = false; + "browser.newtabpage.activity-stream.feeds.section.topstories" = false; + "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; + "browser.newtabpage.activity-stream.showSponsored" = false; + "browser.newtabpage.activity-stream.feeds.discoverystreamfeed" = false; + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; + + # Improve performance + "gfx.webrender.all" = true; + + # Enable ETP for decent security (makes firefox containers and many + # common security/privacy add-ons redundant). + "browser.contentblocking.category" = "strict"; + "privacy.purge_trackers.enabled" = true; + # Do Not Track header + "privacy.donottrackheader.enabled" = true; + "privacy.donottrackheader.value" = 1; + # Disable Private Attribution Tracking Foo + "dom.private-attribution.submission.enabled" = false; + # Your customized toolbar settings are stored in + # 'browser.uiCustomization.state'. This tells firefox to sync it between + # machines. WARNING: This may not work across OSes. Since I use NixOS on + # all the machines I use Firefox on, this is no concern to me. + "services.sync.prefs.sync.browser.uiCustomization.state" = true; + + # Enable userChrome customisations + "toolkit.legacyUserProfileCustomizations.stylesheets" = false; # TODO Reenable with fixed tabs on bottom css + + # Reduce File IO / SSD abuse + # Otherwise, Firefox bombards the HD with writes. Not so nice for SSDs. + # This forces it to write every 15 minutes, rather than 15 seconds. + "browser.sessionstore.interval" = "900000"; + # Disable battery API + "dom.battery.enabled" = false; + # Disable "beacon" asynchronous HTTP transfers (used for analytics) + "beacon.enabled" = false; + # Disable pinging URIs specified in HTML ping= attributes + "browser.send_pings" = false; + # Disable gamepad API to prevent USB device enumeration + "dom.gamepad.enabled" = false; + # Don't try to guess domain names when entering an invalid domain name in URL bar + "browser.fixup.alternate.enabled" = false; + + # Disable telemetry + "toolkit.telemetry.unified" = false; + "toolkit.telemetry.enabled" = false; + "toolkit.telemetry.server" = "data:,"; + "toolkit.telemetry.archive.enabled" = false; + "toolkit.telemetry.coverage.opt-out" = true; + "toolkit.coverage.opt-out" = true; + "toolkit.coverage.endpoint.base" = ""; + "experiments.supported" = false; + "experiments.enabled" = false; + "experiments.manifest.uri" = ""; + "browser.ping-centre.telemetry" = false; + # https://mozilla.github.io/normandy/ + "app.normandy.enabled" = false; + "app.normandy.api_url" = ""; + "app.shield.optoutstudies.enabled" = false; + # Disable health reports (basically more telemetry) + # https://support.mozilla.org/en-US/kb/firefox-health-report-understand-your-browser-perf + # https://gecko.readthedocs.org/en/latest/toolkit/components/telemetry/telemetry/preferences.html + "datareporting.healthreport.uploadEnabled" = false; + "datareporting.healthreport.service.enabled" = false; + "datareporting.policy.dataSubmissionEnabled" = false; + + # Disable crash reports + "breakpad.reportURL" = ""; + "browser.tabs.crashReporting.sendReport" = false; + "browser.crashReports.unsubmittedCheck.autoSubmit2" = false; # don't submit backlogged reports + + # Disable Form autofill + # https://wiki.mozilla.org/Firefox/Features/Form_Autofill + "browser.formfill.enable" = false; + "extensions.formautofill.addresses.enabled" = false; + "extensions.formautofill.available" = "off"; + "extensions.formautofill.creditCards.available" = false; + "extensions.formautofill.creditCards.enabled" = false; + "extensions.formautofill.heuristics.enabled" = false; + + # VAAPI ffmpeg foo + "media.ffmpeg.vaapi.enabled" = true; + }; + + extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ + bitwarden + # clearurls + consent-o-matic + darkreader + dearrow + deutsch-de-language-pack + dictionary-german + df-youtube + flagfox + ipvfoo + leechblock-ng + localcdn + kagi-search + plasma-integration + privacy-badger + rust-search-extension + sidebery + skip-redirect + sponsorblock + tab-stash + ublock-origin + unpaywall + ]; + + search = { + force = true; + default = "Kagi"; + privateDefault = "DuckDuckGo"; + # default = "DuckDuckGo"; + # privateDefault = "Kagi"; + order = [ "Kagi" "DuckDuckGo" "Nix Packages" "Nix Options" "NixOS Wiki" ]; + + engines = { + "Kagi" = { + urls = [{ template = "https://kagi.com/search?q={searchTerms}"; }]; + definedAliases = [ "@k" ]; + iconUpdateURL = "https://kagi.com/favicon.ico"; + updateInterval = 24 * 60 * 60 * 1000; # every day + }; + "DuckDuckGo".metaData = { + alias = "@ddg"; + }; + "Nix Packages" = { + urls = [ + { + template = "https://search.nixos.org/packages"; + params = [ + { + name = "type"; + value = "packages"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + + icon = "/run/current-system/sw/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + + definedAliases = [ "@np" ]; + }; + "Nix Options" = { + urls = [ + { + template = "https://search.nixos.org/options"; + params = [ + { + name = "type"; + value = "options"; + } + { + name = "query"; + value = "{searchTerms}"; + } + ]; + } + ]; + + icon = "/run/current-system/sw/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + + definedAliases = [ "@no" ]; + }; + "Home-Manager Options" = { + urls = [ + { + template = "https://mipmip.github.io/home-manager-option-search"; + params = [ + { + name = "query"; + value = "{searchTerms}"; + } + { + name = "release"; + value = "master"; + } + ]; + } + ]; + + icon = "/run/current-system/sw/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + + definedAliases = [ "@ho" ]; + }; + + "NixOS Wiki" = { + urls = [ + { + template = "https://nixos.wiki/index.php?search={searchTerms}"; + } + ]; + iconUpdateURL = "https://nixos.wiki/favicon.png"; + updateInterval = 24 * 60 * 60 * 1000; + definedAliases = [ "@nw" ]; + }; + + "Bing".metaData.hidden = true; + "Amazon.de".metaData.hidden = true; + "Google".metaData = { + alias = "@g"; + hidden = true; + }; + }; + }; + + bookmarks = [ + { + toolbar = true; + bookmarks = [ + { + name = "Home Manager"; + url = "https://nixos.wiki/wiki/Home_Manager"; + } + { + name = "Nix PR Channel Tracker"; + url = "https://nixpk.gs/pr-tracker.html"; + } + { + name = "Chaotic Nix"; + url = "https://www.nyx.chaotic.cx/"; + } + ]; + } + { + name = "wikipedia"; + tags = [ "wiki" ]; + keyword = "wiki"; + url = "https://en.wikipedia.org/wiki/Special:Search?search=%s&go=Go"; + } + { + name = "kernel.org"; + url = "https://www.kernel.org"; + } + { + name = "Nix sites"; + bookmarks = [ + { + name = "homepage"; + url = "https://nixos.org/"; + } + { + name = "wiki"; + tags = [ "wiki" "nix" ]; + url = "https://nixos.wiki/"; + } + { + name = "Nix sites"; + bookmarks = [ + { + name = "homepage"; + url = "https://nixos.org/"; + } + { + name = "wiki"; + url = "https://nixos.wiki/"; + } + ]; + } + ]; + } + ]; + }; + }; + } diff --git a/home-mods/firefox/default.nix b/home-mods/firefox/default.nix index 5b5376a..437c0e4 100644 --- a/home-mods/firefox/default.nix +++ b/home-mods/firefox/default.nix @@ -2,412 +2,8 @@ , lib , pkgs , ... -}: { - programs.firefox = { - enable = true; - package = pkgs.firefox; - - profiles = { - default = { - isDefault = true; - - # userChrome = '' - # @-moz-document url(chrome://browser/content/browser.xhtml) { - # /* tabs on bottom of window */ - # /* requires that you set - # * toolkit.legacyUserProfileCustomizations.stylesheets = true - # * in about:config - # */ - # #main-window body { flex-direction: column-reverse !important; } - # #navigator-toolbox { flex-direction: column-reverse !important; } - # #urlbar { - # top: unset !important; - # bottom: calc(var(--urlbar-margin-inline)) !important; - # box-shadow: none !important; - # display: flex !important; - # flex-direction: column !important; - # } - # #urlbar > * { - # flex: none; - # } - # #urlbar-input-container { - # order: 2; - # } - # #urlbar > .urlbarView { - # order: 1; - # border-bottom: 1px solid #666; - # } - # #urlbar-results { - # display: flex; - # flex-direction: column-reverse; - # } - # .search-one-offs { display: none !important; } - # .tab-background { border-top: none !important; } - # #navigator-toolbox::after { border: none; } - # #TabsToolbar .tabbrowser-arrowscrollbox, - # #tabbrowser-tabs, .tab-stack { min-height: 28px !important; } - # .tabbrowser-tab { font-size: 80%; } - # .tab-content { padding: 0 5px; } - # .tab-close-button .toolbarbutton-icon { width: 12px !important; height: 12px !important; } - # toolbox[inFullscreen=true] { display: none; } - # /* - # * the following makes it so that the on-click panels in the nav-bar - # * extend upwards, not downwards. some of them are in the #mainPopupSet - # * (hamburger + unified extensions), and the rest are in - # * #navigator-toolbox. They all end up with an incorrectly-measured - # * max-height (based on the distance to the _bottom_ of the screen), so - # * we correct that. The ones in #navigator-toolbox then adjust their - # * positioning automatically, so we can just set max-height. The ones - # * in #mainPopupSet do _not_, and so we need to give them a - # * negative margin-top to offset them *and* a fixed height so their - # * bottoms align with the nav-bar. We also calc to ensure they don't - # * end up overlapping with the nav-bar itself. The last bit around - # * cui-widget-panelview is needed because "new"-style panels (those - # * using "unified" panels) don't get flex by default, which results in - # * them being the wrong height. - # * - # * Oh, yeah, and the popup-notification-panel (like biometrics prompts) - # * of course follows different rules again, and needs its own special - # * rule. - # */ - # #mainPopupSet panel.panel-no-padding { margin-top: calc(-50vh + 40px) !important; } - # #mainPopupSet .panel-viewstack, #mainPopupSet popupnotification { max-height: 50vh !important; height: 50vh; } - # #mainPopupSet panel.panel-no-padding.popup-notification-panel { margin-top: calc(-50vh - 35px) !important; } - # #navigator-toolbox .panel-viewstack { max-height: 75vh !important; } - # panelview.cui-widget-panelview { flex: 1; } - # panelview.cui-widget-panelview > vbox { flex: 1; min-height: 50vh; } - # } - # ''; - settings = { - # Disable internal passwod manager - "signon.rememberSignons" = false; - # Extensions are managed with Nix, so don't update. - "extensions.update.autoUpdateDefault" = false; - "extensions.update.enabled" = false; - - # Default to dark theme in DevTools panel - "devtools.theme" = "dark"; - - # Reduce search engine noise in the urlbar's completion window. The - # shortcuts and suggestions will still work, but Firefox won't clutter - # its UI with reminders that they exist. - "browser.urlbar.suggest.searches" = true; # Let's hope duckduckgo doesn't sell it all :) - "browser.urlbar.shortcuts.bookmarks" = false; - "browser.urlbar.shortcuts.history" = false; - "browser.urlbar.shortcuts.tabs" = false; - "browser.urlbar.showSearchSuggestionsFirst" = false; - "browser.urlbar.speculativeConnect.enabled" = false; - "browser.urlbar.suggest.quicksuggest.nonsponsored" = false; - "browser.urlbar.suggest.quicksuggest.sponsored" = false; - - # Disable some not so useful functionality. - "browser.disableResetPrompt" = true; # "Looks like you haven't started Firefox in a while." - "browser.onboarding.enabled" = false; # "New to Firefox? Let's get started!" tour - "browser.aboutConfig.showWarning" = false; # Warning when opening about:config - "extensions.pocket.enabled" = false; - "extensions.shield-recipe-client.enabled" = false; - - # Sync - # "services.sync.username" = config.etu.user.email; - - "services.sync.engine.addons" = false; # Do not sync extensions. - - "general.autoScroll" = true; # Middle click to scroll - - "browser.startup.page" = 3; # Restore previous windows and tabs. - - # Security-oriented defaults - "security.family_safety.mode" = 0; - # https://blog.mozilla.org/security/2016/10/18/phasing-out-sha-1-on-the-public-web/ - "security.pki.sha1_enforcement_level" = 1; - # https://github.com/tlswg/tls13-spec/issues/1001 - "security.tls.enable_0rtt_data" = false; - # Use Mozilla geolocation service instead of Google if given permission - "geo.provider.network.url" = "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%"; - "geo.provider.use_gpsd" = false; - # https://support.mozilla.org/en-US/kb/extension-recommendations - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr" = false; - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false; - "extensions.htmlaboutaddons.recommendations.enabled" = false; - "extensions.htmlaboutaddons.discover.enabled" = false; - "extensions.htmlaboutaddons.inline-options.enabled" = false; - "extensions.getAddons.showPane" = false; # uses Google Analytics - "browser.discovery.enabled" = false; - - # Privacy enhancements - "browser.newtabpage.activity-stream.feeds.telemetry" = false; - "browser.newtabpage.activity-stream.telemetry" = false; - "browser.newtabpage.activity-stream.feeds.snippets" = false; - "browser.newtabpage.activity-stream.feeds.section.topstories" = false; - "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; - "browser.newtabpage.activity-stream.showSponsored" = false; - "browser.newtabpage.activity-stream.feeds.discoverystreamfeed" = false; - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - - # Improve performance - "gfx.webrender.all" = true; - - # Enable ETP for decent security (makes firefox containers and many - # common security/privacy add-ons redundant). - "browser.contentblocking.category" = "strict"; - "privacy.purge_trackers.enabled" = true; - # Do Not Track header - "privacy.donottrackheader.enabled" = true; - "privacy.donottrackheader.value" = 1; - # Disable Private Attribution Tracking Foo - "dom.private-attribution.submission.enabled" = false; - # Your customized toolbar settings are stored in - # 'browser.uiCustomization.state'. This tells firefox to sync it between - # machines. WARNING: This may not work across OSes. Since I use NixOS on - # all the machines I use Firefox on, this is no concern to me. - "services.sync.prefs.sync.browser.uiCustomization.state" = true; - - # Enable userChrome customisations - "toolkit.legacyUserProfileCustomizations.stylesheets" = false; # TODO Reenable with fixed tabs on bottom css - - # Reduce File IO / SSD abuse - # Otherwise, Firefox bombards the HD with writes. Not so nice for SSDs. - # This forces it to write every 15 minutes, rather than 15 seconds. - "browser.sessionstore.interval" = "900000"; - # Disable battery API - "dom.battery.enabled" = false; - # Disable "beacon" asynchronous HTTP transfers (used for analytics) - "beacon.enabled" = false; - # Disable pinging URIs specified in HTML ping= attributes - "browser.send_pings" = false; - # Disable gamepad API to prevent USB device enumeration - "dom.gamepad.enabled" = false; - # Don't try to guess domain names when entering an invalid domain name in URL bar - "browser.fixup.alternate.enabled" = false; - - # Disable telemetry - "toolkit.telemetry.unified" = false; - "toolkit.telemetry.enabled" = false; - "toolkit.telemetry.server" = "data:,"; - "toolkit.telemetry.archive.enabled" = false; - "toolkit.telemetry.coverage.opt-out" = true; - "toolkit.coverage.opt-out" = true; - "toolkit.coverage.endpoint.base" = ""; - "experiments.supported" = false; - "experiments.enabled" = false; - "experiments.manifest.uri" = ""; - "browser.ping-centre.telemetry" = false; - # https://mozilla.github.io/normandy/ - "app.normandy.enabled" = false; - "app.normandy.api_url" = ""; - "app.shield.optoutstudies.enabled" = false; - # Disable health reports (basically more telemetry) - # https://support.mozilla.org/en-US/kb/firefox-health-report-understand-your-browser-perf - # https://gecko.readthedocs.org/en/latest/toolkit/components/telemetry/telemetry/preferences.html - "datareporting.healthreport.uploadEnabled" = false; - "datareporting.healthreport.service.enabled" = false; - "datareporting.policy.dataSubmissionEnabled" = false; - - # Disable crash reports - "breakpad.reportURL" = ""; - "browser.tabs.crashReporting.sendReport" = false; - "browser.crashReports.unsubmittedCheck.autoSubmit2" = false; # don't submit backlogged reports - - # Disable Form autofill - # https://wiki.mozilla.org/Firefox/Features/Form_Autofill - "browser.formfill.enable" = false; - "extensions.formautofill.addresses.enabled" = false; - "extensions.formautofill.available" = "off"; - "extensions.formautofill.creditCards.available" = false; - "extensions.formautofill.creditCards.enabled" = false; - "extensions.formautofill.heuristics.enabled" = false; - - # VAAPI ffmpeg foo - "media.ffmpeg.vaapi.enabled" = true; - }; - - extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ - bitwarden - # clearurls - consent-o-matic - darkreader - dearrow - deutsch-de-language-pack - dictionary-german - df-youtube - flagfox - ipvfoo - leechblock-ng - localcdn - kagi-search - plasma-integration - privacy-badger - rust-search-extension - sidebery - skip-redirect - sponsorblock - tab-stash - ublock-origin - unpaywall - ]; - - search = { - force = true; - default = "Kagi"; - privateDefault = "DuckDuckGo"; - # default = "DuckDuckGo"; - # privateDefault = "Kagi"; - order = [ "Kagi" "DuckDuckGo" "Nix Packages" "Nix Options" "NixOS Wiki" ]; - - engines = { - "Kagi" = { - urls = [{ template = "https://kagi.com/search?q={searchTerms}"; }]; - definedAliases = [ "@k" ]; - iconUpdateURL = "https://kagi.com/favicon.ico"; - updateInterval = 24 * 60 * 60 * 1000; # every day - }; - "DuckDuckGo".metaData = { - alias = "@ddg"; - }; - "Nix Packages" = { - urls = [ - { - template = "https://search.nixos.org/packages"; - params = [ - { - name = "type"; - value = "packages"; - } - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - - icon = "/run/current-system/sw/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - - definedAliases = [ "@np" ]; - }; - "Nix Options" = { - urls = [ - { - template = "https://search.nixos.org/options"; - params = [ - { - name = "type"; - value = "options"; - } - { - name = "query"; - value = "{searchTerms}"; - } - ]; - } - ]; - - icon = "/run/current-system/sw/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - - definedAliases = [ "@no" ]; - }; - "Home-Manager Options" = { - urls = [ - { - template = "https://mipmip.github.io/home-manager-option-search"; - params = [ - { - name = "query"; - value = "{searchTerms}"; - } - { - name = "release"; - value = "master"; - } - ]; - } - ]; - - icon = "/run/current-system/sw/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - - definedAliases = [ "@ho" ]; - }; - - "NixOS Wiki" = { - urls = [ - { - template = "https://nixos.wiki/index.php?search={searchTerms}"; - } - ]; - iconUpdateURL = "https://nixos.wiki/favicon.png"; - updateInterval = 24 * 60 * 60 * 1000; - definedAliases = [ "@nw" ]; - }; - - "Bing".metaData.hidden = true; - "Amazon.de".metaData.hidden = true; - "Google".metaData = { - alias = "@g"; - hidden = true; - }; - }; - }; - - bookmarks = [ - { - toolbar = true; - bookmarks = [ - { - name = "Home Manager"; - url = "https://nixos.wiki/wiki/Home_Manager"; - } - { - name = "Nix PR Channel Tracker"; - url = "https://nixpk.gs/pr-tracker.html"; - } - { - name = "Chaotic Nix"; - url = "https://www.nyx.chaotic.cx/"; - } - ]; - } - { - name = "wikipedia"; - tags = [ "wiki" ]; - keyword = "wiki"; - url = "https://en.wikipedia.org/wiki/Special:Search?search=%s&go=Go"; - } - { - name = "kernel.org"; - url = "https://www.kernel.org"; - } - { - name = "Nix sites"; - bookmarks = [ - { - name = "homepage"; - url = "https://nixos.org/"; - } - { - name = "wiki"; - tags = [ "wiki" "nix" ]; - url = "https://nixos.wiki/"; - } - { - name = "Nix sites"; - bookmarks = [ - { - name = "homepage"; - url = "https://nixos.org/"; - } - { - name = "wiki"; - url = "https://nixos.wiki/"; - } - ]; - } - ]; - } - ]; - }; - }; - }; +}@args: { + programs.firefox = (import ./_base.nix args); home.sessionVariables = { BROWSER = "firefox"; diff --git a/home-mods/firefox/floorp.nix b/home-mods/firefox/floorp.nix new file mode 100644 index 0000000..27b2f81 --- /dev/null +++ b/home-mods/firefox/floorp.nix @@ -0,0 +1,13 @@ +{ config +, lib +, pkgs +, ... +}@args: { + programs.floorp = (import ./_base.nix args); + + home.sessionVariables = { + BROWSER = "floorp"; + MOZ_USE_XINPUT2 = "1"; + MOZ_ENABLE_WAYLAND = "1"; + }; +} diff --git a/systems/nixos-pulse/default.nix b/systems/nixos-pulse/default.nix index 075158c..1d4f724 100644 --- a/systems/nixos-pulse/default.nix +++ b/systems/nixos-pulse/default.nix @@ -5,7 +5,7 @@ , system , inputs , ... -}: { +}@moduleArgs: { imports = [ (modulesPath + "/installer/scan/not-detected.nix") inputs.nixos-hardware.nixosModules.common-cpu-amd @@ -66,7 +66,7 @@ users.tristand = import ../../users/admin-shell.nix { username = "tristand"; - inherit pkgs config inputs system lib; + inherit moduleArgs; }; }; diff --git a/users/admin-fat.nix b/users/admin-fat.nix index 73c7538..0f2bd22 100644 --- a/users/admin-fat.nix +++ b/users/admin-fat.nix @@ -10,7 +10,8 @@ ../home-mods/audio ../home-mods/common ../home-mods/desktop - ../home-mods/firefox + # ../home-mods/firefox + ../home-mods/firefox/floorp.nix ../home-mods/plasma ../home-mods/shell ../home-mods/virt