feat: more laptop shit

This commit is contained in:
Patrick Großmann 2023-09-30 18:08:54 +02:00
parent c48444af6a
commit e29110aa75
Signed by: patrick
GPG key ID: 451F95EFB8BECD0F
9 changed files with 284 additions and 345 deletions

View file

@ -36,12 +36,12 @@
"pre-commit-hooks": "pre-commit-hooks" "pre-commit-hooks": "pre-commit-hooks"
}, },
"locked": { "locked": {
"dirtyRev": "da8fc11d2e83a7cdba24cfd43ca39bf866d0e56a-dirty", "lastModified": 1696078264,
"dirtyShortRev": "da8fc11-dirty", "narHash": "sha256-NF5G9CHaVWDD6DY0TP8z0cx30dAL1ciFYcVidVvb+NA=",
"lastModified": 1695737316, "owner": "oddlama",
"narHash": "sha256-WAZMw/HqNqaCRCx/DDPWzITDIV8ui9c3PaiTzxYPoTE=", "repo": "agenix-rekey",
"type": "git", "rev": "e529da8197f024c0069c4fde6237505e305b8d0a",
"url": "file:///home/patrick/repos/nix/agenix-rekey" "type": "github"
}, },
"original": { "original": {
"owner": "oddlama", "owner": "oddlama",
@ -154,11 +154,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1695195896, "lastModified": 1695973661,
"narHash": "sha256-pq9q7YsGXnQzJFkR5284TmxrLNFc0wo4NQ/a5E93CQU=", "narHash": "sha256-BP2H4c42GThPIhERtTpV1yCtwQHYHEKdRu7pjrmQAwo=",
"owner": "numtide", "owner": "numtide",
"repo": "devshell", "repo": "devshell",
"rev": "05d40d17bf3459606316e3e9ec683b784ff28f16", "rev": "cd4e2fda3150dd2f689caeac07b7f47df5197c31",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -174,11 +174,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1695632260, "lastModified": 1695864092,
"narHash": "sha256-B8nW57UouYtiWMJKX5leByifMj+lYk7IyV5uz0c/ZwA=", "narHash": "sha256-Hu1SkFPqO7ND95AOzBkZE2jGXSYhfZ965C03O72Kbu8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "disko", "repo": "disko",
"rev": "a14a3fb0a8e465fcd728e398d00204a195be06a3", "rev": "19b62324663b6b9859caf7f335d232cf4f1f6a32",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -471,11 +471,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1695550077, "lastModified": 1696063111,
"narHash": "sha256-xoxR/iY69/3lTnnZDP6gf3J46DUKPcf+Y1jH03tfZXE=", "narHash": "sha256-F2IJEbyH3xG0eqyAYn9JoV+niqNz+xb4HICYNkkviNI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "a88df2fb101778bfd98a17556b3a2618c6c66091", "rev": "ae896c810f501bf0c3a2fd7fc2de094dd0addf01",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -629,11 +629,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1693791338, "lastModified": 1696058303,
"narHash": "sha256-wHmtB5H8AJTUaeGHw+0hsQ6nU4VyvVrP2P4NeCocRzY=", "narHash": "sha256-eNqKWpF5zG0SrgbbtljFOrRgFgRzCc4++TMFADBMLnc=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixos-generators", "repo": "nixos-generators",
"rev": "8ee78470029e641cddbd8721496da1316b47d3b4", "rev": "150f38bd1e09e20987feacb1b0d5991357532fb5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -644,11 +644,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1695541019, "lastModified": 1695887975,
"narHash": "sha256-rs++zfk41K9ArWkDAlmBDlGlKO8qeRIRzdjo+9SmNFI=", "narHash": "sha256-u3+5FR12dI305jCMb0fJNQx2qwoQ54lv1tPoEWp0hmg=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "61283b30d11f27d5b76439d43f20d0c0c8ff5296", "rev": "adcfd6aa860d1d129055039696bc457af7d50d0e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -659,11 +659,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1695360818, "lastModified": 1695830400,
"narHash": "sha256-JlkN3R/SSoMTa+CasbxS1gq+GpGxXQlNZRUh9+LIy/0=", "narHash": "sha256-gToZXQVr0G/1WriO83olnqrLSHF2Jb8BPcmCt497ro0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "e35dcc04a3853da485a396bdd332217d0ac9054f", "rev": "8a86b98f0ba1c405358f1b71ff8b5e1d317f5db2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -746,11 +746,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1695640374, "lastModified": 1696040396,
"narHash": "sha256-uhux9CgJkqtoS+Mh2KAPTIz2YTGTASqv2IbN/0iSE90=", "narHash": "sha256-2EOjJ5bgjCmDso2shw70AiL6wsegbEs8KlMJk2sgHek=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs-wayland", "repo": "nixpkgs-wayland",
"rev": "48c55ade480192dbb65eb7e8850a68b6b64a7927", "rev": "bedaae13271fd5cfd861698e591d6af7104174e4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -813,11 +813,11 @@
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1687629384, "lastModified": 1695643200,
"narHash": "sha256-p0m0AXL2s1RhymW7BXfcR6oYfZhYDNmnSiuTQoyP/2o=", "narHash": "sha256-49SPrO9fWeIoSXS5pFFFhcC4kyfQik5B2J+GSuMopjE=",
"owner": "symphorien", "owner": "symphorien",
"repo": "nixseparatedebuginfod", "repo": "nixseparatedebuginfod",
"rev": "08d4f56a656c38eb414aeedecd9f02cb57ffb2a8", "rev": "318ada174f6e6510a50abb69b7765a28c8009b1a",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -127,7 +127,7 @@
import ./lib inputs import ./lib inputs
++ import ./pkgs ++ import ./pkgs
++ [ ++ [
nixpkgs-wayland.overlay # nixpkgs-wayland.overlay
devshell.overlays.default devshell.overlays.default
agenix-rekey.overlays.default agenix-rekey.overlays.default
]; ];

View file

@ -35,4 +35,5 @@
applications = 9; applications = 9;
desktop = 8; desktop = 8;
}; };
hidpi = true;
} }

View file

@ -2,57 +2,71 @@
inputs, inputs,
config, config,
pkgs, pkgs,
lib,
... ...
}: { }: let
inherit
(lib)
mkOption
types
;
in {
options.hidpi = mkOption {
default = false;
type = types.bool;
description = "Enable HighDPI configuration for this host and all installed users";
};
imports = [ imports = [
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
./fonts.nix ./fonts.nix
./images.nix ./images.nix
]; ];
stylix = { config = {
autoEnable = false; stylix = {
polarity = "dark"; autoEnable = false;
image = config.lib.stylix.pixel "base00"; polarity = "dark";
base16Scheme = "${pkgs.base16-schemes}/share/themes/vice.yaml"; image = config.lib.stylix.pixel "base00";
# Has to be green base16Scheme = "${pkgs.base16-schemes}/share/themes/vice.yaml";
override.base0B = "#00CC99"; # Has to be green
#base16Scheme = { override.base0B = "#00CC99";
# base00 = "#101419"; #base16Scheme = {
# base01 = "#171B20"; # base00 = "#101419";
# base02 = "#21262e"; # base01 = "#171B20";
# base03 = "#242931"; # base02 = "#21262e";
# base04 = "#485263"; # base03 = "#242931";
# base05 = "#b6beca"; # base04 = "#485263";
# base06 = "#dee1e6"; # base05 = "#b6beca";
# base07 = "#e3e6eb"; # base06 = "#dee1e6";
# base08 = "#e05f65"; # base07 = "#e3e6eb";
# base09 = "#f9a872"; # base08 = "#e05f65";
# base0A = "#f1cf8a"; # base09 = "#f9a872";
# base0B = "#78dba9"; # base0A = "#f1cf8a";
# base0C = "#74bee9"; # base0B = "#78dba9";
# base0D = "#70a5eb"; # base0C = "#74bee9";
# base0E = "#c68aee"; # base0D = "#70a5eb";
# base0F = "#9378de"; # base0E = "#c68aee";
#}; # base0F = "#9378de";
## based on decaycs-dark, bright variant #};
#base16Scheme = { ## based on decaycs-dark, bright variant
# base00 = "#101419"; #base16Scheme = {
# base01 = "#171B20"; # base00 = "#101419";
# base02 = "#21262e"; # base01 = "#171B20";
# base03 = "#242931"; # base02 = "#21262e";
# base04 = "#485263"; # base03 = "#242931";
# base05 = "#b6beca"; # base04 = "#485263";
# base06 = "#dee1e6"; # base05 = "#b6beca";
# base07 = "#e3e6eb"; # base06 = "#dee1e6";
# base08 = "#e5646a"; # base07 = "#e3e6eb";
# base09 = "#f7b77c"; # base08 = "#e5646a";
# base0A = "#f6d48f"; # base09 = "#f7b77c";
# base0B = "#94F7C5"; # base0A = "#f6d48f";
# base0C = "#79c3ee"; # base0B = "#94F7C5";
# base0D = "#75aaf0"; # base0C = "#79c3ee";
# base0E = "#cb8ff3"; # base0D = "#75aaf0";
# base0F = "#9d85e1"; # base0E = "#cb8ff3";
#}; # base0F = "#9d85e1";
#};
};
}; };
} }

View file

@ -108,33 +108,41 @@ in {
programs.i3status-rust = { programs.i3status-rust = {
enable = true; enable = true;
bars.main = { bars.main = {
blocks = [ blocks =
{ [
block = "net"; {
} block = "net";
{ }
block = "cpu"; {
} block = "cpu";
{ }
block = "nvidia_gpu"; {
} block = "nvidia_gpu";
{ }
block = "sound"; ]
} ++ {"patricknix" = [{block = "battery";}];}.${nixosConfig.node.name} or []
{ ++ [
block = "backlight"; {
missing_format = ""; block = "sound";
} }
{ {
block = "time"; block = "backlight";
format = "$icon $timestamp.datetime(f:'%a %d.%m.%y %H:%M:%S') "; missing_format = "";
interval = 1; }
} {
]; block = "time";
format = "$icon $timestamp.datetime(f:'%a %d.%m.%y %H:%M:%S') ";
interval = 1;
}
];
theme = "native"; theme = "native";
icons = "material-nf"; # currently nixpgs-wayland breaks this
settings."icons.overrides" = { # icons = "material-nf";
cpu = ""; settings = {
icons.icons = "material-nf";
"icons.overrides" = {
cpu = "";
};
}; };
}; };
}; };

View file

@ -2,6 +2,7 @@
pkgs, pkgs,
config, config,
lib, lib,
nixosConfig,
... ...
}: { }: {
home.pointerCursor = { home.pointerCursor = {
@ -9,7 +10,10 @@
x11.enable = true; x11.enable = true;
package = pkgs.openzone-cursors; package = pkgs.openzone-cursors;
name = "OpenZone_White_Slim"; name = "OpenZone_White_Slim";
size = 18; size =
if nixosConfig.hidpi
then 24
else 18;
}; };
stylix = { stylix = {

View file

@ -14,11 +14,6 @@
]; ];
directories = with lib.lists; directories = with lib.lists;
[".config/dconf"] [".config/dconf"]
++
# firefox cannot be a symlink as home manager refuses put files outside your $HOME
optionals config.programs.firefox.enable [
".mozilla"
]
++ optionals config.programs.direnv.enable [ ++ optionals config.programs.direnv.enable [
".local/share/direnv" ".local/share/direnv"
] ]

View file

@ -1,4 +1,4 @@
{ {pkgs, ...}: {
home = { home = {
sessionVariables = { sessionVariables = {
# Firefox touch support # Firefox touch support
@ -10,14 +10,14 @@
MOZ_DISABLE_RDD_SANDBOX = 1; MOZ_DISABLE_RDD_SANDBOX = 1;
}; };
}; };
xdg.mimeApps.defaultApplications = { programs.firefox = let
"text/html" = ["firefox.desktop"]; betterfox = pkgs.fetchFromGitHub {
"text/xml" = ["firefox.desktop"]; owner = "yokoffing";
"x-scheme-handler/http" = ["firefox.desktop"]; repo = "Betterfox";
"x-scheme-handler/https" = ["firefox.desktop"]; rev = "116.1";
}; hash = "sha256-Ai8Szbrk/4FhGhS4r5gA2DqjALFRfQKo2a/TwWCIA6g=";
xdg.mimeApps.enable = true; };
programs.firefox = { in {
enable = true; enable = true;
profiles.patrick = { profiles.patrick = {
userChrome = '' userChrome = ''
@ -33,6 +33,11 @@
height: 32px !important; height: 32px !important;
} }
''; '';
extraConfig = builtins.concatStringsSep "\n" [
(builtins.readFile "${betterfox}/Securefox.js")
(builtins.readFile "${betterfox}/Fastfox.js")
(builtins.readFile "${betterfox}/Peskyfox.js")
];
settings = { settings = {
# user chrome soll funzen # user chrome soll funzen
"toolkit.legacyUserProfileCustomizations.stylesheets" = true; "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
@ -44,239 +49,89 @@
# enable if grapics card support av1 # enable if grapics card support av1
"media.av1.enabled" = false; "media.av1.enabled" = false;
"widget.dmabuf.force-enabled" = true; "widget.dmabuf.force-enabled" = true;
# Speeeeed # General
# Betterfox/ "browser.toolbars.bookmarks.visibility" = "never"; # Never show the bookmark toolbar
# PREF: initial paint delay "intl.accept_languages" = "en-US,en";
# How long FF will wait before rendering the page, in milliseconds "browser.startup.page" = 3; # always resume session on restart
# Reduce the 5ms Firefox waits to render the page "privacy.clearOnShutdown.history" = false; # persist history pls
# [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1283302 "devtools.chrome.enabled" = true; # enable js in the dev console
# [2] https://docs.google.com/document/d/1BvCoZzk2_rNZx3u9ESPoFjSADRI0zIPeJRXFLwWXx_4/edit#heading=h.28ki6m8dg30z "browser.tabs.crashReporting.sendReport" = false; # don't send crash reports
"nglayout.initialpaint.delay" = 0; # default=5; used to be 250 "accessibility.typeaheadfind.enablesound" = false; # No sound in search windows pls
"nglayout.initialpaint.delay_in_oopif" = 0; # default=5 "general.autoScroll" = true;
# PREF: use bigger packets # Privacy
# Reduce Firefox's CPU usage by requiring fewer application-to-driver data transfers. "privacy.donottrackheader.enabled" = true;
# However, it does not affect the actual packet sizes transmitted over the network. "privacy.trackingprotection.enabled" = true;
# [1] https://www.mail-archive.com/support-seamonkey@lists.mozilla.org/msg74561.html "privacy.trackingprotection.socialtracking.enabled" = true;
"network.buffer.cache.size" = 262144; # 256 kb; default=32768 (32 kb "privacy.userContext.enabled" = true;
"network.buffer.cache.count" = 128; # default=24 "privacy.userContext.ui.enabled" = true;
# Firefox shall not test option changes on me pls
# PREF: increase the absolute number of HTTP connections "app.normandy.enabled" = false;
# [1] https://kb.mozillazine.org/Network.http.max-connections
# [2] https://kb.mozillazine.org/Network.http.max-persistent-connections-per-server
# [3] https://www.reddit.com/r/firefox/comments/11m2yuh/how_do_i_make_firefox_use_more_of_my_900_megabit/jbfmru6/
"network.http.max-connections" = 1800; # default=900
"network.http.max-persistent-connections-per-server" = 10; # default=6; download connections; anything above 10 is excessive
"network.http.max-urgent-start-excessive-connections-per-host" = 5; # default=3
#"network.http.max-persistent-connections-per-proxy" = 48; // default=32
"network.websocket.max-connections" = 400; # default=200
# PREF: preferred color scheme for websites
# [SETTING] General>Language and Appearance>Website appearance
# By default, color scheme matches the theme of your browser toolbar (3).
# Set this pref to choose Dark on sites that support it (0) or Light (1).
# Before FF95, the pref was 2, which determined site color based on OS theme.
# Dark (0), Light (1), System (2), Browser (3) (default [FF95+])
# [1] https://www.reddit.com/r/firefox/comments/rfj6yc/how_to_stop_firefoxs_dark_theme_from_overriding/hoe82i5/?context=3
"layout.css.prefers-color-scheme.content-override" = 0;
# PREF: disable annoying update restart prompts
# Delay update available prompts for ~1 week.
# Will still show green arrow in menu bar.
"app.update.suppressPrompts" = true;
# PREF: Mozilla VPN
# [1] https://github.com/yokoffing/Betterfox/issues/169
"browser.privatebrowsing.vpnpromourl" = "";
#"browser.vpn_promo.enabled" = false;
# PREF: disable about:addons' Recommendations pane (uses Google Analytics)
"extensions.getAddons.showPane" = false; # HIDDEN
"extensions.htmlaboutaddons.recommendations.enabled" = false;
# PREF: disable Extension Recommendations (CFR: "Contextual Feature Recommender")
# [1] https://support.mozilla.org/en-US/kb/extension-recommendations
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false;
# PREF: hide "More from Mozilla" in Settings
"browser.preferences.moreFromMozilla" = false;
# PREF: Warnings
"browser.aboutConfig.showWarning" = false;
# PREF: disable fullscreen delay and notice
"full-screen-api.transition-duration.enter" = "0 0";
"full-screen-api.transition-duration.leave" = "0 0";
"full-screen-api.warning.delay" = -1;
"full-screen-api.warning.timeout" = 0;
# PREF: minimize URL bar suggestions (bookmarks, history, open tabs)
"browser.urlbar.suggest.engines" = false;
# PREF: enable helpful features:
"browser.urlbar.suggest.calculator" = true;
"browser.urlbar.unitConversion.enabled" = true;
# PREF: Disable built-in Pocket extension
"extensions.pocket.enabled" = false;
# PREF: open PDFs inline (FF103+)
"browser.download.open_pdf_attachments_inline" = true;
# PREF: PDF sidebar on load [HIDDEN]
# 2=table of contents (if not available, will default to 1)
# 1=view pages
# -1=disabled (default)
"pdfjs.sidebarViewOnLoad" = 2;
"browser.contentblocking.category" = "strict";
# PREF: enable Global Privacy Control (GPC) [NIGHTLY]
# Honored by many highly ranked sites [2].
# [TEST] https://global-privacy-control.glitch.me/
# [1] https://globalprivacycontrol.org/press-release/20201007.html
# [2] https://github.com/arkenfox/user.js/issues/1542#issuecomment-1279823954
# [3] https://blog.mozilla.org/netpolicy/2021/10/28/implementing-global-privacy-control/
# [4] https://help.duckduckgo.com/duckduckgo-help-pages/privacy/gpc/
# [5] https://brave.com/web-standards-at-brave/4-global-privacy-control/
# [6] https://www.eff.org/gpc-privacy-badger
# [7] https://www.eff.org/issues/do-not-track
"privacy.globalprivacycontrol.enabled" = true;
"privacy.globalprivacycontrol.functionality.enabled" = true;
# PREF: enable advanced fingerprinting protection
# [WARNING] Leave disabled unless you're okay with all the drawbacks
# [1] https://librewolf.net/docs/faq/#what-are-the-most-common-downsides-of-rfp-resist-fingerprinting
# [2] https://www.reddit.com/r/firefox/comments/wuqpgi/comment/ile3whx/?context=3
"privacy.resistFingerprinting" = true;
# PREF: enable seperate search engine for Private Windows
# [SETTINGS] Preferences>Search>Default Search Engine>"Use this search engine in Private Windows"
"browser.search.separatePrivateDefault.ui.enabled" = true;
# PREF: disable search and form history
# Be aware that autocomplete form data can be read by third parties [1][2].
# Form data can easily be stolen by third parties.
# [SETTING] Privacy & Security>History>Custom Settings>Remember search and form history
# [1] https://blog.mindedsecurity.com/2011/10/autocompleteagain.html
# [2] https://bugzilla.mozilla.org/381681
"browser.formfill.enable" = false;
# PREF: Enforce Punycode for Internationalized Domain Names to eliminate possible spoofing
# Firefox has some protections, but it is better to be safe than sorry.
# [!] Might be undesirable for non-latin alphabet users since legitimate IDN's are also punycoded.
# [TEST] https://www.xn--80ak6aa92e.com/ (www.apple.com)
# [1] https://wiki.mozilla.org/IDN_Display_Algorithm
# [2] https://en.wikipedia.org/wiki/IDN_homograph_attack
# [3] CVE-2017-5383: https://www.mozilla.org/security/advisories/mfsa2017-02/
# [4] https://www.xudongz.com/blog/2017/idn-phishing/
"network.IDN_show_punycode" = true;
# PREF: enable HTTPS-only Mode
"dom.security.https_only_mode" = true; # Normal + Private Browsing windows
# PREF: disable password manager
# [NOTE] This does not clear any passwords already saved.
"signon.rememberSignons" = false; # Privacy & Security>Logins and Passwords>Ask to save logins and passwords for websites
# PREF: disable form autofill
# [NOTE] stored data is not secure (uses a JSON file)
# [1] https://wiki.mozilla.org/Firefox/Features/Form_Autofill
# [2] https://www.ghacks.net/2017/05/24/firefoxs-new-form-autofill-is-awesome
"extensions.formautofill.addresses.enabled" = false;
"extensions.formautofill.creditCards.enabled" = false;
# PREF: prevent accessibility services from accessing your browser [RESTART]
# Accessibility Service may negatively impact Firefox browsing performance.
# Disable it if youre not using any type of physical impairment assistive software.
# [1] https://support.mozilla.org/kb/accessibility-services
# [2] https://www.ghacks.net/2021/08/25/firefox-tip-turn-off-accessibility-services-to-improve-performance/
# [3] https://www.reddit.com/r/firefox/comments/p8g5zd/why_does_disabling_accessibility_services_improve
# [4] https://winaero.com/firefox-has-accessibility-service-memory-leak-you-should-disable-it/
# [5] https://www.ghacks.net/2022/12/26/firefoxs-accessibility-performance-is-getting-a-huge-boost/
"accessibility.force_disabled" = 1;
# PREF: disable Firefox View [FF106+]
# [1] https://support.mozilla.org/en-US/kb/how-set-tab-pickup-firefox-view#w_what-is-firefox-view
"browser.tabs.firefox-view" = false;
# PREF: default permission for Web Notifications
# To add site exceptions: Page Info>Permissions>Receive Notifications
# To manage site exceptions: Options>Privacy & Security>Permissions>Notifications>Settings
# 0=always ask (default), 1=allow, 2=block
"permissions.default.desktop-notification" = 2;
# PREF: default permission for Location Requests
# 0=always ask (default), 1=allow, 2=block
"permissions.default.geo" = 2;
# Disable all the various Mozilla telemetry, studies, reports, etc.
# PREF: Telemetry
"toolkit.telemetry.unified" = false;
"toolkit.telemetry.enabled" = false;
"toolkit.telemetry.server" = "data:,";
"toolkit.telemetry.archive.enabled" = false;
"toolkit.telemetry.newProfilePing.enabled" = false;
"toolkit.telemetry.shutdownPingSender.enabled" = false;
"toolkit.telemetry.updatePing.enabled" = false;
"toolkit.telemetry.bhrPing.enabled" = false;
"toolkit.telemetry.firstShutdownPing.enabled" = false;
"toolkit.telemetry.dap_enabled" = false; # DEFAULT [FF108]
# PREF: Telemetry Coverage
"toolkit.telemetry.coverage.opt-out" = true;
"toolkit.coverage.opt-out" = true;
# PREF: Health Reports
# [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to send technical data.
"datareporting.healthreport.uploadEnabled" = false;
# PREF: new data submission, master kill switch
# If disabled, no policy is shown or upload takes place, ever
# [1] https://bugzilla.mozilla.org/1195552
"datareporting.policy.dataSubmissionEnabled" = false;
# PREF: Studies
# [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to install and run studies
"app.shield.optoutstudies.enabled" = false; "app.shield.optoutstudies.enabled" = false;
# Personalized Extension Recommendations in about:addons and AMO "beacon.enabled" = false;
# [NOTE] This pref has no effect when Health Reports are disabled. "device.sensors.enabled" = false;
# [SETTING] Privacy & Security>Firefox Data Collection & Use>Allow Firefox to make personalized extension recommendations "geo.enabled" = false;
"browser.discovery.enabled" = false; # enable ech
"network.dns.echconfig.enabled" = true;
# PREF: disable crash reports #disable all telemetry
"breakpad.reportURL" = ""; "toolkit.telemetry.archive.enabled" = false;
"browser.tabs.crashReporting.sendReport" = false; "toolkit.telemetry.enabled" = false; # enforced by nixos
# PREF: enforce no submission of backlogged crash reports "toolkit.telemetry.server" = "";
"browser.crashReports.unsubmittedCheck.autoSubmit2" = false; "toolkit.telemetry.unified" = false;
"extensions.webcompat-reporter.enabled" = false; # don't report compability problems to mozilla
# PREF: software that continually reports what default browser you are using [WINDOWS] "datareporting.policy.dataSubmissionEnabled" = false;
# [WARNING] Breaks "Make Default..." button in Preferences to set Firefox as the default browser [2]. "datareporting.healthreport.uploadEnabled" = false;
# [1] https://techdows.com/2020/04/what-is-firefox-default-browser-agent-and-how-to-disable-it.html
# [2] https://github.com/yokoffing/Betterfox/issues/166
"default-browser-agent.enabled" = false;
# PREF: "report extensions for abuse"
"extensions.abuseReport.enabled" = false;
# PREF: Normandy/Shield [extensions tracking]
# Shield is an telemetry system (including Heartbeat) that can also push and test "recipes"
"app.normandy.enabled" = false;
"app.normandy.api_url" = "";
# PREF: PingCentre telemetry (used in several System Add-ons)
# Currently blocked by 'datareporting.healthreport.uploadEnabled'
"browser.ping-centre.telemetry" = false; "browser.ping-centre.telemetry" = false;
"browser.urlbar.eventTelemetry.enabled" = false; # (default)
# no firefox passwd manager
"browser.contentblocking.report.lockwise.enabled" = false;
"browser.uitour.enabled" = false;
"browser.newtabpage.activity-stream.showSponsored" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
# no encrypted media extension pls
"media.eme.enabled" = false;
"browser.eme.ui.enabled" = false;
"browser.urlbar.speculativeConnect.enabled" = false;
"dom.battery.enabled" = false; # no battery for you
};
search = {
force = true;
default = "kagi";
# PREF: disable Firefox Home (Activity Stream) telemetry engines = {
"browser.newtabpage.activity-stream.telemetry" = false; "Bing".metaData.hidden = true;
"browser.newtabpage.activity-stream.feeds.telemetry" = false; "Amazon.com".metaData.hidden = true;
"Google".metaData.hidden = true;
# privacy is mir auch wichtig "kagi" = {
iconUpdateURL = "https://kagi.com/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # update every day
urls = [
{
template = "https://kagi.com/search";
params = [
{
name = "q";
value = "{searchTerms}";
}
];
}
];
};
};
}; };
}; };
}; };
home.persistence."/state".directories = [
".cache/mozilla"
".mozilla"
];
xdg.mimeApps.enable = true;
xdg.mimeApps.defaultApplications = {
"text/html" = ["firefox.desktop"];
"text/xml" = ["firefox.desktop"];
"x-scheme-handler/http" = ["firefox.desktop"];
"x-scheme-handler/https" = ["firefox.desktop"];
};
} }

