feat: more laptop shit
This commit is contained in:
parent
c48444af6a
commit
e29110aa75
60
flake.lock
60
flake.lock
|
@ -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": {
|
||||||
|
|
|
@ -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
|
||||||
];
|
];
|
||||||
|
|
|
@ -35,4 +35,5 @@
|
||||||
applications = 9;
|
applications = 9;
|
||||||
desktop = 8;
|
desktop = 8;
|
||||||
};
|
};
|
||||||
|
hidpi = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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";
|
||||||
|
#};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 = "";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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"
|
||||||
]
|
]
|
||||||
|
|
|
@ -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 you’re 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"];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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"];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue