159 lines
		
	
	
		
			8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { pkgs, ... }:
 | |
| 
 | |
| {
 | |
|   # Imperative steps: 
 | |
|   # - Enable & configure plugins
 | |
|   # - Run :colourscheme --url https://raw.githubusercontent.com/lonepie/dracula-tridactyl/main/dracula.css dracula for tridactyl theme
 | |
|   # - Import css for sidebery from sidebery.css 
 | |
|   # - Configure wallabagger, shaarli, grasp 
 | |
| 
 | |
| 
 | |
|   programs.browserpass.enable = true;
 | |
|   programs.browserpass.browsers = [ "firefox" ];
 | |
|   #env.XDG_DEXSTOP_DIR = "$HOME/";
 | |
|   programs.firefox = {
 | |
|     enable = true;
 | |
|     profiles.anish = {
 | |
|       id = 0;
 | |
|       isDefault = true;
 | |
|       name = "anish";
 | |
|       userChrome = (builtins.readFile ./userChrome.css);
 | |
|       extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
 | |
|         # Find extensions: https://github.com/nix-community/nur-combined/blob/master/repos/rycee/pkgs/firefox-addons/generated-firefox-addons.nix
 | |
|         ublock-origin
 | |
|         # wallabagger
 | |
|         # tree-style-tab
 | |
|         tridactyl
 | |
|         promnesia
 | |
|         sidebery
 | |
|         (buildFirefoxXpiAddon {
 | |
|           pname = "shaarli";
 | |
|           version = "2.0.0";
 | |
|           addonId = "shaarli@imirhil.fr";
 | |
|           url = "https://addons.mozilla.org/firefox/downloads/file/815126/shaarli-2.0.0.xpi";
 | |
|           sha256 = "W/OpvOfMclibP6LeG573/DlMs0p8fF0efyd+i8Sudgg=";
 | |
|           meta = { };
 | |
|         })
 | |
|         (buildFirefoxXpiAddon {
 | |
|           pname = "grasp";
 | |
|           version = "0.6.6";
 | |
|           addonId = "{37e42980-a7c9-473c-96d5-13f18e0efc74}";
 | |
|           url = "https://addons.mozilla.org/firefox/downloads/file/3502186/grasp-0.6.6.xpi";
 | |
|           sha256 = "L4JhT29MeA34nHIlB8FtCU7hrpbWljZZBusx12uxblE=";
 | |
|           meta = { };
 | |
|         })
 | |
|       ];
 | |
| 
 | |
|       settings = {
 | |
|         "browser.zoom.siteSpecific" = false;
 | |
|         "zoom.minPercent" = "150"; # TODO doesn't seem to work anymore, you have to manually go into preferences and set the zoom level.
 | |
|         "devtools.theme" = "dark";
 | |
|         # Enable userContent.css and userChrome.css for our theme modules
 | |
|         "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
 | |
|         # Stop creating ~/Downloads!
 | |
|         "browser.download.dir" = "/home/anish/downloads"; # TODO Don't hardcode this!
 | |
|         # Don't use the built-in password manager; a nixos user is more likely
 | |
|         # using an external one (you are using one, right?).
 | |
|         # I am, but it's far too convienent. I'm enabling 2FA anyway so w/e 
 | |
|         #"signon.rememberSignons" = false;
 | |
|         # Do not check if Firefox is the default browser
 | |
|         "browser.shell.checkDefaultBrowser" = false;
 | |
|         # Disable the "new tab page" feature and show a blank tab instead
 | |
|         # https://wiki.mozilla.org/Privacy/Reviews/New_Tab
 | |
|         # https://support.mozilla.org/en-US/kb/new-tab-page-show-hide-and-customize-top-sites#w_how-do-i-turn-the-new-tab-page-off
 | |
|         "browser.newtabpage.enabled" = false;
 | |
|         "browser.newtab.url" = "about:blank";
 | |
|         # Disable Activity Stream
 | |
|         # https://wiki.mozilla.org/Firefox/Activity_Stream
 | |
|         "browser.newtabpage.activity-stream.enabled" = false;
 | |
|         # Disable new tab tile ads & preload
 | |
|         # http://www.thewindowsclub.com/disable-remove-ad-tiles-from-firefox
 | |
|         # http://forums.mozillazine.org/viewtopic.php?p=13876331#p13876331
 | |
|         # https://wiki.mozilla.org/Tiles/Technical_Documentation#Ping
 | |
|         # https://gecko.readthedocs.org/en/latest/browser/browser/DirectoryLinksProvider.html#browser-newtabpage-directory-source
 | |
|         # https://gecko.readthedocs.org/en/latest/browser/browser/DirectoryLinksProvider.html#browser-newtabpage-directory-ping
 | |
|         "browser.newtabpage.enhanced" = false;
 | |
|         "browser.newtab.preload" = false;
 | |
|         "browser.newtabpage.directory.ping" = "";
 | |
|         "browser.newtabpage.directory.source" = "data:text/plain,{}";
 | |
|         # Disable some not so useful functionality.
 | |
|         "media.videocontrols.picture-in-picture.video-toggle.enabled" = false;
 | |
|         "extensions.htmlaboutaddons.recommendations.enabled" = false;
 | |
|         "extensions.htmlaboutaddons.discover.enabled" = false;
 | |
|         "extensions.pocket.enabled" = false;
 | |
|         "browser.newtabpage.activity-stream.section.highlights.includePocket" = false;
 | |
|         "extensions.pocket.api" = "";
 | |
|         "extensions.pocket.oAuthConsumerKey" = "";
 | |
|         "extensions.pocket.showHome" = false;
 | |
|         "extensions.pocket.site" = "";
 | |
|         "app.normandy.enabled" = false;
 | |
|         "app.normandy.api_url" = "";
 | |
|         "extensions.shield-recipe-client.enabled" = false;
 | |
|         "app.shield.optoutstudies.enabled" = false;
 | |
|         # Disable battery API
 | |
|         # https://developer.mozilla.org/en-US/docs/Web/API/BatteryManager
 | |
|         # https://bugzilla.mozilla.org/show_bug.cgi?id=1313580
 | |
|         "dom.battery.enabled" = false;
 | |
|         # Disable "beacon" asynchronous HTTP transfers (used for analytics)
 | |
|         # https://developer.mozilla.org/en-US/docs/Web/API/navigator.sendBeacon
 | |
|         "beacon.enabled" = false;
 | |
|         # Disable pinging URIs specified in HTML <a> ping= attributes
 | |
|         # http://kb.mozillazine.org/Browser.send_pings
 | |
|         "browser.send_pings" = false;
 | |
|         # Disable gamepad API to prevent USB device enumeration
 | |
|         # https://www.w3.org/TR/gamepad/
 | |
|         # https://trac.torproject.org/projects/tor/ticket/13023
 | |
|         "dom.gamepad.enabled" = false;
 | |
|         # Don't try to guess domain names when entering an invalid domain name in URL bar
 | |
|         # http://www-archive.mozilla.org/docs/end-user/domain-guessing.html
 | |
|         "browser.fixup.alternate.enabled" = false;
 | |
|         # Disable telemetry
 | |
|         # https://wiki.mozilla.org/Platform/Features/Telemetry
 | |
|         # https://wiki.mozilla.org/Privacy/Reviews/Telemetry
 | |
|         # https://wiki.mozilla.org/Telemetry
 | |
|         # https://www.mozilla.org/en-US/legal/privacy/firefox.html#telemetry
 | |
|         # https://support.mozilla.org/t5/Firefox-crashes/Mozilla-Crash-Reporter/ta-p/1715
 | |
|         # https://wiki.mozilla.org/Security/Reviews/Firefox6/ReviewNotes/telemetry
 | |
|         # https://gecko.readthedocs.io/en/latest/browser/experiments/experiments/manifest.html
 | |
|         # https://wiki.mozilla.org/Telemetry/Experiments
 | |
|         # https://support.mozilla.org/en-US/questions/1197144
 | |
|         # https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/internals/preferences.html#id1
 | |
|         "toolkit.telemetry.enabled" = false;
 | |
|         "toolkit.telemetry.unified" = false;
 | |
|         "toolkit.telemetry.archive.enabled" = false;
 | |
|         "experiments.supported" = false;
 | |
|         "experiments.enabled" = false;
 | |
|         "experiments.manifest.uri" = "";
 | |
|         "privacy.donottrackheader.enabled" = true;
 | |
|         "privacy.trackingprotection.enabled" = true;
 | |
|         "privacy.trackingprotection.socialtracking.enabled" = true;
 | |
|         "privacy.partition.network_state.ocsp_cache" = true;
 | |
|         # 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
 | |
|         "browser.newtabpage.activity-stream.feeds.telemetry" = false;
 | |
|         "browser.newtabpage.activity-stream.telemetry" = false;
 | |
|         "browser.ping-centre.telemetry" = false;
 | |
|         "toolkit.telemetry.bhrPing.enabled" = false;
 | |
|         "toolkit.telemetry.firstShutdownPing.enabled" = false;
 | |
|         "toolkit.telemetry.hybridContent.enabled" = false;
 | |
|         "toolkit.telemetry.newProfilePing.enabled" = false;
 | |
|         "toolkit.telemetry.reportingpolicy.firstRun" = false;
 | |
|         "toolkit.telemetry.shutdownPingSender.enabled" = false;
 | |
|         "toolkit.telemetry.updatePing.enabled" = false;
 | |
| 
 | |
|         # As well as Firefox 'experiments'
 | |
|         "experiments.activeExperiment" = false;
 | |
|         "network.allow-experiments" = false;
 | |
|         "datareporting.healthreport.uploadEnabled" = false;
 | |
|         "datareporting.healthreport.service.enabled" = false;
 | |
|         "datareporting.policy.dataSubmissionEnabled" = false;
 | |
|         # Pipewire optimizations
 | |
|         # https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Performance-tuning#firefox
 | |
|         "reader.parse-on-load.enabled" = false;
 | |
|         "media.webspeech.synth.enabled" = false;
 | |
|       };
 | |
|     };
 | |
|   };
 | |
| }
 |