Fmt & update flake inputs

This commit is contained in:
Tristan D. 2025-03-04 16:57:50 +01:00
parent 366b44eea4
commit bcc2704763
Signed by: tristan
SSH key fingerprint: SHA256:9oFM1J63hYWJjCnLG6C0fxBS15rwNcWwdQNMOHYKJ/4
4 changed files with 439 additions and 435 deletions

129
flake.lock generated
View file

@ -58,11 +58,11 @@
]
},
"locked": {
"lastModified": 1739816852,
"narHash": "sha256-QG8aA6hWsi6pqaidaz5a5SL+dM1mT9LMWMrmc1hrOrU=",
"lastModified": 1740562777,
"narHash": "sha256-2Hr6GRQjbStwM4ASLSOzkJZLNil4foNuuOFPGyopj9w=",
"owner": "oddlama",
"repo": "agenix-rekey",
"rev": "5f56d711ffe2aca62cfeeada9ec56692a13b9061",
"rev": "1a30818e41b6573389abfe4f1f99086714c0ca6a",
"type": "github"
},
"original": {
@ -151,11 +151,11 @@
]
},
"locked": {
"lastModified": 1740358343,
"narHash": "sha256-ZNQL3ju3Naf8Bb5YIkm6P+1T5ik59ZrUDjEMgX9NII0=",
"lastModified": 1740937018,
"narHash": "sha256-R4/+Vr4LpQWHwzZoM0fTyKKC1mGNF/NVHzIe6PqkJsY=",
"owner": "chaotic-cx",
"repo": "nyx",
"rev": "5e2921e7602cc07fcdfbfe1faba586d961c84c3d",
"rev": "4ab66e175e54084ca831e2eb3e24fbb048f9cff0",
"type": "github"
},
"original": {
@ -188,11 +188,11 @@
]
},
"locked": {
"lastModified": 1740452771,
"narHash": "sha256-/tI1vFJ7/dXJqUmI+s0EV1F0DPe6dZvT444mrLUkrlU=",
"lastModified": 1700795494,
"narHash": "sha256-gzGLZSiOhf155FW7262kdHo2YDeugp3VuIFb4/GGng0=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "42be12b510253d750138ec90c66decc282298b44",
"rev": "4b9b83d5a92e8c1fbfd8eb27eda375908c11ec4d",
"type": "github"
},
"original": {
@ -227,11 +227,11 @@
]
},
"locked": {
"lastModified": 1739841949,
"narHash": "sha256-lSOXdgW/1zi/SSu7xp71v+55D5Egz8ACv0STkj7fhbs=",
"lastModified": 1740485968,
"narHash": "sha256-WK+PZHbfDjLyveXAxpnrfagiFgZWaTJglewBWniTn2Y=",
"owner": "nix-community",
"repo": "disko",
"rev": "15dbf8cebd8e2655a883b74547108e089f051bf0",
"rev": "19c1140419c4f1cdf88ad4c1cfb6605597628940",
"type": "github"
},
"original": {
@ -315,11 +315,11 @@
]
},
"locked": {
"lastModified": 1737416325,
"narHash": "sha256-WPs1q1HT3SqV4JKEmWF/B/1j7SYiczeBzYD7fqYaHfE=",
"lastModified": 1740439402,
"narHash": "sha256-IjOlrC7PMDHFmTN4MqF4sVcV+wKUMrz9erKReh7WtNQ=",
"owner": "Mic92",
"repo": "envfs",
"rev": "a8da5c01b0f1b5016560a3f1041090cf1ecb8130",
"rev": "841f2147deb763da97684ca9b89a1b32e435cd83",
"type": "github"
},
"original": {
@ -337,11 +337,11 @@
"rust-analyzer-src": "rust-analyzer-src"
},
"locked": {
"lastModified": 1740292204,
"narHash": "sha256-ZbptkmqaenRhUKsodSEcVzBw+kXZ8DcZpTGutU1HEiI=",
"lastModified": 1740551776,
"narHash": "sha256-CkcCb2hGSL1owuZpjuNB6UQzlyaXgvuRXmjY6jLqjPc=",
"owner": "nix-community",
"repo": "fenix",
"rev": "93d59130e3fc121f927c03e406142df8d544b901",
"rev": "07a730bc80e8a4106df5b2341aa5602a240ee112",
"type": "github"
},
"original": {
@ -419,11 +419,11 @@
]
},
"locked": {
"lastModified": 1738453229,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
"lastModified": 1740872218,
"narHash": "sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
"rev": "3876f6b87db82f33775b1ef5ea343986105db764",
"type": "github"
},
"original": {
@ -528,11 +528,11 @@
]
},
"locked": {
"lastModified": 1735882644,
"narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=",
"lastModified": 1737465171,
"narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
"rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17",
"type": "github"
},
"original": {
@ -712,11 +712,11 @@
]
},
"locked": {
"lastModified": 1740269380,
"narHash": "sha256-l+zB5a39MJp4Olc4YxP7GChFXmNZIhoXaiSS6QRXa9o=",
"lastModified": 1740553144,
"narHash": "sha256-ujQ/f3mcYECH1o0vzakMLAQRCMeF/SXd8w4uBFHxYO8=",
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"rev": "11ba89d13831cb399194310304fffb025081c674",
"rev": "14a125ea5c440c57310dc1bb3acf7641078d783a",
"type": "github"
},
"original": {
@ -941,11 +941,11 @@
]
},
"locked": {
"lastModified": 1740281615,
"narHash": "sha256-dZWcbAQ1sF8oVv+zjSKkPVY0ebwENQEkz5vc6muXbKY=",
"lastModified": 1740886574,
"narHash": "sha256-jN6kJ41B6jUVDTebIWeebTvrKP6YiLd1/wMej4uq4Sk=",
"owner": "Mic92",
"repo": "nix-index-database",
"rev": "465792533d03e6bb9dc849d58ab9d5e31fac9023",
"rev": "26a0f969549cf4d56f6e9046b9e0418b3f3b94a5",
"type": "github"
},
"original": {
@ -1006,11 +1006,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1740384564,
"narHash": "sha256-BKlYOGAiNlZs/gJVcBx7oPocpXR8+zfgXR7TM7tvans=",
"lastModified": 1740646007,
"narHash": "sha256-dMReDQobS3kqoiUCQIYI9c0imPXRZnBubX20yX/G5LE=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "099d38a69ed75b6f549aa0daadc08c075d44a4d7",
"rev": "009b764ac98a3602d41fc68072eeec5d24fc0e49",
"type": "github"
},
"original": {
@ -1026,11 +1026,11 @@
"nixos-unstable": "nixos-unstable"
},
"locked": {
"lastModified": 1739150456,
"narHash": "sha256-YXmuhtU9oGv4pvoKnJn/YF5sknkch+9IFiusvJ4rabw=",
"lastModified": 1740452541,
"narHash": "sha256-aa5gPveHysMTVkxj+0iH0BdcSn8+v8lZPud+IItOSaQ=",
"owner": "nix-community",
"repo": "nixos-images",
"rev": "b8efea96c45cfeb2b422715b9deff6ffdb6d460f",
"rev": "283bbacb81bd2c1a7b89f33e011ecabe398a564e",
"type": "github"
},
"original": {
@ -1041,10 +1041,10 @@
},
"nixos-stable": {
"locked": {
"lastModified": 1739055578,
"narHash": "sha256-2MhC2Bgd06uI1A0vkdNUyDYsMD0SLNGKtD8600mZ69A=",
"lastModified": 1740162160,
"narHash": "sha256-SSYxFhqCOb3aiPb6MmN68yEzBIltfom8IgRz7phHscM=",
"ref": "nixos-24.11",
"rev": "a45fa362d887f4d4a7157d95c28ca9ce2899b70e",
"rev": "11415c7ae8539d6292f2928317ee7a8410b28bb9",
"shallow": true,
"type": "git",
"url": "https://github.com/NixOS/nixpkgs"
@ -1058,10 +1058,10 @@
},
"nixos-unstable": {
"locked": {
"lastModified": 1739019272,
"narHash": "sha256-7Fu7oazPoYCbDzb9k8D/DdbKrC3aU1zlnc39Y8jy/s8=",
"lastModified": 1740019556,
"narHash": "sha256-vn285HxnnlHLWnv59Og7muqECNMS33mWLM14soFIv2g=",
"ref": "nixpkgs-unstable",
"rev": "fa35a3c8e17a3de613240fea68f876e5b4896aec",
"rev": "dad564433178067be1fbdfcce23b546254b6d641",
"shallow": true,
"type": "git",
"url": "https://github.com/NixOS/nixpkgs"
@ -1183,11 +1183,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1740126099,
"narHash": "sha256-ozoOtE2hGsqh4XkTJFsrTkNxkRgShxpQxDynaPZUGxk=",
"lastModified": 1741010256,
"narHash": "sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "32fb99ba93fea2798be0e997ea331dd78167f814",
"rev": "ba487dbc9d04e0634c64e3b1f0d25839a0a68246",
"type": "github"
},
"original": {
@ -1226,11 +1226,11 @@
]
},
"locked": {
"lastModified": 1740642826,
"narHash": "sha256-KRz26Dta//R9lYLQ8mRn8mYDqq775zvJU38to7znq8w=",
"lastModified": 1741099788,
"narHash": "sha256-ZDTcZmhz7glHFPCSR7cmyK63Ovm1tN90PsH7YwJWTRI=",
"owner": "nix-community",
"repo": "NUR",
"rev": "2e80b737688496c5a3b0557009c8aa0bb5d0f98c",
"rev": "c13f06ae97a5c40b170f7ab92251f90981b4df77",
"type": "github"
},
"original": {
@ -1281,11 +1281,11 @@
]
},
"locked": {
"lastModified": 1739557722,
"narHash": "sha256-XikzLpPUDYiNyJ4w2SfRShdbSkIgE3btYdxCGInmtc4=",
"lastModified": 1740569341,
"narHash": "sha256-WV8nY2IOfWdzBF5syVgCcgOchg/qQtpYh6LECYS9XkY=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "1f3e1f38dedbbb8aad77e184fb54ec518e2d9522",
"rev": "5eeb0172fb74392053b66a8149e61b5e191b2845",
"type": "github"
},
"original": {
@ -1405,11 +1405,11 @@
"rust-analyzer-src": {
"flake": false,
"locked": {
"lastModified": 1740259966,
"narHash": "sha256-FJU9qiELvmJzNRr7wLFtJUy4bSk1PNqsRB7wOQz6zUE=",
"lastModified": 1740470570,
"narHash": "sha256-iYjLS4jy/IJScOHZfbQ31vkrS5tl0bjXtzYP4XKA2Pc=",
"owner": "rust-lang",
"repo": "rust-analyzer",
"rev": "9df88ff0f65f8de9f73684d2bb96e1b62669d083",
"rev": "89255449982473939a4f8ee954512d339225c182",
"type": "github"
},
"original": {
@ -1477,6 +1477,9 @@
"nixpkgs": [
"nixpkgs"
],
"nur": [
"nur"
],
"systems": [
"systems"
],
@ -1569,11 +1572,11 @@
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1737565458,
"narHash": "sha256-y+9cvOA6BLKT0WfebDsyUpUa/YxKow9hTjBp6HpQv68=",
"lastModified": 1740351358,
"narHash": "sha256-Hdk850xgAd3DL8KX0AbyU7tC834d3Lej1jOo3duWiOA=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "ae31625ba47aeaa4bf6a98cf11a8d4886f9463d9",
"rev": "a1bc2bd89e693e7e3f5764cfe8114e2ae150e184",
"type": "github"
},
"original": {
@ -1585,11 +1588,11 @@
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1735737224,
"narHash": "sha256-FO2hRBkZsjlIRqzNHCPc/52yxg11kHGA8MEtSun9RwE=",
"lastModified": 1740272597,
"narHash": "sha256-/etfUV3HzAaLW3RSJVwUaW8ULbMn3v6wbTlXSKbcoWQ=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "aead506a9930c717ebf81cc83a2126e9ca08fa64",
"rev": "b6c7f46c8718cc484f2db8b485b06e2a98304cd0",
"type": "github"
},
"original": {
@ -1677,11 +1680,11 @@
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1739719197,
"narHash": "sha256-sUn+SkpCoJqYcGGr/OypR00AjL2p7NLosnE2Vuv2TVI=",
"lastModified": 1740917631,
"narHash": "sha256-MEGtJWXGafntnIY3/sgx8Iy6qrDIZdH065dpQK3A29o=",
"owner": "winapps-org",
"repo": "winapps",
"rev": "206da9353055b9b70f0329cf759e29a3a5cac352",
"rev": "61af2140a1ced600f6146f1e71587c08588cbbad",
"type": "github"
},
"original": {

View file

@ -133,6 +133,7 @@
inputs.flake-compat.follows = "flake-compat";
inputs.flake-utils.follows = "flake-utils";
inputs.home-manager.follows = "home-manager";
inputs.nur.follows = "nur";
inputs.nixpkgs.follows = "nixpkgs";
inputs.systems.follows = "systems";
};

View file

@ -95,7 +95,6 @@
# cavalier
ffmpeg
freetube
filelight
# element-desktop
inkscape
jellyfin-mpv-shim # broken ?
@ -109,6 +108,7 @@
kdePackages.plasma-vault
kdePackages.plasma-browser-integration
kdePackages.kio-admin
kdePackages.filelight
nextcloud-client
onlyoffice-bin
protonup-qt

View file

@ -3,407 +3,407 @@
, pkgs
, ...
}: {
enable = true;
# package = pkgs.firefox;
enable = true;
# package = pkgs.firefox;
profiles = {
default = {
isDefault = true;
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;
# 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";
# 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;
# 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;
# 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;
# Sync
# "services.sync.username" = config.etu.user.email;
"services.sync.engine.addons" = false; # Do not sync extensions.
"services.sync.engine.addons" = false; # Do not sync extensions.
"general.autoScroll" = true; # Middle click to scroll
"general.autoScroll" = true; # Middle click to scroll
"browser.startup.page" = 3; # Restore previous windows and tabs.
"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;
# 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;
# 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;
# 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 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
# 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 <a> 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;
# 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 <a> 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 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 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;
# 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;
};
# 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
];
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" ];
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;
};
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
};
};
bookmarks = [
{
toolbar = true;
bookmarks = [
"DuckDuckGo".metaData = {
alias = "@ddg";
};
"Nix Packages" = {
urls = [
{
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 = [
template = "https://search.nixos.org/packages";
params = [
{
name = "homepage";
url = "https://nixos.org/";
name = "type";
value = "packages";
}
{
name = "wiki";
url = "https://nixos.wiki/";
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/";
}
];
}
];
}
];
};
}
};
}