Add obsidian theme
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
pkgs.stdenv.mkDerivation {
|
pkgs.stdenv.mkDerivation {
|
||||||
name = "ags-config";
|
name = "ags.config";
|
||||||
|
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
|
@@ -57,6 +57,10 @@
|
|||||||
name = "type";
|
name = "type";
|
||||||
value = "packages";
|
value = "packages";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name = "channel";
|
||||||
|
value = "unstable";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "query";
|
name = "query";
|
||||||
value = "{searchTerms}";
|
value = "{searchTerms}";
|
||||||
@@ -78,6 +82,10 @@
|
|||||||
name = "type";
|
name = "type";
|
||||||
value = "options";
|
value = "options";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
name = "channel";
|
||||||
|
value = "unstable";
|
||||||
|
}
|
||||||
{
|
{
|
||||||
name = "query";
|
name = "query";
|
||||||
value = "{searchTerms}";
|
value = "{searchTerms}";
|
||||||
|
@@ -52,6 +52,8 @@
|
|||||||
./snippets/editor-monospace.css
|
./snippets/editor-monospace.css
|
||||||
./snippets/file-explorer-separators.css
|
./snippets/file-explorer-separators.css
|
||||||
];
|
];
|
||||||
|
|
||||||
|
theme = import ./themes/minimal.nix { inherit pkgs; };
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -89,6 +89,12 @@ in
|
|||||||
type = raw;
|
type = raw;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
theme = mkOption {
|
||||||
|
description = "Obsidian theme package.";
|
||||||
|
type = raw;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
vaults = mkOption {
|
vaults = mkOption {
|
||||||
@@ -134,6 +140,12 @@ in
|
|||||||
type = listOf path;
|
type = listOf path;
|
||||||
default = cfg.sharedSettings.cssSnippets;
|
default = cfg.sharedSettings.cssSnippets;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
theme = mkOption {
|
||||||
|
description = "Obsidian theme package.";
|
||||||
|
type = nullOr package;
|
||||||
|
default = cfg.sharedSettings.theme;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -148,6 +160,7 @@ in
|
|||||||
config =
|
config =
|
||||||
let
|
let
|
||||||
vaults = builtins.filter (vault: vault.enable == true) (builtins.attrValues cfg.vaults);
|
vaults = builtins.filter (vault: vault.enable == true) (builtins.attrValues cfg.vaults);
|
||||||
|
getThemeName = theme: (builtins.fromJSON (builtins.readFile "${theme}/manifest.json")).name;
|
||||||
in
|
in
|
||||||
lib.mkIf cfg.enable {
|
lib.mkIf cfg.enable {
|
||||||
home = {
|
home = {
|
||||||
@@ -171,6 +184,9 @@ in
|
|||||||
snippet: lib.strings.removeSuffix ".css" (builtins.baseNameOf snippet)
|
snippet: lib.strings.removeSuffix ".css" (builtins.baseNameOf snippet)
|
||||||
) vault.settings.cssSnippets;
|
) vault.settings.cssSnippets;
|
||||||
}
|
}
|
||||||
|
// lib.attrsets.optionalAttrs (vault.settings.theme != null) {
|
||||||
|
cssTheme = getThemeName vault.settings.theme;
|
||||||
|
}
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -203,6 +219,14 @@ in
|
|||||||
source = snippet;
|
source = snippet;
|
||||||
};
|
};
|
||||||
}) vault.settings.cssSnippets;
|
}) 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
|
in
|
||||||
builtins.listToAttrs (
|
builtins.listToAttrs (
|
||||||
lib.lists.flatten (
|
lib.lists.flatten (
|
||||||
@@ -211,6 +235,7 @@ in
|
|||||||
(mkAppearance vault)
|
(mkAppearance vault)
|
||||||
(mkCorePlugins vault)
|
(mkCorePlugins vault)
|
||||||
(mkCssSnippets vault)
|
(mkCssSnippets vault)
|
||||||
|
(mkTheme vault)
|
||||||
]) vaults
|
]) vaults
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
28
hosts/common/user/configs/gui/obsidian/themes/minimal.nix
Normal file
28
hosts/common/user/configs/gui/obsidian/themes/minimal.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
pkgs ? import <nixpkgs> { },
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
version = "7.7.7";
|
||||||
|
|
||||||
|
css = builtins.fetchurl {
|
||||||
|
url = "https://github.com/kepano/obsidian-minimal/releases/download/${version}/theme.css";
|
||||||
|
sha256 = "sha256:1j7w6dsl20fbpzy9ldplf658qhg5ka1bkd2a8ac9q4n15lbqnp3a";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
pkgs.stdenv.mkDerivation {
|
||||||
|
name = "obsidian.themes.minimal";
|
||||||
|
|
||||||
|
src = builtins.fetchurl {
|
||||||
|
url = "https://github.com/kepano/obsidian-minimal/releases/download/${version}/manifest.json";
|
||||||
|
sha256 = "sha256:1hcp8kpzkb2hdj520mqdaar9dh0fcaqwcgji7dd1ws37yzw44kc5";
|
||||||
|
};
|
||||||
|
|
||||||
|
phases = [ "installPhase" ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
cp $src $out/manifest.json
|
||||||
|
cp ${css} $out/theme.css
|
||||||
|
'';
|
||||||
|
}
|
Reference in New Issue
Block a user