aboutsummaryrefslogtreecommitdiff
path: root/share/cfg
diff options
context:
space:
mode:
Diffstat (limited to 'share/cfg')
-rw-r--r--share/cfg/firefox/default.nix35
1 files changed, 35 insertions, 0 deletions
diff --git a/share/cfg/firefox/default.nix b/share/cfg/firefox/default.nix
index e5c83ee..85b8fcf 100644
--- a/share/cfg/firefox/default.nix
+++ b/share/cfg/firefox/default.nix
@@ -1,5 +1,37 @@
{ pkgs, ... }:
let
+ # See https://github.com/nix-community/home-manager/pull/5381
+ # and https://codeberg.org/PassFF/passff-host/src/commit/05c39de18b200d6f262d6dced13cdde7b12fdae3#preferences
+ passff-host = pkgs.passff-host.overrideAttrs (old: {
+ dontStrip = true;
+ installPhase = ''
+ substituteInPlace bin/${old.version}/passff.json \
+ --replace PLACEHOLDER $out/share/passff-host/passff.py
+
+ install -Dt $out/share/passff-host \
+ bin/${old.version}/passff.{py,json}
+
+ 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
+ cp $out/share/passff-host/passff.json $out$manifestDir/
+ done
+ '';
+
+ patchPhase = ''
+ sed -i 's#COMMAND = "pass"#COMMAND = "${
+ pkgs.pass.withExtensions (ext: with ext; [ pass-otp ])
+ }/bin/pass"#' src/passff.py
+ '';
+ });
+
# Concatenate all files in the `./usercss` directory into one string
css-files = map (n: ./usercss/${n}) (builtins.attrNames (builtins.readDir ./usercss));
userChrome = builtins.concatStringsSep "\n" (map builtins.readFile css-files);
@@ -8,6 +40,9 @@ in
home.sessionVariables.BROWSER = "firefox";
programs.firefox = {
+ nativeMessagingHosts = [
+ passff-host
+ ];
profiles = {
alice = {
name = "alice";