Add obsidian theme
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -89,6 +89,12 @@ in
|
||||
type = raw;
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
theme = mkOption {
|
||||
description = "Obsidian theme package.";
|
||||
type = raw;
|
||||
default = null;
|
||||
};
|
||||
};
|
||||
|
||||
vaults = mkOption {
|
||||
@@ -134,6 +140,12 @@ in
|
||||
type = listOf path;
|
||||
default = cfg.sharedSettings.cssSnippets;
|
||||
};
|
||||
|
||||
theme = mkOption {
|
||||
description = "Obsidian theme package.";
|
||||
type = nullOr package;
|
||||
default = cfg.sharedSettings.theme;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -148,6 +160,7 @@ in
|
||||
config =
|
||||
let
|
||||
vaults = builtins.filter (vault: vault.enable == true) (builtins.attrValues cfg.vaults);
|
||||
getThemeName = theme: (builtins.fromJSON (builtins.readFile "${theme}/manifest.json")).name;
|
||||
in
|
||||
lib.mkIf cfg.enable {
|
||||
home = {
|
||||
@@ -171,6 +184,9 @@ in
|
||||
snippet: lib.strings.removeSuffix ".css" (builtins.baseNameOf snippet)
|
||||
) vault.settings.cssSnippets;
|
||||
}
|
||||
// lib.attrsets.optionalAttrs (vault.settings.theme != null) {
|
||||
cssTheme = getThemeName vault.settings.theme;
|
||||
}
|
||||
);
|
||||
};
|
||||
};
|
||||
@@ -203,6 +219,14 @@ in
|
||||
source = snippet;
|
||||
};
|
||||
}) vault.settings.cssSnippets;
|
||||
mkTheme =
|
||||
vault:
|
||||
lib.attrsets.optionalAttrs (vault.settings.theme != null) {
|
||||
name = "${vault.target}/.obsidian/themes/${getThemeName vault.settings.theme}";
|
||||
value = {
|
||||
source = vault.settings.theme;
|
||||
};
|
||||
};
|
||||
in
|
||||
builtins.listToAttrs (
|
||||
lib.lists.flatten (
|
||||
@@ -211,6 +235,7 @@ in
|
||||
(mkAppearance vault)
|
||||
(mkCorePlugins vault)
|
||||
(mkCssSnippets vault)
|
||||
(mkTheme vault)
|
||||
]) vaults
|
||||
)
|
||||
);
|
||||
|
Reference in New Issue
Block a user