firefox: Support paths for userChrome & userContent

A path may be preferred for some uses, and allowing it avoids the user
needing to `builtins.readFile`, thus creating duplicates and making it
more difficult to determine the actual store path.
This commit is contained in:
Andrew Marshall 2023-04-07 12:56:00 -04:00
parent b00d0e4fe9
commit 7284e905a3

View file

@ -343,7 +343,7 @@ in {
};
userChrome = mkOption {
type = types.lines;
type = types.oneOf [ types.lines types.path ];
default = "";
description = "Custom Firefox user chrome CSS.";
example = ''
@ -362,7 +362,7 @@ in {
};
userContent = mkOption {
type = types.lines;
type = types.oneOf [ types.lines types.path ];
default = "";
description = "Custom Firefox user content CSS.";
example = ''
@ -749,10 +749,16 @@ in {
"${profilesPath}/${profile.path}/.keep".text = "";
"${profilesPath}/${profile.path}/chrome/userChrome.css" =
mkIf (profile.userChrome != "") { text = profile.userChrome; };
mkIf (profile.userChrome != "") (let
key =
if builtins.isString profile.userChrome then "text" else "source";
in { "${key}" = profile.userChrome; });
"${profilesPath}/${profile.path}/chrome/userContent.css" =
mkIf (profile.userContent != "") { text = profile.userContent; };
mkIf (profile.userContent != "") (let
key =
if builtins.isString profile.userContent then "text" else "source";
in { "${key}" = profile.userContent; });
"${profilesPath}/${profile.path}/user.js" = mkIf (profile.settings != { }
|| profile.extraConfig != "" || profile.bookmarks != [ ]) {