{firefox,floorp,librewolf}: add profile warning (#963)

Add warning for Firefox derivations without declared profiles, aligning with
commit 4853879264 ("vscode: support arbitrary profiles (#914)").

Link: https://github.com/danth/stylix/pull/963

Reviewed-by: NAHO <90870942+trueNAHO@users.noreply.github.com>
This commit is contained in:
Flameopathic 2025-03-10 15:36:30 -04:00 committed by GitHub
parent 9388f64ebe
commit 6b5afdbb3e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -75,89 +75,100 @@ in
# This and the below assignment aren't merged because of
# https://discourse.nixos.org/t/infinite-recursion-in-module-with-mkmerge/10989
config.programs = eachTarget (
{ target, cfg, ... }:
eachConfig (profileName: {
${target.path}.profiles.${profileName} = lib.mkMerge [
{
settings = {
"font.name.monospace.x-western" = config.stylix.fonts.monospace.name;
"font.name.sans-serif.x-western" = config.stylix.fonts.sansSerif.name;
"font.name.serif.x-western" = config.stylix.fonts.serif.name;
};
}
(lib.mkIf cfg.firefoxGnomeTheme.enable {
settings = {
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"svg.context-properties.content.enabled" = true;
};
config = {
programs = eachTarget (
{ target, cfg, ... }:
eachConfig (profileName: {
${target.path}.profiles.${profileName} = lib.mkMerge [
{
settings = {
"font.name.monospace.x-western" = config.stylix.fonts.monospace.name;
"font.name.sans-serif.x-western" = config.stylix.fonts.sansSerif.name;
"font.name.serif.x-western" = config.stylix.fonts.serif.name;
};
}
(lib.mkIf cfg.firefoxGnomeTheme.enable {
settings = {
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
"svg.context-properties.content.enabled" = true;
};
userChrome =
let
template = config.lib.stylix.colors {
template = ./userChrome.css.mustache;
extension = "css";
};
in
''
@import "${firefox-gnome-theme}/userChrome.css";
@import "${template}";
userChrome =
let
template = config.lib.stylix.colors {
template = ./userChrome.css.mustache;
extension = "css";
};
in
''
@import "${firefox-gnome-theme}/userChrome.css";
@import "${template}";
'';
userContent = ''
@import "${firefox-gnome-theme}/userContent.css";
'';
userContent = ''
@import "${firefox-gnome-theme}/userContent.css";
'';
})
(lib.mkIf cfg.colorTheme.enable {
extensions = {
packages = [ nur.repos.rycee.firefox-addons.firefox-color ];
settings."FirefoxColor@mozilla.com".settings = {
firstRunDone = true;
theme = {
title = "Stylix ${config.lib.stylix.colors.description}";
images.additional_backgrounds = [ "./bg-000.svg" ];
colors = {
toolbar = mkColor "base00";
toolbar_text = mkColor "base05";
frame = mkColor "base01";
tab_background_text = mkColor "base05";
toolbar_field = mkColor "base02";
toolbar_field_text = mkColor "base05";
tab_line = mkColor "base0D";
popup = mkColor "base00";
popup_text = mkColor "base05";
button_background_active = mkColor "base04";
frame_inactive = mkColor "base00";
icons_attention = mkColor "base0D";
icons = mkColor "base05";
ntp_background = mkColor "base00";
ntp_text = mkColor "base05";
popup_border = mkColor "base0D";
popup_highlight_text = mkColor "base05";
popup_highlight = mkColor "base04";
sidebar_border = mkColor "base0D";
sidebar_highlight_text = mkColor "base05";
sidebar_highlight = mkColor "base0D";
sidebar_text = mkColor "base05";
sidebar = mkColor "base00";
tab_background_separator = mkColor "base0D";
tab_loading = mkColor "base05";
tab_selected = mkColor "base00";
tab_text = mkColor "base05";
toolbar_bottom_separator = mkColor "base00";
toolbar_field_border_focus = mkColor "base0D";
toolbar_field_border = mkColor "base00";
toolbar_field_focus = mkColor "base00";
toolbar_field_highlight_text = mkColor "base00";
toolbar_field_highlight = mkColor "base0D";
toolbar_field_separator = mkColor "base0D";
toolbar_vertical_separator = mkColor "base0D";
})
(lib.mkIf cfg.colorTheme.enable {
extensions = {
packages = [ nur.repos.rycee.firefox-addons.firefox-color ];
settings."FirefoxColor@mozilla.com".settings = {
firstRunDone = true;
theme = {
title = "Stylix ${config.lib.stylix.colors.description}";
images.additional_backgrounds = [ "./bg-000.svg" ];
colors = {
toolbar = mkColor "base00";
toolbar_text = mkColor "base05";
frame = mkColor "base01";
tab_background_text = mkColor "base05";
toolbar_field = mkColor "base02";
toolbar_field_text = mkColor "base05";
tab_line = mkColor "base0D";
popup = mkColor "base00";
popup_text = mkColor "base05";
button_background_active = mkColor "base04";
frame_inactive = mkColor "base00";
icons_attention = mkColor "base0D";
icons = mkColor "base05";
ntp_background = mkColor "base00";
ntp_text = mkColor "base05";
popup_border = mkColor "base0D";
popup_highlight_text = mkColor "base05";
popup_highlight = mkColor "base04";
sidebar_border = mkColor "base0D";
sidebar_highlight_text = mkColor "base05";
sidebar_highlight = mkColor "base0D";
sidebar_text = mkColor "base05";
sidebar = mkColor "base00";
tab_background_separator = mkColor "base0D";
tab_loading = mkColor "base05";
tab_selected = mkColor "base00";
tab_text = mkColor "base05";
toolbar_bottom_separator = mkColor "base00";
toolbar_field_border_focus = mkColor "base0D";
toolbar_field_border = mkColor "base00";
toolbar_field_focus = mkColor "base00";
toolbar_field_highlight_text = mkColor "base00";
toolbar_field_highlight = mkColor "base0D";
toolbar_field_separator = mkColor "base0D";
toolbar_vertical_separator = mkColor "base0D";
};
};
};
};
};
})
];
}) cfg.profileNames
);
})
];
}) cfg.profileNames
);
warnings = eachTarget (
{ target, ... }:
lib.optional
(
config.programs.${target.path}.enable
&& config.stylix.targets.${target.path}.profileNames == [ ]
)
''stylix: ${target.path}: `config.stylix.targets.${target.path}.profileNames` is not set. Declare profile names with 'config.stylix.targets.${target.path}.profileNames = [ "<PROFILE_NAME>" ];'.''
);
};
}