blob: 85b8fcf5bb17020803f64b31b005dfed32b6c349 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
{ 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);
in
{
home.sessionVariables.BROWSER = "firefox";
programs.firefox = {
nativeMessagingHosts = [
passff-host
];
profiles = {
alice = {
name = "alice";
isDefault = true;
inherit userChrome;
search = {
default = "DuckDuckGo";
engines = {
"Nix Packages" = {
urls = [
{
template = "https://search.nixos.org/packages";
params = [
{
name = "type";
value = "packages";
}
{
name = "query";
value = "{searchTerms}";
}
];
}
];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"NixOS Wiki" = {
urls = [ { template = "https://wiki.nixos.org/w/index.php?search={searchTerms}"; } ];
iconUpdateURL = "https://wiki.nixos.org/favicon.ico";
updateInterval = 24 * 60 * 60 * 1000; # every day
definedAliases = [ "@nw" ];
};
"Bing".metaData.hidden = true;
# builtin engines only support specifying one additional alias
"Google".medaData.alias = "@g";
};
}; # end of search
settings = {
"browser.compactmode.show" = true;
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
};
}; # end of alice (profile)
}; # end of profiles
};
}
|