summary refs log tree commit diff
path: root/mixins/firefox/minimum
diff options
context:
space:
mode:
Diffstat (limited to 'mixins/firefox/minimum')
-rw-r--r--mixins/firefox/minimum/addons-passthru.patch16
-rw-r--r--mixins/firefox/minimum/default.nix414
-rw-r--r--mixins/firefox/minimum/simplefox.css205
3 files changed, 635 insertions, 0 deletions
diff --git a/mixins/firefox/minimum/addons-passthru.patch b/mixins/firefox/minimum/addons-passthru.patch
new file mode 100644
index 0000000..6bd149d
--- /dev/null
+++ b/mixins/firefox/minimum/addons-passthru.patch
@@ -0,0 +1,16 @@
+diff --git a/default.nix b/default.nix
+index 3098b10..806d05c 100644
+--- a/default.nix
++++ b/default.nix
+@@ -14,6 +14,11 @@ let
+ 
+       preferLocalBuild = true;
+       allowSubstitutes = true;
++      passthru = {
++       inherit addonId;
++       inherit pname;
++       inherit version;
++      };
+ 
+       buildCommand = ''
+         dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
\ No newline at end of file
diff --git a/mixins/firefox/minimum/default.nix b/mixins/firefox/minimum/default.nix
new file mode 100644
index 0000000..8ecf48a
--- /dev/null
+++ b/mixins/firefox/minimum/default.nix
@@ -0,0 +1,414 @@
+let
+  profile = "default";
+  prf = ".mozilla/firefox/${profile}";
+  extstorage = "${prf}/browser-extension-data";
+in
+  {
+    config,
+    inputs,
+    pkgs,
+    lib,
+    ...
+  }: {
+    home-manager.users.tzlil = let
+      firefox-addons = pkgs.callPackage (pkgs.applyPatches {
+        src = inputs.firefox-addons;
+        patches = [./addons-passthru.patch];
+        name = "firefox-addons-patched";
+      }) {};
+      mozlz4 = n: x:
+        pkgs.runCommand "${n}.lz4" {buildInputs = [pkgs.mozlz4a];} ''
+          mozlz4a ${pkgs.writeTextFile {
+            name = n;
+            text = builtins.toJSON x;
+          }} $out
+        '';
+      cfg = config.home-manager.users.tzlil.programs;
+      addons = cfg.firefox.profiles.${profile}.extensions;
+      extensionPath = "extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}";
+
+      firefoxData =
+        pkgs.runCommand "firefox-default-profile" {
+          buildInputs = [
+            pkgs.xvfb-run
+            (pkgs.firefox.override {
+              extraPolicies = {
+                Extensions.Install = map (x: x.src.outPath) addons;
+                ExtensionSettings = {
+                  "google@search.mozilla.org" = {installation_mode = "blocked";};
+                  "amazondotcom@search.mozilla.org" = {installation_mode = "blocked";};
+                  "wikipedia@search.mozilla.org" = {installation_mode = "blocked";};
+                  "bing@search.mozilla.org" = {installation_mode = "blocked";};
+                };
+              };
+            })
+          ];
+        } ''
+          HOME=$(mktemp -d)
+          export FONTCONFIG_FILE=${pkgs.makeFontsConf {fontDirectories = [pkgs.roboto];}}
+          mkdir -p $HOME/.mozilla/firefox/
+          mkdir $out
+          ln -s $out $HOME/.mozilla/firefox/default
+          cat >> $HOME/.mozilla/firefox/profiles.ini<< EOF
+          [Profile0]
+          Default=1
+          IsRelative=1
+          Name=default
+          Path=default
+          EOF
+
+          echo user_pref\(\"browser.region.network.url\", \"\"\)\; > $HOME/.mozilla/firefox/default/user.js
+
+          xvfb-run firefox --screenshot about:blank --headless
+
+          # cat $HOME/.mozilla/firefox/default/extensions.json > $out
+          #
+        '';
+      # extensionsData = "${firefoxData}/extensions.json";
+
+      # addonStartup = pkgs.runCommand "addonStartup.json" {
+      #   buildInputs = [
+      #     pkgs.mozlz4a
+      #     pkgs.jq
+      #   ];
+      # }
+      # ''
+      # mozlz4a -d ${firefoxData}/addonStartup.json.lz4 /dev/stdout | jq . > $out
+      # '';
+
+      # decrappedAddonStartup = lib.attrsets.updateManyAttrsByPath [
+      #   {
+      #     path = ["app-builtin" "addons" "google@search.mozilla.org" "enable"];
+      #     update = old: false;
+      #   }
+      # ] addonStartup;
+
+      extensionManifest = e:
+        builtins.fromJSON (builtins.readFile (pkgs.runCommand "${e.addonId}-manifest.json" {buildInputs = [pkgs.p7zip];} ''
+          7z x -so ${e.src.outPath} manifest.json > $out
+        ''));
+    in {
+      # these come from the HM module
+      home.file."${prf}/extension-preferences.json".source = pkgs.emptyFile;
+      home.file."${prf}/extension-preferences.json.tmp".source = pkgs.emptyFile;
+
+      home.file."${prf}/extension-settings.json".source = pkgs.emptyFile;
+      home.file."${prf}/extension-settings.json.tmp".source = pkgs.emptyFile;
+
+      home.file."${prf}/search.json.mozlz4".source = mozlz4 "search.json.mozlz4" {
+        engines = [
+          {
+            _isAppProvided = true;
+            _metaData = {hidden = true;};
+            _name = "Google";
+            id = "google@search.mozilla.orgdefault";
+          }
+          {
+            _isAppProvided = true;
+            _metaData = {hidden = true;};
+            _name = "Amazon.com";
+            id = "amazondotcom@search.mozilla.orgdefault";
+          }
+          {
+            _isAppProvided = true;
+            _metaData = {hidden = true;};
+            _name = "Wikipedia (en)";
+            id = "wikipedia@search.mozilla.orgdefault";
+          }
+          {
+            _isAppProvided = true;
+            _metaData = {hidden = true;};
+            _name = "Bing";
+            id = "bing@search.mozilla.orgdefault";
+          }
+          {
+            _isAppProvided = true;
+            _metaData = {hidden = true;};
+            _name = "DuckDuckGo";
+            id = "ddg@search.mozilla.orgdefault";
+          }
+          {
+            __searchForm = "https://kagi.com/";
+            _definedAliases = [];
+            _iconMapObj = {"{\"width\":48,\"height\":48}" = "data:image/vnd.microsoft.icon;base64,AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABMLAAATCwAAAAAAAAAAAAAAAAAAGbL/ABiy/w8Zsv9fGbP/vhmz//AZs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//EZs//BGbP/ZRiz/w0Ys/8AAAAAABmy/wAZsv8YGbP/nRmz//QZs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbX//xm1//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs//0GbP/mxiy/xgZsv8AGbL/DBmz/5sZs//+GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz/v8ZldH/GZTR/xmt9f8Ztf//GbT//xmz//8Zs///GbP//xmz//8Zs//+GbP/nRmz/w8Zs/9kGbP/8xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xm2//8Ztv//GbX//xm1//8Ztf//GbX//xm1//8Ztf//GaLl/xk6S/8ZJSz/GUVc/xlxnP8Zpuz/GbT//xmz//8Zs///GbP//xmz//8Zs//zGbP/Xxmz/8AZs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xmz/f8ZoOL/GYe9/xmDt/8Zh73/GYvD/xmQyv8ZlNH/GZjX/xmU0f8ZUm7/GRkZ/xkYGP8ZFRT/GSs1/xmZ2P8ZtP//GbP//xmz//8Zs///GbP//xmz//8Zs/++GbP/8Bmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zrvf/GXKe/xkyP/8ZHyL/GR0f/xkgIv8ZIiX/GSQp/xkmLf8ZKC//GSYs/xkaGv8ZGRn/GRkZ/xkYGP8ZYIL/GbL8/xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//AZs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbL9/xlumP8ZHiD/GRcW/xkZGP8ZGRj/GRgY/xkYGP8ZGBj/GRgY/xkYF/8ZGBj/GRkZ/xkYGP8ZFxb/GT5Q/xmg4v8ZtP//GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xm0//8Zmdj/GSw2/xkXF/8ZGRn/GRkZ/xkXF/8ZFxb/GRcW/xkXFv8ZFxb/GRcW/xkXFv8ZGBf/GSMn/xlRbP8Zm9v/GbT//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///Gbb//xl7rP8ZGxz/GRkZ/xkZGf8ZHR//GUtk/xljiP8ZY4j/GWOI/xljiP8ZY4j/GWOI/xlvmf8ZjMX/Ga31/xm0//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Ztv//GXSg/xkYGP8ZGRn/GRcW/xk+UP8ZqO//GbT//xm1//8Ztf//GbX//xm1//8ZtP//GbX//xm1//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xm1//8ZhLn/GR4h/xkZGP8ZFxb/GUZb/xmw+P8Zsvz/Gabs/xme4P8ZnuD/Gabs/xmy/f8Ztf//GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xmk6f8ZOEf/GRcW/xkYGP8ZJCr/GWyV/xlaev8ZOEb/GSkw/xkoMP8ZN0b/GVp6/xmPyv8Zsfz/GbT//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xl9rv8ZICT/GRgY/xkZGf8ZGhr/GRcX/xkXF/8ZGBf/GRgX/xkXFv8ZFxb/GSYs/xlpkf8ZrfT/GbT//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbD5/xltlv8ZHyP/GRkY/xkZGf8ZGRn/GRgY/xkXFv8ZFxb/GRgY/xkZGf8ZGBf/GRwf/xlli/8ZsPn/GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Ztf//GYK1/xkgJP8ZGBj/GRkZ/xkYF/8ZJy7/GT9S/xk/Uv8ZKC//GRgY/xkZGf8ZGBj/GSEm/xmGu/8Ztf//GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xms9f8ZRlz/GRcW/xkZGf8ZGRn/GUZc/xmSzf8Zrfb/Gaz1/xmRzP8ZQ1j/GRkY/xkZGf8ZFxb/GUlh/xmt9v8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Ztf//GZjW/xknLv8ZGBj/GRgX/xkxPP8Zm9r/Gbb//xmz//8Zs///Gbb//xmY1v8ZMDv/GRgX/xkYGP8ZKC//GZnY/xm1//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xm1//8ZhLn/GR0f/xkZGf8ZFxb/GVZ0/xmz/v8Zs///GbP//xmz//8Zs///GbP+/xlXdf8ZFxb/GRkZ/xkdH/8Zh73/GbX//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbX//xmBtP8ZHB7/GRkZ/xkXF/8ZYYP/GbX//xmz//8Zs///GbP//xmz//8ZtP//GV+B/xkXFv8ZGRn/GRwe/xmCtv8Ztf//GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Ztf//GY3H/xkgI/8ZGRj/GRcW/xlEWv8ZrfT/GbT//xmz//8Zs///GbT//xmr8v8ZQlf/GRcW/xkZGP8ZICT/GY7I/xm1//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xm0//8Zo+f/GTRB/xkXF/8ZGRj/GR8i/xlzn/8ZsPn/GbX//xm1//8Zsfr/GXGd/xkfIv8ZGRj/GRcX/xk1Qv8Zo+f/GbT//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8ZY4f/GRkZ/xkZGf8ZGBj/GSIm/xlTcP8ZfK3/GXys/xlWdP8ZIib/GRgY/xkZGf8ZGBj/GWSJ/xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xmh5P8ZPU7/GRcV/xkZGf8ZGBj/GRcX/xkcHf8ZHB3/GRcX/xkYGP8ZGRn/GRgX/xk8Tv8ZoOL/GbT//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xmRzP8ZN0b/GRgX/xkYF/8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkYGP8ZICT/GYG0/xmz//8Zsv3/GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xmc3f8ZVnT/GScu/xkZGv8ZGBf/GRgY/xkZGf8ZGRn/GRkZ/xkbHP8ZO0z/GVNv/xmHvf8ZtP//GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xmv+P8ZldP/GXem/xlli/8ZZoz/GXWj/xk7TP8ZFxb/GRkZ/xkXFv8ZFxb/GW+Z/xm1//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP/8Bmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xm0//8Ztf//GbT//xm0//8Ztf//GY3G/xkxPf8ZFxb/GRcW/xkXF/8Zb5n/GbX//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//AZs/++GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8ZtP7/GZbT/xlbe/8ZPU//GTtM/xl/sf8Ztf//GbP//xmz//8Zs///GbP//xmz//8Zs///GbP/wBmz/18Zs//zGbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Ztf//GbL9/xms9f8Zq/P/GbD6/xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//MZs/9kGLL/Dxmz/54Zs//+GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs//+GbP/mxmz/wwZtP8AGrT/GBmz/5sZs//0GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP/9Bmz/50atP8YGbT/AAAAAAAYsv8AGLH/DRmz/2QZs//BGbP/8Rmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP/8Bmz/74Zs/9fGLT/Dxmz/wAAAAAAwAAAA4AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAAM=";};
+            _iconURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAURJREFUOE+dk79LAzEcxT+B0goKIih64k9wcxHBzVE66aarY4uHoIMUl8NBK4iLxSq0CP4HRdqlUGdxEx2KIFRBa9VBRBDUFk/Cedgjd95hliTkvZf3fclXAJgFbQdYkuvAQ5AV07W4MPNaBkEsMNEJTAmzoJl+5MojTBrQGoGrXSfaU+D4AubTTnBggWEdPhpOciQE1/uqV8XBwwuMJyzgfdaae38SOknCUJdPCWMr8PT6S5bwegMGdehuh7NtH4GJVag+Q8mA0X4LXL6FqXUY6ITTTR+BLxP64hboUIe3T1g8cJbULKFksFeEZE4NayEKxmyAEO3AZIBbR/Beh7U575+iOLAFKmkQwiLKORxyF/EUcIPbz/pnBvIwloHLKoz0QEcbnN9A+c49SOkgUCdGNyCfgJZw0/2yI+X2nx2ZEjO15W8/wHRJmDJVowAAAABJRU5ErkJggg==";
+            _iconUpdateURL = null;
+            _loadPath = "[https]kagi.com/kagi.xml";
+            _metaData = {
+              loadPathHash = "UtVcODv+iDIE7YbKsRgmcuEtoupCFvV7xIfe+lM7oDs=";
+              order = 6;
+            };
+            _name = "Kagi";
+            _orderHint = null;
+            _telemetryId = null;
+            _updateInterval = null;
+            _updateURL = null;
+            _urls = [
+              {
+                params = [];
+                rels = ["results"];
+                template = "https://kagi.com/search?q={searchTerms}";
+              }
+              {
+                params = [];
+                rels = ["suggestions"];
+                template = "https://kagi.com/api/autosuggest?q={searchTerms}";
+                type = "application/x-suggestions+json";
+              }
+            ];
+            description = "A privacy-focused, user-centric search engine.";
+            id = "de6311b3-e1df-456e-bc42-73f88ffcd9eb";
+          }
+          {
+            __searchForm = "https://search.nixos.org/";
+            _definedAliases = ["!np"];
+            # _iconMapObj = {"{\"width\":48,\"height\":48}" = "data:image/vnd.microsoft.icon;base64,AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAABMLAAATCwAAAAAAAAAAAAAAAAAAGbL/ABiy/w8Zsv9fGbP/vhmz//AZs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//EZs//BGbP/ZRiz/w0Ys/8AAAAAABmy/wAZsv8YGbP/nRmz//QZs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbX//xm1//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs//0GbP/mxiy/xgZsv8AGbL/DBmz/5sZs//+GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz/v8ZldH/GZTR/xmt9f8Ztf//GbT//xmz//8Zs///GbP//xmz//8Zs//+GbP/nRmz/w8Zs/9kGbP/8xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xm2//8Ztv//GbX//xm1//8Ztf//GbX//xm1//8Ztf//GaLl/xk6S/8ZJSz/GUVc/xlxnP8Zpuz/GbT//xmz//8Zs///GbP//xmz//8Zs//zGbP/Xxmz/8AZs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xmz/f8ZoOL/GYe9/xmDt/8Zh73/GYvD/xmQyv8ZlNH/GZjX/xmU0f8ZUm7/GRkZ/xkYGP8ZFRT/GSs1/xmZ2P8ZtP//GbP//xmz//8Zs///GbP//xmz//8Zs/++GbP/8Bmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zrvf/GXKe/xkyP/8ZHyL/GR0f/xkgIv8ZIiX/GSQp/xkmLf8ZKC//GSYs/xkaGv8ZGRn/GRkZ/xkYGP8ZYIL/GbL8/xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//AZs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbL9/xlumP8ZHiD/GRcW/xkZGP8ZGRj/GRgY/xkYGP8ZGBj/GRgY/xkYF/8ZGBj/GRkZ/xkYGP8ZFxb/GT5Q/xmg4v8ZtP//GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xm0//8Zmdj/GSw2/xkXF/8ZGRn/GRkZ/xkXF/8ZFxb/GRcW/xkXFv8ZFxb/GRcW/xkXFv8ZGBf/GSMn/xlRbP8Zm9v/GbT//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///Gbb//xl7rP8ZGxz/GRkZ/xkZGf8ZHR//GUtk/xljiP8ZY4j/GWOI/xljiP8ZY4j/GWOI/xlvmf8ZjMX/Ga31/xm0//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Ztv//GXSg/xkYGP8ZGRn/GRcW/xk+UP8ZqO//GbT//xm1//8Ztf//GbX//xm1//8ZtP//GbX//xm1//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xm1//8ZhLn/GR4h/xkZGP8ZFxb/GUZb/xmw+P8Zsvz/Gabs/xme4P8ZnuD/Gabs/xmy/f8Ztf//GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xmk6f8ZOEf/GRcW/xkYGP8ZJCr/GWyV/xlaev8ZOEb/GSkw/xkoMP8ZN0b/GVp6/xmPyv8Zsfz/GbT//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xl9rv8ZICT/GRgY/xkZGf8ZGhr/GRcX/xkXF/8ZGBf/GRgX/xkXFv8ZFxb/GSYs/xlpkf8ZrfT/GbT//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbD5/xltlv8ZHyP/GRkY/xkZGf8ZGRn/GRgY/xkXFv8ZFxb/GRgY/xkZGf8ZGBf/GRwf/xlli/8ZsPn/GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Ztf//GYK1/xkgJP8ZGBj/GRkZ/xkYF/8ZJy7/GT9S/xk/Uv8ZKC//GRgY/xkZGf8ZGBj/GSEm/xmGu/8Ztf//GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xms9f8ZRlz/GRcW/xkZGf8ZGRn/GUZc/xmSzf8Zrfb/Gaz1/xmRzP8ZQ1j/GRkY/xkZGf8ZFxb/GUlh/xmt9v8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Ztf//GZjW/xknLv8ZGBj/GRgX/xkxPP8Zm9r/Gbb//xmz//8Zs///Gbb//xmY1v8ZMDv/GRgX/xkYGP8ZKC//GZnY/xm1//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xm1//8ZhLn/GR0f/xkZGf8ZFxb/GVZ0/xmz/v8Zs///GbP//xmz//8Zs///GbP+/xlXdf8ZFxb/GRkZ/xkdH/8Zh73/GbX//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbX//xmBtP8ZHB7/GRkZ/xkXF/8ZYYP/GbX//xmz//8Zs///GbP//xmz//8ZtP//GV+B/xkXFv8ZGRn/GRwe/xmCtv8Ztf//GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Ztf//GY3H/xkgI/8ZGRj/GRcW/xlEWv8ZrfT/GbT//xmz//8Zs///GbT//xmr8v8ZQlf/GRcW/xkZGP8ZICT/GY7I/xm1//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xm0//8Zo+f/GTRB/xkXF/8ZGRj/GR8i/xlzn/8ZsPn/GbX//xm1//8Zsfr/GXGd/xkfIv8ZGRj/GRcX/xk1Qv8Zo+f/GbT//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8ZY4f/GRkZ/xkZGf8ZGBj/GSIm/xlTcP8ZfK3/GXys/xlWdP8ZIib/GRgY/xkZGf8ZGBj/GWSJ/xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xmh5P8ZPU7/GRcV/xkZGf8ZGBj/GRcX/xkcHf8ZHB3/GRcX/xkYGP8ZGRn/GRgX/xk8Tv8ZoOL/GbT//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xmRzP8ZN0b/GRgX/xkYF/8ZGRn/GRkZ/xkZGf8ZGRn/GRkZ/xkYGP8ZICT/GYG0/xmz//8Zsv3/GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xmc3f8ZVnT/GScu/xkZGv8ZGBf/GRgY/xkZGf8ZGRn/GRkZ/xkbHP8ZO0z/GVNv/xmHvf8ZtP//GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbT//xmv+P8ZldP/GXem/xlli/8ZZoz/GXWj/xk7TP8ZFxb/GRkZ/xkXFv8ZFxb/GW+Z/xm1//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP/8Bmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xm0//8Ztf//GbT//xm0//8Ztf//GY3G/xkxPf8ZFxb/GRcW/xkXF/8Zb5n/GbX//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//AZs/++GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8ZtP7/GZbT/xlbe/8ZPU//GTtM/xl/sf8Ztf//GbP//xmz//8Zs///GbP//xmz//8Zs///GbP/wBmz/18Zs//zGbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Ztf//GbL9/xms9f8Zq/P/GbD6/xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//MZs/9kGLL/Dxmz/54Zs//+GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs//+GbP/mxmz/wwZtP8AGrT/GBmz/5sZs//0GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP/9Bmz/50atP8YGbT/AAAAAAAYsv8AGLH/DRmz/2QZs//BGbP/8Rmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP//xmz//8Zs///GbP/8Bmz/74Zs/9fGLT/Dxmz/wAAAAAAwAAAA4AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAAM=";};
+            # _iconURL = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAURJREFUOE+dk79LAzEcxT+B0goKIih64k9wcxHBzVE66aarY4uHoIMUl8NBK4iLxSq0CP4HRdqlUGdxEx2KIFRBa9VBRBDUFk/Cedgjd95hliTkvZf3fclXAJgFbQdYkuvAQ5AV07W4MPNaBkEsMNEJTAmzoJl+5MojTBrQGoGrXSfaU+D4AubTTnBggWEdPhpOciQE1/uqV8XBwwuMJyzgfdaae38SOknCUJdPCWMr8PT6S5bwegMGdehuh7NtH4GJVag+Q8mA0X4LXL6FqXUY6ITTTR+BLxP64hboUIe3T1g8cJbULKFksFeEZE4NayEKxmyAEO3AZIBbR/Beh7U575+iOLAFKmkQwiLKORxyF/EUcIPbz/pnBvIwloHLKoz0QEcbnN9A+c49SOkgUCdGNyCfgJZw0/2yI+X2nx2ZEjO15W8/wHRJmDJVowAAAABJRU5ErkJggg==";
+            _iconURL = "file://${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
+            _iconUpdateURL = null;
+            # _loadPath = "[https]kagi.com/kagi.xml";
+            _metaData = {
+              # loadPathHash = "UtVcODv+iDIE7YbKsRgmcuEtoupCFvV7xIfe+lM7oDs=";
+              order = 7;
+            };
+            _name = "nixpkgs";
+            _orderHint = null;
+            _telemetryId = null;
+            _updateInterval = null;
+            _updateURL = null;
+            _urls = [
+              {
+                params = [];
+                rels = ["results"];
+                template = "https://search.nixos.org/packages?query={searchTerms}";
+              }
+            ];
+            description = "nixpkgs";
+            id = "229feefe-acd1-47ac-87e1-11373a6608b5";
+          }
+        ];
+        metaData = {
+          appDefaultEngineId = "google@search.mozilla.orgdefault";
+          channel = "default";
+          defaultEngineId = "de6311b3-e1df-456e-bc42-73f88ffcd9eb";
+          defaultEngineIdHash = "G2Ce4is1f2X6BdVBEv3KgHQDQPdU4JHhPKU9dJz7uPU=";
+          distroID = "nixos";
+          experiment = "";
+          locale = "en-US";
+          region = "IL";
+          useSavedOrder = true;
+        };
+        version = 9;
+      };
+      home.file."${prf}/search.json.mozlz4.tmp".source = pkgs.emptyFile;
+
+      home.file."${prf}/extensions".source = lib.mkForce "${pkgs.symlinkJoin {
+        name = "extensions";
+        paths = addons;
+      }}/share/mozilla/${extensionPath}";
+
+      home.file."${extstorage}/redirector@einaregilsson.com/storage.js".text = builtins.toJSON {
+        redirects =
+          map ({
+            includePattern,
+            redirectUrl,
+            description,
+          }: {
+            appliesTo = ["main_frame"];
+            inherit description;
+            disabled = false;
+            error = null;
+            exampleResult = "";
+            exampleUrl = "";
+            excludePattern = "";
+            grouped = false;
+            inherit includePattern;
+            patternDesc = "";
+            patternType = "W";
+            processMatches = "noProcessing";
+            inherit redirectUrl;
+          }) [
+            {
+              includePattern = "https://*youtube.com/watch?*v=*";
+              redirectUrl = "https://yewtu.be/watch?$2v=$3";
+              description = "invidious";
+            }
+            {
+              includePattern = "https://*youtube.com/results?*search_query=*";
+              redirectUrl = "https://yewtu.be/search?$2q=$3";
+              description = "invidious search";
+            }
+          ];
+        enableNotifications = false;
+      };
+
+      home.file."${prf}/crashes".source = pkgs.emptyDirectory;
+      home.file."${prf}/datareporting".source = pkgs.emptyDirectory;
+      home.file."${prf}/saved-telemetry-pings".source = pkgs.emptyDirectory;
+
+      # home.file."${prf}/addonStartup.json.lz4".source = "${firefoxData}/addonStartup.json.lz4";
+      # home.file."${prf}/addonStartup.json.lz4.tmp".source = pkgs.emptyFile;
+
+      home.file."${prf}/addons.json".source = pkgs.emptyFile;
+      home.file."${prf}/addons.json.tmp".source = pkgs.emptyFile;
+
+      # home.file."${prf}/extensions.json".source = extensionsData;
+      # home.file."${prf}/extensions.json".text = builtins.toJSON {
+      #   schemaVersion = 35;
+      #   addons =
+      #     map (x: {
+      #       active = true;
+      #       appDisabled = false;
+      #       defaultLocale = {};
+      #       embedderDisabled = false;
+      #       foreignInstall = true;
+      #       hidden = false;
+      #       id = x.addonId;
+      #       location = "app-profile";
+      #       manifestVersion = (extensionManifest x).manifest_version;
+      #       optionalPermissions = {
+      #         permissions = (extensionManifest x).optional_permissions or [];
+      #         origins = (extensionManifest x).optional_permissions or [];
+      #       };
+      #       path = x.src.outPath;
+      #       rootURI = "jar:file://${x.src.outPath}!/";
+      #       softDisabled = false;
+      #       type = "extension";
+      #       userDisabled = false;
+      #       userPermissions = {
+      #         permissions = (extensionManifest x).permissions or [];
+      #         origins = (extensionManifest x).permissions or [];
+      #       };
+      #       version = (extensionManifest x).version;
+      #     })
+      #     addons;
+      # };
+      # home.file."${prf}/extensions.json.tmp".source = pkgs.emptyFile;
+
+      # tries to access W_OK it forever
+      # home.file."${prf}/prefs.js".source = pkgs.emptyFile;
+
+      # home.file."${prf}/prefs-1.js".source = pkgs.emptyFile;
+
+      programs.firefox = {
+        enable = true;
+        package = pkgs.firefox-wayland.override {
+          extraPolicies = {
+            CaptivePortal = false;
+            DisableFirefoxStudies = true;
+            DisablePocket = true;
+            DisableTelemetry = true;
+            DisableFirefoxAccounts = true;
+            FirefoxHome = {
+              Pocket = false;
+              Snippets = false;
+            };
+            UserMessaging = {
+              ExtensionRecommendations = false;
+              SkipOnboarding = true;
+            };
+            SearchEngines.Default = "Kagi";
+            Extensions.Install = map (x: x.src.outPath) addons;
+            ExtensionSettings = {
+              #   "google@search.mozilla.org" = {installation_mode = "blocked";};
+              #   "amazondotcom@search.mozilla.org" = {installation_mode = "blocked";};
+              #   "wikipedia@search.mozilla.org" = {installation_mode = "blocked";};
+              #   "bing@search.mozilla.org" = {installation_mode = "blocked";};
+              "{3c078156-979c-498b-8990-85f7987dd929}" = {installation_mode = "force_installed";};
+            };
+          };
+        };
+        profiles.${profile} = {
+          userChrome =
+            builtins.readFile ./simplefox.css
+            + ''
+                        /* hide top tabs */
+              #TabsToolbar {
+                visibility: collapse !important;
+                margin-bottom: 21px !important;
+              }
+              #sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
+                visibility: collapse !important;
+              }
+
+              /*
+               * Bookmarks toolbar is visible only on new tab page, just like Chrome.
+               */
+
+              #main-window #PersonalToolbar {
+                visibility: collapse !important;
+              }
+
+              #main-window[title^="about:newtab"] #PersonalToolbar,
+              #main-window[title^="New Tab"] #PersonalToolbar,
+              #main-window[title^="Nightly"] #PersonalToolbar,
+              #main-window[title^="Mozilla Firefox"] #PersonalToolbar,
+              #main-window[title^="Firefox"] #PersonalToolbar,
+              #main-window[title^="新标签页"] #PersonalToolbar,
+              #main-window[title^="Customize Firefox"] #PersonalToolbar {
+                visibility: visible !important;
+              }
+            '';
+          extensions = with firefox-addons; [
+            # ublock-origin
+            # clearurls
+            # privacy-possum
+            # skip-redirect
+            # canvasblocker
+            i-dont-care-about-cookies
+            darkreader
+            (firefox-addons.buildFirefoxXpiAddon {
+              pname = "sidebery";
+              version = "v5.0.0rc4";
+              addonId = "{3c078156-979c-498b-8990-85f7987dd929}";
+              url = "https://github.com/mbnuqw/sidebery/releases/download/v5.0.0rc4/sidebery-5.0.0rc4.xpi";
+              sha256 = "sha256-YsH9yYfGefClRS93dMV/eLMFuoPFKPrx0NL2hIv4dEk=";
+              meta = with lib; {
+                homepage = "https://github.com/mbnuqw/sidebery";
+                description = "Tabs tree and bookmarks in sidebar with advanced containers configuration.";
+                license = licenses.mit;
+                platforms = platforms.all;
+              };
+            })
+            sidebery
+            redirector
+            ublock-origin
+            keepassxc-browser
+          ];
+          settings = {
+            "extensions.activeThemeID" = "{e410fec2-1cbd-4098-9944-e21e708418af}";
+
+            # (try to) hide crap
+            "browser.search.hiddenOneOffs" = "Google,Bing,Amazon.com,eBay,Twitter,Wikipedia (en)";
+            "browser.newtabpage.activity-stream.showSponsored" = false;
+            "browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
+            "services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored" = false;
+            "services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
+            "browser.newtabpage.activity-stream.default.sites" = "";
+            "browser.urlbar.suggest.topsites" = false;
+            "browser.newtabpage.activity-stream.feeds.topsites" = false;
+
+            # disable welcome page
+            "browser.aboutwelcome.enabled" = false;
+            # disable privacy notice
+            "datareporting.policy.firstRunURL" = "";
+            # "browser.newtabpage.activity-stream.aboutHome.enabled" = false;
+
+            #simplefox
+            "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
+            "layers.acceleration.force-enabled" = true;
+            "gfx.webrender.all" = true;
+            "svg.context-properties.content.enabled" = true;
+
+            "signon.rememberSignons" = false;
+          };
+          # extraConfig = {
+
+          # };
+        };
+      };
+    };
+    environment.persistence."/nix/persist".users.tzlil.directories = [
+      "${extstorage}/keepassxc-browser@keepassxc.org"
+    ];
+  }
diff --git a/mixins/firefox/minimum/simplefox.css b/mixins/firefox/minimum/simplefox.css
new file mode 100644
index 0000000..08a8f93
--- /dev/null
+++ b/mixins/firefox/minimum/simplefox.css
@@ -0,0 +1,205 @@
+/* 
+┌─┐┬┌┬┐┌─┐┬  ┌─┐
+└─┐││││├─┘│  ├┤ 
+└─┘┴┴ ┴┴  ┴─┘└─┘
+┌─┐┌─┐─┐ ┬      
+├┤ │ │┌┴┬┘      
+└  └─┘┴ └─
+
+by Miguel Avila
+
+*/
+
+/*
+ 
+┌─┐┌─┐┌┐┌┌─┐┬┌─┐┬ ┬┬─┐┌─┐┌┬┐┬┌─┐┌┐┌
+│  │ ││││├┤ ││ ┬│ │├┬┘├─┤ │ ││ ││││
+└─┘└─┘┘└┘└  ┴└─┘└─┘┴└─┴ ┴ ┴ ┴└─┘┘└┘
+
+*/
+
+:root {
+    --sfwindow: #19171a;
+    --sfsecondary: #201e21;
+  }
+  
+  /* Urlbar View */
+  
+  /*─────────────────────────────*/
+  /* Comment this section if you */
+  /* want to show the URL Bar    */
+  /*─────────────────────────────*/
+  
+  .urlbarView {
+    display: none !important;
+  }
+  
+  /*─────────────────────────────*/
+  
+  /* 
+  ┌─┐┌─┐┬  ┌─┐┬─┐┌─┐
+  │  │ ││  │ │├┬┘└─┐
+  └─┘└─┘┴─┘└─┘┴└─└─┘ 
+  */
+  
+  /* Tabs colors  */
+  #tabbrowser-tabs:not([movingtab])
+    > #tabbrowser-arrowscrollbox
+    > .tabbrowser-tab
+    > .tab-stack
+    > .tab-background[multiselected='true'],
+  #tabbrowser-tabs:not([movingtab])
+    > #tabbrowser-arrowscrollbox
+    > .tabbrowser-tab
+    > .tab-stack
+    > .tab-background[selected='true'] {
+    background-image: none !important;
+    background-color: var(--toolbar-bgcolor) !important;
+  }
+  
+  /* Inactive tabs color */
+  #navigator-toolbox {
+    background-color: var(--sfwindow) !important;
+  }
+  
+  /* Window colors  */
+  :root {
+    --toolbar-bgcolor: var(--sfsecondary) !important;
+    --tabs-border-color: var(--sfsecondary) !important;
+    --lwt-sidebar-background-color: var(--sfwindow) !important;
+    --lwt-toolbar-field-focus: var(--sfsecondary) !important;
+  }
+  
+  /* Sidebar color  */
+  #sidebar-box,
+  .sidebar-placesTree {
+    background-color: var(--sfwindow) !important;
+  }
+  
+  /* 
+  
+  ┌┬┐┌─┐┬  ┌─┐┌┬┐┌─┐            
+   ││├┤ │  ├┤  │ ├┤             
+  ─┴┘└─┘┴─┘└─┘ ┴ └─┘            
+  ┌─┐┌─┐┌┬┐┌─┐┌─┐┌┐┌┌─┐┌┐┌┌┬┐┌─┐
+  │  │ ││││├─┘│ ││││├┤ │││ │ └─┐
+  └─┘└─┘┴ ┴┴  └─┘┘└┘└─┘┘└┘ ┴ └─┘
+  
+  */
+  
+  /* Tabs elements  */
+  .tab-close-button {
+    display: none;
+  }
+  
+  .tabbrowser-tab:not([pinned]) .tab-icon-image {
+    display: none !important;
+  }
+  
+  #nav-bar:not([tabs-hidden='true']) {
+    box-shadow: none;
+  }
+  
+  #tabbrowser-tabs[haspinnedtabs]:not([positionpinnedtabs])
+    > #tabbrowser-arrowscrollbox
+    > .tabbrowser-tab[first-visible-unpinned-tab] {
+    margin-inline-start: 0 !important;
+  }
+  
+  :root {
+    --toolbarbutton-border-radius: 0 !important;
+    --tab-border-radius: 0 !important;
+    --tab-block-margin: 0 !important;
+  }
+  
+  .tab-background {
+    border-right: 0px solid rgba(0, 0, 0, 0) !important;
+    margin-left: -4px !important;
+  }
+  
+  .tabbrowser-tab:is([visuallyselected='true'], [multiselected])
+    > .tab-stack
+    > .tab-background {
+    box-shadow: none !important;
+  }
+  
+  .tabbrowser-tab[last-visible-tab='true'] {
+    padding-inline-end: 0 !important;
+  }
+  
+  #tabs-newtab-button {
+    padding-left: 0 !important;
+  }
+  
+  /* Url Bar  */
+  #urlbar-input-container {
+    background-color: var(--sfsecondary) !important;
+    border: 1px solid rgba(0, 0, 0, 0) !important;
+  }
+  
+  #urlbar-container {
+    margin-left: 0 !important;
+  }
+  
+  #urlbar[focused='true'] > #urlbar-background {
+    box-shadow: none !important;
+  }
+  
+  #navigator-toolbox {
+    border: none !important;
+  }
+  
+  /* Bookmarks bar  */
+  .bookmark-item .toolbarbutton-icon {
+    display: none;
+  }
+  toolbarbutton.bookmark-item:not(.subviewbutton) {
+    min-width: 1.6em;
+  }
+  
+  /* Toolbar  */
+  #tracking-protection-icon-container,
+  #urlbar-zoom-button,
+  #star-button-box,
+  #pageActionButton,
+  #pageActionSeparator,
+  #tabs-newtab-button,
+  #back-button,
+  #PanelUI-button,
+  #forward-button,
+  .tab-secondary-label {
+    display: none !important;
+  }
+  
+  .urlbarView-url {
+    color: #dedede !important;
+  }
+  
+  /* Disable elements  */
+  #context-navigation,
+  #context-savepage,
+  #context-pocket,
+  #context-sendpagetodevice,
+  #context-selectall,
+  #context-viewsource,
+  #context-inspect-a11y,
+  #context-sendlinktodevice,
+  #context-openlinkinusercontext-menu,
+  #context-bookmarklink,
+  #context-savelink,
+  #context-savelinktopocket,
+  #context-sendlinktodevice,
+  #context-searchselect,
+  #context-sendimage,
+  #context-print-selection {
+    display: none !important;
+  }
+  
+  #context_bookmarkTab,
+  #context_moveTabOptions,
+  #context_sendTabToDevice,
+  #context_reopenInContainer,
+  #context_selectAllTabs,
+  #context_closeTabOptions {
+    display: none !important;
+  }
\ No newline at end of file