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/";
+ }
+ ];
+ }
+ ];
+ }
+ ];
};
- }
+ };
+}