aboutsummaryrefslogtreecommitdiffstats
path: root/modules/web/chromium/extensions
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar+git@gmail.com>2026-08-02 01:57:58 +0530
committerArpit Chakladar <arpitchakladar+git@gmail.com>2026-08-02 01:57:58 +0530
commit09ade49600f31c6b854410d2c55b043d6efa3275 (patch)
tree3de6cfedb03c2c0de3b388bb0ddfb08a79275c77 /modules/web/chromium/extensions
parente2272d6299e5c08e4b2cadc42eba673354e4e814 (diff)
downloadhome-manager-config-09ade49600f31c6b854410d2c55b043d6efa3275.tar.gz
home-manager-config-09ade49600f31c6b854410d2c55b043d6efa3275.zip
feat: fixed chromium extension ids, duplicate sent emails, etc
- Every home-manager switch had a change to change the ids of the extensions, now we get the same extension id for any build of the given extension - Sending emails from neomutt send duplicate emails, it is now fixed - Auto re-registering in usque-warp connect, as it gets deactivated in about 24 hours - Using a style.mustache.css for the waybar css configs for syntax highlighting
Diffstat (limited to 'modules/web/chromium/extensions')
-rw-r--r--modules/web/chromium/extensions/aria2-explorer.nix10
-rw-r--r--modules/web/chromium/extensions/browserpass.nix12
-rw-r--r--modules/web/chromium/extensions/dark-mode.nix3
-rw-r--r--modules/web/chromium/extensions/lib.nix19
-rw-r--r--modules/web/chromium/extensions/searxng-home.nix3
-rw-r--r--modules/web/chromium/extensions/ublock-origin.nix3
6 files changed, 30 insertions, 20 deletions
diff --git a/modules/web/chromium/extensions/aria2-explorer.nix b/modules/web/chromium/extensions/aria2-explorer.nix
index 0ee9779..694d74e 100644
--- a/modules/web/chromium/extensions/aria2-explorer.nix
+++ b/modules/web/chromium/extensions/aria2-explorer.nix
@@ -15,18 +15,18 @@ let
version
;
tagPrefix = "v";
- urlTemplate = "https://github.com/${owner}/${repo}/releases/download/v<version>/A2E-v<version>.crx";
+ urlTemplate = "https://github.com/${owner}/${repo}/archive/refs/tags/v<version>.zip";
};
in
{
inherit pname;
version = checkedVersion;
- id = "jnnfdabjmnliapnhdbnljjlfamdkeohn";
+ id = "hhndckjijagcbbljjhjcbnpjhamkkcjl";
drv = extLib.fetchUnpackedExtension {
inherit pname;
version = checkedVersion;
- url = "https://github.com/${owner}/${repo}/releases/download/v${checkedVersion}/A2E-v${checkedVersion}.crx";
- hash = "sha256-ljTgKd9QJTRJ11rlNx+PTynlQvdLW3IEoYNnCeOU2K8=";
- isCrx = true;
+ url = "https://github.com/${owner}/${repo}/archive/refs/tags/v${checkedVersion}.zip";
+ hash = "sha256-4+SkvgWrELcohpv724YEtvSQSDCmjphkk8bvYggxVag=";
+ extensionKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArOOLc1LawtEonls6j4P/KQyUAGO3KJcE9uAU9WV/tBIX6ulXivZypUAXC6Lokv56Bjnc08t/wUH8Xph0Gya4UzjSbZkdtR94yksY9mq5g/8df4p4v29SO+E6efQyXGyImEzFSHsNP4gu8akB5xT8O//51XRAXsMBVgUUTuUAlpnwd25Yy1tpQwqjbSV3gvAMo+a6+y0dBfXJ9fjwAYBwvx4cONSNjirIuyOG5r5FI5TaGMK+aV1xwNsDE59dyDkYL2f2mm1kN/2xMcayJrskVxtOcy18ijjXzyRJvNyhkLM2c5tEZHUkIlEgTjbJruF8EKrj2sCnodt1jknD0BSr1wIDAQAB";
};
}
diff --git a/modules/web/chromium/extensions/browserpass.nix b/modules/web/chromium/extensions/browserpass.nix
index 211b6f1..88ed7f4 100644
--- a/modules/web/chromium/extensions/browserpass.nix
+++ b/modules/web/chromium/extensions/browserpass.nix
@@ -15,20 +15,18 @@ let
version
;
tagPrefix = "";
- urlTemplate = "https://github.com/${owner}/${repo}/releases/download/<version>/browserpass-webstore-<version>.crx";
+ urlTemplate = "https://github.com/${owner}/${repo}/releases/download/<version>/browserpass-chromium-<version>.zip";
};
in
{
inherit pname;
version = checkedVersion;
- # Stable webstore ID — only holds if the crx's manifest.json embeds "key".
- # Verify at chrome://extensions after switching; update if it drifts.
- id = "klfoddkbhleoaabpmiigbmpbjfljimgb";
+ id = "jbaodoonnfhdccelcpnekimkijgdfjhl";
drv = extLib.fetchUnpackedExtension {
inherit pname;
version = checkedVersion;
- url = "https://github.com/${owner}/${repo}/releases/download/${checkedVersion}/browserpass-webstore-${checkedVersion}.crx";
- hash = "sha256-NfLbEe2EBctmntJqbsIpwm2WRFdo8q6yjWGjVK2MmFE=";
- isCrx = true;
+ url = "https://github.com/${owner}/${repo}/releases/download/${checkedVersion}/browserpass-chromium-${checkedVersion}.zip";
+ hash = "sha256-WBpPTtec7zJPWM1xNKVxWWW/sB1aIuPecp5fUTWRE8c=";
+ extensionKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv8xL6YhF7YTUE57jhme0vyJi4FZGXDBLV93QYWv6yrYbmczkM4aEOp4FWm63NnkJ8aGZ/0uL0rHmB4qo36awso/1L9XGJaBbQAQuOv/uIPAE18STJ4EtXA1hYDMGbkkr4fZHYJTH3GmoeajZYfp/cu8qc0cK4P5FVq67qwYSD4uFQJRJKuX8jM4lzO8dLH/tJsN3KwlfeSA8xvS2jiIJHtCKc6XqMrOCCfSmI8uILfg06fv46VOoVDH91dlZguOYANAJDW69uCY9YcvyVEmmf6DUnvmkrziDtV2O4/Af6nt7R5JHOcVcqVScoXJG9sfd4KATMcgoZj3fy19+R/4GvwIDAQAB";
};
}
diff --git a/modules/web/chromium/extensions/dark-mode.nix b/modules/web/chromium/extensions/dark-mode.nix
index 0a84ae8..efd8cbb 100644
--- a/modules/web/chromium/extensions/dark-mode.nix
+++ b/modules/web/chromium/extensions/dark-mode.nix
@@ -21,11 +21,12 @@ in
{
inherit pname;
version = checkedVersion;
- id = "mnollmcmkninmddnibfgoncobcehfhef";
+ id = "nfkppknaehpcafkbgmhfhkpapflndfip";
drv = extLib.fetchUnpackedExtension {
inherit pname;
version = checkedVersion;
url = "https://github.com/${owner}/${repo}/archive/refs/tags/v${checkedVersion}.zip";
hash = "sha256-Lt3T8i0ylV0l+T0eqnzs6veBcOpizhP79LgSkUx4xI8=";
+ extensionKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8xN0p4CHkthdkB6imIb+8T2xsNSH9eeFAy7NhP3xAO1ML6FJyOFroabQIG6HcV7miXmJamY7zmE96QgEEvGqQ18+g+RsfvriJp0LRXi95TJBdCXoMiW348bWmue0Jk+/rhzWijMn/z/5fDnrZl0xjKU7MAXzW9dWfiTeIBc4wlk21zjGJxiG0uM1YAywe3jW8g0QCBga9iTaN67D+sBbBs4HmPa3xIbtPTAgqt1LDEk2T7IseoUia8MwxATWKWFegW6legMkPLVWH9jQ+x2ZbjtDP9GXk+1YqqWQUll1Xmal7C9ljeagkM5nhxgttAQoWBMPMJFwr7VN3AXtNXXPWQIDAQAB";
};
}
diff --git a/modules/web/chromium/extensions/lib.nix b/modules/web/chromium/extensions/lib.nix
index 8821b03..d319a5c 100644
--- a/modules/web/chromium/extensions/lib.nix
+++ b/modules/web/chromium/extensions/lib.nix
@@ -73,6 +73,7 @@ rec {
url,
hash,
isCrx ? false,
+ extensionKey ? null, # NEW: Accept an optional public key
}:
pkgs.stdenv.mkDerivation {
inherit pname version;
@@ -80,6 +81,7 @@ rec {
nativeBuildInputs = [
config.file-management.ouch.package
+ pkgs.jq # NEW: Required for safely editing manifest.json
];
dontUnpack = true;
@@ -96,10 +98,7 @@ rec {
fi
# Extract header length (bytes 8-11, little-endian)
- # -An (no address), -j8 (skip 8 bytes), -N4 (read 4 bytes), -tu1 (unsigned decimal 1-byte)
bytes=$(od -An -j8 -N4 -tu1 "$src")
-
- # Read into individual variables and calculate the length
read b1 b2 b3 b4 <<< $bytes
hlen=$(( b1 + (b2 << 8) + (b3 << 16) + (b4 << 24) ))
offset=$(( 12 + hlen ))
@@ -118,13 +117,23 @@ rec {
shopt -u dotglob
fi
+ # NEW: Inject the public key into manifest.json if provided
+ ${lib.optionalString (extensionKey != null) ''
+ if [ -f "$out/manifest.json" ]; then
+ echo "Injecting extension key into manifest.json to lock the extension ID..."
+ jq '.key = "${extensionKey}"' "$out/manifest.json" > "$out/manifest.tmp.json"
+ mv "$out/manifest.tmp.json" "$out/manifest.json"
+ else
+ echo "Warning: No manifest.json found in $out to inject the key!" >&2
+ fi
+ ''}
+
runHook postBuild
'';
installPhase = "true";
- };
+ }; # --- Package a local directory as an unpacked extension derivation. ---
- # --- Package a local directory as an unpacked extension derivation. ---
mkLocalExtension =
{
pname,
diff --git a/modules/web/chromium/extensions/searxng-home.nix b/modules/web/chromium/extensions/searxng-home.nix
index 73cc7fd..fcac55d 100644
--- a/modules/web/chromium/extensions/searxng-home.nix
+++ b/modules/web/chromium/extensions/searxng-home.nix
@@ -24,7 +24,7 @@ in
inherit pname;
version = checkedVersion;
- id = "acoijbpbnodehiibdpmkkhlpmcnabpaa";
+ id = "gmkjafoflhifgcnmpomcoakhahmepfkc";
drv = extLib.fetchUnpackedExtension {
inherit pname;
@@ -32,5 +32,6 @@ in
url = "https://github.com/${owner}/${repo}/releases/download/v${checkedVersion}/chrome-v${checkedVersion}.zip";
hash = "sha256-fbXxtjTa8GKxylc5JS3GVj/oC+xCI5VJkE3bBpA2CbY=";
isCrx = false;
+ extensionKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2cDXvyOi1QgsWlC8LnwyXIV7EZ6yWLKvKCNBn8DPD4DwJgw221wqo6R9p/qnsnqAuveZrV/ApRq6MdzAclkWTGKyCJCRdJGBG/XM3BVfMBkuLXaLrvpFf8p/mDcAP37yOh0Z45XMTr55Y9ifnNH6Wu+3zAaASJlkBuGZ5ygbcUYcomcKjs7qfqxqY8Qe9ovIuLOQely+X9i+Qa6bZ0GJUTgXiKHckgY/43l+H+gs9V91he8qaSubzWPqwbYk8aWhTmjQTeR0vfUP+1/XBESt4u4NGxHsuk+ZwwbL6ThYRbzgj/UbvVGVQsanhIwODdJte51XanEo475Woal31++uxwIDAQAB";
};
}
diff --git a/modules/web/chromium/extensions/ublock-origin.nix b/modules/web/chromium/extensions/ublock-origin.nix
index a46d5b7..5bc88df 100644
--- a/modules/web/chromium/extensions/ublock-origin.nix
+++ b/modules/web/chromium/extensions/ublock-origin.nix
@@ -21,11 +21,12 @@ in
{
inherit pname;
version = checkedVersion;
- id = "ojmlhihnkagpnkkkjngdngbiidmafdbm";
+ id = "eahmphincfcmmpgkpobpneimcjndlcna";
drv = extLib.fetchUnpackedExtension {
inherit pname;
version = checkedVersion;
url = "https://github.com/${owner}/${repo}/releases/download/${checkedVersion}/uBlock0_${checkedVersion}.chromium.zip";
hash = "sha256-0QTKxOH0jXaxw/+Irt4uqoJpgUrgbMnIUNJ6+1J05TM=";
+ extensionKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtXfkoFzWOh3Fet9x4L6WY1pw755kt7bFwqd/nmTm5Ptg7d40Qde0tTIhceCFVkwrWTQ3n2/WSpYXoU/UMgSW9anBzoUM0ZXanIdoeHwvL3eMNyx+iyvSrRxee26GwzbZ8J0UvH77KT3rW/iV5ejV4wTxTD3rFr0udkI5bbTPYpmGFOKPD8I3IB6BsoUTKW3XTSLM0fUYggdbDNwQGZvLYwqZzk/vWH/oifHR6CEvdFR51JAdf3tJQhttI6My49Vq6etCi9y5ZLXrMksxcEcIlQKaF2fdlfL1bYXRAVFDsieuAmu3gJPBj65PVJif5A7DfcH8zm8YGPwrJlTjaJQeDQIDAQAB";
};
}