From 99c4ee3e36a2f58ca661825e135dea4ae7af566d Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Thu, 11 Jul 2024 11:45:31 +0300 Subject: [PATCH] Add obsidian css snippets Signed-off-by: Nikolaos Karaolidis --- .../user/configs/gui/obsidian/.stignore | 1 + .../user/configs/gui/obsidian/default.nix | 21 +++++++++++++ .../user/configs/gui/obsidian/options.nix | 30 ++++++++++++++++++- .../obsidian/snippets/editor-monospace.css | 3 ++ .../snippets/file-explorer-separators.css | 18 +++++++++++ 5 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 hosts/common/user/configs/gui/obsidian/snippets/editor-monospace.css create mode 100644 hosts/common/user/configs/gui/obsidian/snippets/file-explorer-separators.css diff --git a/hosts/common/user/configs/gui/obsidian/.stignore b/hosts/common/user/configs/gui/obsidian/.stignore index d04bc72..1298f8d 100644 --- a/hosts/common/user/configs/gui/obsidian/.stignore +++ b/hosts/common/user/configs/gui/obsidian/.stignore @@ -2,6 +2,7 @@ */.obsidian/app.json */.obsidian/appearance.json */.obsidian/core-plugins*.json +*/.obsidian/snippets // Dynamic */.obsidian/graph.json diff --git a/hosts/common/user/configs/gui/obsidian/default.nix b/hosts/common/user/configs/gui/obsidian/default.nix index 1dd9e7d..350efff 100644 --- a/hosts/common/user/configs/gui/obsidian/default.nix +++ b/hosts/common/user/configs/gui/obsidian/default.nix @@ -15,6 +15,22 @@ enable = true; sharedSettings = { + app = { + defaultViewMode = "preview"; + livePreview = false; + readableLineLength = false; + showLineNumber = true; + tabSize = 2; + promptDelete = false; + trashOption = "local"; + alwaysUpdateLinks = true; + newFileLocation = "folder"; + newFileFolderPath = "inbox"; + newLinkFormat = "absolute"; + showUnsupportedFiles = true; + attachmentFolderPath = "./assets"; + }; + corePlugins = [ "bookmarks" "canvas" @@ -31,6 +47,11 @@ "switcher" "tag-pane" ]; + + cssSnippets = [ + ./snippets/editor-monospace.css + ./snippets/file-explorer-separators.css + ]; }; }; diff --git a/hosts/common/user/configs/gui/obsidian/options.nix b/hosts/common/user/configs/gui/obsidian/options.nix index 1037e5e..5e9cba6 100644 --- a/hosts/common/user/configs/gui/obsidian/options.nix +++ b/hosts/common/user/configs/gui/obsidian/options.nix @@ -83,6 +83,12 @@ in "word-count" ]; }; + + cssSnippets = mkOption { + description = "CSS snippets to install."; + type = raw; + default = [ ]; + }; }; vaults = mkOption { @@ -122,6 +128,12 @@ in type = listOf (enum corePlugins); default = cfg.sharedSettings.corePlugins; }; + + cssSnippets = mkOption { + description = "CSS snippets to install."; + type = listOf path; + default = cfg.sharedSettings.cssSnippets; + }; }; }; @@ -152,7 +164,14 @@ in mkAppearance = vault: { name = "${vault.target}/.obsidian/appearance.json"; value = { - source = (pkgs.formats.json { }).generate "appearance.json" vault.settings.appearance; + source = (pkgs.formats.json { }).generate "appearance.json" ( + vault.settings.appearance + // { + enabledCssSnippets = builtins.map ( + snippet: lib.strings.removeSuffix ".css" (builtins.baseNameOf snippet) + ) vault.settings.cssSnippets; + } + ); }; }; mkCorePlugins = vault: [ @@ -176,6 +195,14 @@ in }; } ]; + mkCssSnippets = + vault: + builtins.map (snippet: { + name = "${vault.target}/.obsidian/snippets/${builtins.baseNameOf snippet}"; + value = { + source = snippet; + }; + }) vault.settings.cssSnippets; in builtins.listToAttrs ( lib.lists.flatten ( @@ -183,6 +210,7 @@ in (mkApp vault) (mkAppearance vault) (mkCorePlugins vault) + (mkCssSnippets vault) ]) vaults ) ); diff --git a/hosts/common/user/configs/gui/obsidian/snippets/editor-monospace.css b/hosts/common/user/configs/gui/obsidian/snippets/editor-monospace.css new file mode 100644 index 0000000..7dc33a8 --- /dev/null +++ b/hosts/common/user/configs/gui/obsidian/snippets/editor-monospace.css @@ -0,0 +1,3 @@ +.markdown-source-view.mod-cm6 .cm-scroller { + font-family: var(--font-monospace); +} diff --git a/hosts/common/user/configs/gui/obsidian/snippets/file-explorer-separators.css b/hosts/common/user/configs/gui/obsidian/snippets/file-explorer-separators.css new file mode 100644 index 0000000..59f49e1 --- /dev/null +++ b/hosts/common/user/configs/gui/obsidian/snippets/file-explorer-separators.css @@ -0,0 +1,18 @@ +:root { + --replete-custom-separators-vertical-padding: 4px; + --replete-custom-separators-left-margin: -12px; +} + +.nav-files-container [class*=nav-]:has(:is( + [data-path="Inbox"], + [data-path="Dreams"], + [data-path="Work"], + [data-path="Random"], +))::after { + content:''; + display:block; + height:1px; + width:calc(100% + 32px); + background:linear-gradient(to right, var(--tab-outline-color), transparent); + margin:var(--replete-custom-separators-vertical-padding) 0 var(--replete-custom-separators-vertical-padding) var(--replete-custom-separators-left-margin); +}