View file

@ -1,5 +1,67 @@
{pkgs, ...}: { {pkgs, ...}: {
home.packages = [pkgs.thunderbird]; programs.thunderbird = {
enable = true;
home.persistence."/state".directories = [".thunderbird"]; profiles.personal = {
isDefault = true;
withExternalGnupg = true;
settings = {
"mail.identity.default.archive_enabled" = true;
"mail.identity.default.archive_keep_folder_structure" = true;
"mail.identity.default.compose_html" = false;
"mail.identity.default.protectSubject" = true;
"mail.identity.default.reply_on_top" = 1;
"mail.identity.default.sig_on_reply" = false;
"gfx.webrender.all" = true;
"gfx.webrender.enabled" = true;
"browser.display.use_system_colors" = true;
"browser.theme.dark-toolbar-theme" = true;
};
};
settings = {
# Some general settings.
"mail.server.default.allow_utf8_accept" = true;
"mail.server.default.max_articles" = 1000;
"mail.server.default.check_all_folders_for_new" = true;
"mail.show_headers" = 1;
# Show some metadata.
"mailnews.headers.showMessageId" = true;
"mailnews.headers.showOrganization" = true;
"mailnews.headers.showReferences" = true;
"mailnews.headers.showUserAgent" = true;
# Sort mails and news in descending order.
"mailnews.default_sort_order" = 2;
"mailnews.default_news_sort_order" = 2;
# Sort mails and news by date.
"mailnews.default_sort_type" = 18;
"mailnews.default_news_sort_type" = 18;
# Sort them by the newest reply in thread.
"mailnews.sort_threads_by_root" = true;
# Show time.
"mail.ui.display.dateformat.default" = 1;
# Sanitize it to UTC to prevent leaking local time.
"mail.sanitize_date_header" = true;
# Email composing QoL.
"mail.identity.default.auto_quote" = true;
"mail.identity.default.attachPgpKey" = true;
"app.update.auto" = false;
"privacy.donottrackheader.enabled" = true;
};
};
home.persistence."/state".directories = [".cache/thunderbird" ".thunderbird"];
xdg.mimeApps.enable = true;
xdg.mimeApps.defaultApplications = {
"x-scheme-handler/mailto" = ["thunderbird.desktop"];
"message/rfc822" = ["thunderbird.desktop"];
};
} }