diff --git a/modules/home-manager/bundles/desktop.nix b/modules/home-manager/bundles/desktop.nix index fed0a53..c79a269 100644 --- a/modules/home-manager/bundles/desktop.nix +++ b/modules/home-manager/bundles/desktop.nix @@ -5,6 +5,7 @@ in { config = lib.mkIf config.${feature}.enable { kitty.enable = true; + obsidian.enable = true; zellij.enable = true; }; diff --git a/modules/home-manager/features/obsidian.nix b/modules/home-manager/features/obsidian.nix new file mode 100644 index 0000000..98c9046 --- /dev/null +++ b/modules/home-manager/features/obsidian.nix @@ -0,0 +1,122 @@ +{ config, lib, ... }: +let + feature = "obsidian"; +in +{ + config = lib.mkIf config.${feature}.enable { + programs.obsidian = { + enable = true; + defaultSettings = { + app = { + tabSize = 2; + trashOption = "local"; + alwaysUpdateLinks = true; + attachmentFolderPath = "/"; + defaultViewMode = "preview"; + vimMode = true; + showLineNumber = true; + }; + appearance = { + monospaceFontFamily = "JetBrainsMono Nerd Font"; + interfaceFontFamily = "JetBrainsMono Nerd Font"; + textFontFamily = "JetBrainsMono Nerd Font"; + nativeMenus = false; + cssTheme = "Catppuccin"; + showRibbon = false; + }; + communityPlugins = [ + "obsidian-livesync" + "oz-clear-unused-images" + "obsidian-editor-shortcuts" + "tag-wrangler" + "virtual-linker" + "pdf-plus" + "obsidian-excalidraw-plugin" + "obsidian-relative-line-numbers" + ]; + corePlugins = [ + "backlink" + "bases" + "bookmarks" + "canvas" + "command-palette" + "daily-notes" + "editor-status" + "file-explorer" + "file-recovery" + "global-search" + "graph" + "markdown-importer" + "note-composer" + "outgoing-link" + "outline" + "page-preview" + "properties" + "random-note" + "slash-command" + "slides" + "switcher" + "tag-pane" + "templates" + "word-count" + "workspaces" + "zk-prefixer" + ]; + hotkeys = { + "editor:swap-line-down" = [ + { + "modifiers" = [ "Alt" ]; + "key" = "ArrowDown"; + } + ]; + "editor:swap-line-up" = [ + { + "modifiers" = [ "Alt" ]; + "key" = "ArrowUp"; + } + ]; + "app:toggle-left-sidebar" = [ + { + "modifiers" = [ + "Mod" + "Shift" + ]; + "key" = "/"; + } + ]; + "app:toggle-right-sidebar" = [ + { + "modifiers" = [ + "Mod" + "Shift" + ]; + "key" = "\\"; + } + ]; + "window:reset-zoom" = [ + { + "modifiers" = [ "Mod" ]; + "key" = "0"; + } + ]; + "app:go-back" = [ + { + "modifiers" = [ "Alt" ]; + "key" = "ArrowLeft"; + } + ]; + "app:go-forward" = [ + { + "modifiers" = [ "Alt" ]; + "key" = "ArrowRight"; + } + ]; + }; + }; + }; + }; + + imports = [ ]; + + options.${feature}.enable = lib.mkEnableOption "enables ${feature}"; +} diff --git a/modules/nixos/bundles/desktop.nix b/modules/nixos/bundles/desktop.nix index adc24af..03a9da7 100644 --- a/modules/nixos/bundles/desktop.nix +++ b/modules/nixos/bundles/desktop.nix @@ -20,8 +20,6 @@ in cameractrls-gtk3 jellyfin-media-player # TODO: break out into separate configuration module - obsidian - # TODO: break out into separate configuration module onlyoffice-desktopeditors sleek-todo ];