mirror of
https://github.com/nix-community/home-manager.git
synced 2025-12-05 16:41:04 +01:00
progs: firefox: *.userChrome may be path or drv (#6761)
This allows `programs.firefox.profiles.*.userChrome` to be set to a:
derivation, path/path-like string to directory or file, or multiline
text to be used as content verbatim.
This allows setting, for example(s):
```nix
programs.firefox.profiles."jacob.default".userChrome = pkgs.wavefox;
programs.firefox.profiles."jacob.default".userChrome =
"${pkgs.wavefox}/userChrome.css";
```
This commit is contained in:
parent
d8263c0b84
commit
7ede02c32a
1 changed files with 28 additions and 15 deletions
|
|
@ -397,12 +397,19 @@ in
|
|||
};
|
||||
|
||||
userChrome = mkOption {
|
||||
type = types.oneOf [
|
||||
types.lines
|
||||
types.path
|
||||
];
|
||||
default = "";
|
||||
description = "Custom ${appName} user chrome CSS.";
|
||||
type = types.nullOr (
|
||||
types.oneOf [
|
||||
types.lines
|
||||
types.path
|
||||
]
|
||||
);
|
||||
default = null;
|
||||
description = ''
|
||||
Custom ${appName} user chrome CSS.
|
||||
|
||||
This can be a path to a file or directory in the Nix store,
|
||||
or a derivation, or a verbatim multi-line string.
|
||||
'';
|
||||
example = ''
|
||||
/* Hide tab bar in FF Quantum */
|
||||
@-moz-document url(chrome://browser/content/browser.xul), url(chrome://browser/content/browser.xhtml) {
|
||||
|
|
@ -861,21 +868,27 @@ in
|
|||
]
|
||||
++ lib.flip mapAttrsToList cfg.profiles (
|
||||
_: profile:
|
||||
let
|
||||
chromePath = if lib.pathIsDirectory profile.userChrome then "chrome" else "chrome/userChrome.css";
|
||||
sourcePath = if lib.types.path.check profile.userChrome then profile.userChrome else null;
|
||||
in
|
||||
# Merge the regular profile settings with extension settings
|
||||
mkMerge (
|
||||
[
|
||||
(mkIf (profile.userChrome != null) {
|
||||
"${profilesPath}/${profile.path}/${chromePath}" =
|
||||
if sourcePath == null then
|
||||
{
|
||||
text = profile.userChrome;
|
||||
}
|
||||
else
|
||||
{
|
||||
source = sourcePath;
|
||||
};
|
||||
})
|
||||
{
|
||||
"${profilesPath}/${profile.path}/.keep".text = "";
|
||||
|
||||
"${profilesPath}/${profile.path}/chrome/userChrome.css" = 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 != "") (
|
||||
let
|
||||
key = if builtins.isString profile.userContent then "text" else "source";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue