about summary refs log tree commit diff stats
path: root/home-manager/config/firefox/functions/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/config/firefox/functions/extensions')
-rw-r--r--home-manager/config/firefox/functions/extensions/default.nix26
-rw-r--r--home-manager/config/firefox/functions/extensions/video-pauser.nix31
2 files changed, 57 insertions, 0 deletions
diff --git a/home-manager/config/firefox/functions/extensions/default.nix b/home-manager/config/firefox/functions/extensions/default.nix
new file mode 100644
index 00000000..e3373d86
--- /dev/null
+++ b/home-manager/config/firefox/functions/extensions/default.nix
@@ -0,0 +1,26 @@
+# vim: ts=2
+{pkgs, ...}: {
+  pname,
+  version,
+  addonId,
+  url,
+  sha256,
+  #meta,
+  ...
+}:
+pkgs.stdenv.mkDerivation {
+  name = "${pname}-${version}";
+
+  #inherit meta;
+
+  src = builtins.fetchurl {inherit url sha256;};
+
+  preferLocalBuild = true;
+  allowSubstitutes = true;
+
+  buildCommand = ''
+    dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
+    mkdir -p "$dst"
+    install -v -m644 "$src" "$dst/${addonId}.xpi"
+  '';
+}
diff --git a/home-manager/config/firefox/functions/extensions/video-pauser.nix b/home-manager/config/firefox/functions/extensions/video-pauser.nix
new file mode 100644
index 00000000..a6b0e838
--- /dev/null
+++ b/home-manager/config/firefox/functions/extensions/video-pauser.nix
@@ -0,0 +1,31 @@
+# vim: ts=2
+{
+  pkgs,
+  video_pause,
+  ...
+}:
+pkgs.runCommand "video_pause_native_messaging" {} ''
+  install -d $out/share/
+  cat << EOF > $out/share/video_pauser.json
+  {
+    "name": "video_pauser",
+    "description": "Pause your Videos with a single key stroke!",
+    "path": "${video_pause}/bin/video_pause",
+    "type": "stdio",
+    "allowed_extensions": ["video-pauser@addons.vhack.eu"]
+  }
+  EOF
+
+  nativeMessagingPaths=(
+    /lib/mozilla/native-messaging-hosts
+    /etc/opt/chrome/native-messaging-hosts
+    /etc/chromium/native-messaging-hosts
+    /etc/vivaldi/native-messaging-hosts
+    /lib/librewolf/native-messaging-hosts
+  )
+
+  for manifestDir in "''${nativeMessagingPaths[@]}"; do
+    install -d $out$manifestDir
+    ln -s $out/share/video_pauser.json $out$manifestDir/
+  done
+''