From bcc27047639ed8d4e251f826dc23d26d0f7a2a9e Mon Sep 17 00:00:00 2001 From: Tristan Druyen Date: Tue, 4 Mar 2025 16:57:50 +0100 Subject: [PATCH] Fmt & update flake inputs --- flake.lock | 129 +++--- flake.nix | 1 + home-mods/desktop/default.nix | 2 +- home-mods/firefox/_base.nix | 742 +++++++++++++++++----------------- 4 files changed, 439 insertions(+), 435 deletions(-) diff --git a/flake.lock b/flake.lock index d6a428d..d55dd2a 100644 --- a/flake.lock +++ b/flake.lock @@ -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": { diff --git a/flake.nix b/flake.nix index 6277dc1..e0c990f 100644 --- a/flake.nix +++ b/flake.nix @@ -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"; }; diff --git a/home-mods/desktop/default.nix b/home-mods/desktop/default.nix index e4ba3df..abbd0b1 100644 --- a/home-mods/desktop/default.nix +++ b/home-mods/desktop/default.nix @@ -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 diff --git a/home-mods/firefox/_base.nix b/home-mods/firefox/_base.nix index da0aa9b..2f62eb6 100644 --- a/home-mods/firefox/_base.nix +++ b/home-mods/firefox/_base.nix @@ -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 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 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/"; + } + ]; + } + ]; + } + ]; }; - } + }; +}