diff options
author | tzlil <tzlils@protonmail.com> | 2023-08-06 20:05:49 +0300 |
---|---|---|
committer | tzlil <tzlils@protonmail.com> | 2023-08-06 20:05:49 +0300 |
commit | 9739580d9883c72fe879a2387c926d5985431c6d (patch) | |
tree | 1497a0db812911ff0794148333385b61e7590b29 /mixins/firefox | |
parent | b4bc62ec60acca1bb027a27bfa7e5c6335d7983e (diff) |
uhhhh
Diffstat (limited to 'mixins/firefox')
-rw-r--r-- | mixins/firefox/absolute-minimum.nix | 80 |
1 files changed, 67 insertions, 13 deletions
diff --git a/mixins/firefox/absolute-minimum.nix b/mixins/firefox/absolute-minimum.nix index 7d9fd79..3a9eb9a 100644 --- a/mixins/firefox/absolute-minimum.nix +++ b/mixins/firefox/absolute-minimum.nix @@ -18,17 +18,27 @@ in }) {}; mozlz4 = n: x: pkgs.runCommand "${n}.lz4" {buildInputs = [pkgs.mozlz4a];} '' - mozlz4a ${pkgs.writeTextFile {name=n; text=builtins.toJSON x;}} $out + 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}"; - addonStartupData = builtins.fromJSON (builtins.readFile (pkgs.runCommand "addonStartup.json" {buildInputs = [ pkgs.xvfb-run pkgs.mozlz4a pkgs.jq (pkgs.firefox.override { - extraPolicies.Extensions.Install = map (x: x.src.outPath) addons; - })];} '' + extensionsData = pkgs.runCommand "extensions.json" { + buildInputs = [ + pkgs.xvfb-run + pkgs.mozlz4a + pkgs.jq + (pkgs.firefox.override { + extraPolicies.Extensions.Install = map (x: x.src.outPath) addons; + }) + ]; + } '' HOME=$(mktemp -d) - export FONTCONFIG_FILE=${pkgs.makeFontsConf { fontDirectories = [ pkgs.roboto ]; }} + export FONTCONFIG_FILE=${pkgs.makeFontsConf {fontDirectories = [pkgs.roboto];}} mkdir -p $HOME/.mozilla/firefox/default cat >> $HOME/.mozilla/firefox/profiles.ini<< EOF [Profile0] @@ -42,7 +52,13 @@ in xvfb-run firefox --screenshot about:blank - mozlz4a -d $HOME/.mozilla/firefox/default/addonStartup.json.lz4 /dev/stdout | jq .\"app-profile\".addons > $out + cat $HOME/.mozilla/firefox/default/extensions.json > $out + # mozlz4a -d $HOME/.mozilla/firefox/default/addonStartup.json.lz4 /dev/stdout | jq .\"app-profile\".addons > $out + ''; + + 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 @@ -55,26 +71,56 @@ in home.file."${prf}/search.json.mozlz4".source = pkgs.emptyFile; home.file."${prf}/search.json.mozlz4.tmp".source = pkgs.emptyFile; - home.file."${prf}/extensions".source = lib.mkForce ("${pkgs.symlinkJoin { + home.file."${prf}/extensions".source = lib.mkForce "${pkgs.symlinkJoin { name = "extensions"; paths = addons; - }}/share/mozilla/${extensionPath}"); + }}/share/mozilla/${extensionPath}"; home.file."${prf}/storage".source = pkgs.emptyDirectory; 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 = mozlz4 "addonStartup.json" {"app-profile".addons = addonStartupData;}; - home.file."${prf}/addonStartup.json.lz4.tmp".source = pkgs.emptyFile; + # home.file."${prf}/addonStartup.json.lz4".source = mozlz4 "addonStartup.json" {"app-profile".addons = addonStartupData;}; + # 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 = 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 + # tries to access W_OK it forever # home.file."${prf}/prefs.js".source = pkgs.emptyFile; # home.file."${prf}/prefs-1.js".source = pkgs.emptyFile; @@ -82,7 +128,15 @@ in enable = true; profiles.${profile} = { extensions = with firefox-addons; [ - kristofferhagen-nord-theme + # kristofferhagen-nord-theme + + ublock-origin + clearurls + privacy-possum + skip-redirect + canvasblocker + + sidebery ]; settings = { "extensions.activeThemeID" = "{e410fec2-1cbd-4098-9944-e21e708418af}"; |