all repos — nixfiles @ 1678e79d4e6831ec2daaa376e04847b883318688

System and user configuration, managed by nix and home-manager

knowledge: init module

Alan Pearce
commit

1678e79d4e6831ec2daaa376e04847b883318688

parent

a1a4cec5045e55f6703086def1a711dd802f45d5

3 files changed, 86 insertions(+), 3 deletions(-)

changed files
M user/hosts/marvin.nix → user/hosts/marvin.nix
@@ -12,6 +12,7 @@ ../settings/darwin.nix
../settings/emacs.nix ../settings/fish.nix ../settings/git.nix + ../settings/knowledge.nix ../settings/nixpkgs.nix ../settings/ssh.nix ../settings/workstation.nix
M user/settings/emacs/init.el → user/settings/emacs/init.el
@@ -1123,9 +1123,12 @@ #'eglot-ensure)
:config (progn (when (assoc 'nix-mode eglot-server-programs) (setf (car (assoc 'nix-mode eglot-server-programs)) '(nix-mode nix-ts-mode))) - (nconc eglot-server-programs '((toml-ts-mode "taplo" "lsp" "stdio") - (just-ts-mode "just-lsp") - (fish-mode "fish-lsp" "start"))) + (nconc eglot-server-programs `(((toml-mode toml-ts-mode) . ("taplo" "lsp" "stdio")) + ((just-mode just-ts-mode) . ("just-lsp")) + (fish-mode . ("fish-lsp" "start")) + (markdown-mode . ,(eglot-alternatives '(("marksman" "server") + ("zk" "lsp") + "iwes"))))) (advice-add 'eglot--message :before-until (lambda (formatstring &rest rest) (s-starts-with-p "Connected!" formatstring))) (defun my/setup-eglot-eldoc ()
@@ -1162,6 +1165,19 @@
(use-package consult-eglot :commands (consult-eglot-symbols) :after eglot) + +(use-package zk + :config (progn + (setq zk-directory (expand-file-name "~/Sync/Notebook") + zk-file-extension "md") + (zk-setup-auto-link-buttons))) + +(use-package zk-consult + :config (progn + (setq zk-tag-search-function #'zk-consult-grep-tag-search + zk-search-function #'zk-consult-grep))) + +(use-package zk-index) ;;;; Reformat on save
A user/settings/knowledge.nix
@@ -0,0 +1,66 @@
+{ + config, + lib, + pkgs, + ... +}: +let + notebook = { + dir = "${config.home.homeDirectory}/Sync/Notebook"; + }; +in +{ + programs.zk = { + enable = true; + settings = { + inherit notebook; + filter = { + recents = "--sort created- --created-after 'last two weeks'"; + journal = "--sort created journal"; + }; + alias = { + bl = "zk list --link-to $@"; + conf = "$EDITOR \"$ZK_NOTEBOOK_DIR/.zk/config.toml\""; + paths = "zk list --quiet --format \"'{{path}}'\" --delimiter ' ' $@"; + unlinked-mentions = "zk list --mentioned-by $1 --no-linked-by $1"; + daily = "zk new --no-input '${notebook.dir}/journals'"; + dn = "zk daily"; + }; + tools = { + shell = lib.mkDefault "/bin/bash"; # for aliases, fish doesn't work so well + }; + }; + }; + + home.packages = with pkgs; [ + iwe + ]; + + programs.nixvim.plugins = { + zk = { + enable = true; + settings = { + picker = "telescope"; + }; + }; + lsp.servers.zk = { + enable = true; + }; + }; + + programs.emacs = { + extraPackages = + epkgs: + (with epkgs; [ + zk + zk-index + zk-consult + ]); + }; + + programs.zed-editor = { + extensions = [ + "IWE" + ]; + }; +}