mirror of
https://github.com/nix-community/home-manager
synced 2024-11-27 05:29:46 +01:00
firefox: Reimplement FF native messaging
Farm links from the selected firefox package, programs.firefox.nativeMessagingHosts and a package with a .keep file for always creating the ~/.mozilla/native-messaging-hosts folder as a regular folder with links in it. Fixes #4959
This commit is contained in:
parent
c7ce343d9b
commit
690764d2dc
1 changed files with 15 additions and 9 deletions
|
@ -22,8 +22,15 @@ let
|
||||||
if isDarwin then "${firefoxConfigPath}/Profiles" else firefoxConfigPath;
|
if isDarwin then "${firefoxConfigPath}/Profiles" else firefoxConfigPath;
|
||||||
|
|
||||||
nativeMessagingHostsJoined = pkgs.symlinkJoin {
|
nativeMessagingHostsJoined = pkgs.symlinkJoin {
|
||||||
name = "home_ff_nmhs";
|
name = "ff_native-messaging-hosts";
|
||||||
paths = cfg.package.nativeMessagingHosts or cfg.nativeMessagingHosts;
|
paths = [
|
||||||
|
# Link a .keep file to keep the directory around
|
||||||
|
(pkgs.writeTextDir "lib/mozilla/native-messaging-hosts/.keep" "")
|
||||||
|
# Link package configured native messaging hosts (entire Firefox actually)
|
||||||
|
cfg.finalPackage
|
||||||
|
]
|
||||||
|
# Link user configured native messaging hosts
|
||||||
|
++ cfg.nativeMessagingHosts;
|
||||||
};
|
};
|
||||||
|
|
||||||
# The extensions path shared by all profiles; will not be supported
|
# The extensions path shared by all profiles; will not be supported
|
||||||
|
@ -718,11 +725,7 @@ in {
|
||||||
will be removed in the future. Please change to overriding the package
|
will be removed in the future. Please change to overriding the package
|
||||||
configuration using 'programs.firefox.package' instead. You can refer to
|
configuration using 'programs.firefox.package' instead. You can refer to
|
||||||
its example for how to do this.
|
its example for how to do this.
|
||||||
'' ++ optional (cfg.package.nativeMessagingHosts or null != null
|
'';
|
||||||
&& cfg.nativeMessagingHosts != [ ]) ''
|
|
||||||
Using both 'programs.firefox.package.nativeMessagingHosts' and
|
|
||||||
'programs.firefox.nativeMessagingHosts' is not supported, the latter will be ignored.
|
|
||||||
'';
|
|
||||||
|
|
||||||
programs.firefox.finalPackage = wrapPackage cfg.package;
|
programs.firefox.finalPackage = wrapPackage cfg.package;
|
||||||
|
|
||||||
|
@ -731,8 +734,11 @@ in {
|
||||||
home.file = mkMerge ([{
|
home.file = mkMerge ([{
|
||||||
"${firefoxConfigPath}/profiles.ini" =
|
"${firefoxConfigPath}/profiles.ini" =
|
||||||
mkIf (cfg.profiles != { }) { text = profilesIni; };
|
mkIf (cfg.profiles != { }) { text = profilesIni; };
|
||||||
"${mozillaConfigPath}/native-messaging-hosts".source =
|
"${mozillaConfigPath}/native-messaging-hosts" = {
|
||||||
"${nativeMessagingHostsJoined}/lib/mozilla/native-messaging-hosts";
|
source =
|
||||||
|
"${nativeMessagingHostsJoined}/lib/mozilla/native-messaging-hosts";
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
}] ++ flip mapAttrsToList cfg.profiles (_: profile: {
|
}] ++ flip mapAttrsToList cfg.profiles (_: profile: {
|
||||||
"${profilesPath}/${profile.path}/.keep".text = "";
|
"${profilesPath}/${profile.path}/.keep".text = "";
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue