local and remote setup for denote
This commit is contained in:
parent
0259b4b5ab
commit
82f099db48
|
|
@ -285,7 +285,9 @@
|
|||
(use-package denote :ensure t
|
||||
:commands (my/search-denote-notes)
|
||||
:bind (("C-x n f" . #'denote-open-or-create)
|
||||
("C-x n n" . #'denote)
|
||||
("C-x n n" . #'my/denote-create-note)
|
||||
("C-x n d s" . #'my/denote-switch-directory)
|
||||
("C-x n d d" . #'my/denote-echo-current-directory)
|
||||
("C-x n c" . #'denote-region)
|
||||
("C-x n !" . #'denote-date)
|
||||
("C-x n z" . #'denote-signature)
|
||||
|
|
@ -302,10 +304,58 @@
|
|||
("C-x n r f" . #'denote-rename-file-using-front-matter))
|
||||
|
||||
:config
|
||||
|
||||
(defvar my/denote-local-notes-directory "~/notes/")
|
||||
(defvar my/denote-remote-notes-directory "/ssh:lkn@alioth.uberspace.de:/home/lkn/notes/")
|
||||
(setq denote-directory my/denote-local-notes-directory)
|
||||
|
||||
(defun my/denote-echo-current-directory ()
|
||||
"Echo the current value of denote-directory."
|
||||
(interactive)
|
||||
(message "Current Denote directory: %s" denote-directory))
|
||||
|
||||
(defun my/denote-directory-segment ()
|
||||
"Return the current Denote directory for the mode line."
|
||||
(when (bound-and-true-p denote-directory)
|
||||
(format " Denote:%s " (file-name-nondirectory (directory-file-name denote-directory)))))
|
||||
|
||||
|
||||
(defun my/denote-switch-directory ()
|
||||
"Switch current denote working directory."
|
||||
(interactive)
|
||||
(let ((new-dir (if (string= denote-directory my/denote-local-notes-directory)
|
||||
my/denote-remote-notes-directory
|
||||
my/denote-local-notes-directory)))
|
||||
(setq denote-directory new-dir)
|
||||
(message "Denote directory switched to %s" new-dir)))
|
||||
|
||||
(defun my/denote-use-both-directories (orig-fun &rest args)
|
||||
"Temporarily use both directories for a given function."
|
||||
(let ((original-dir denote-directory)
|
||||
(result nil))
|
||||
(setq denote-directory my/denote-local-notes-directory)
|
||||
(setq result (apply orig-fun args))
|
||||
(setq denote-directory my/denote-remote-notes-directory)
|
||||
(setq result (append result (apply orig-fun args)))
|
||||
(setq denote-directory original-dir)
|
||||
result))
|
||||
|
||||
(defun my/denote-create-note ()
|
||||
"Create a note in directory of choice."
|
||||
(interactive)
|
||||
(let* ((dirs (list my/denote-local-notes-directory my/denote-remote-notes-directory))
|
||||
(chosen-dir (completing-read "Choose directory: " dirs)))
|
||||
(let ((denote-directory chosen-dir))
|
||||
(call-interactively #'denote))))
|
||||
|
||||
|
||||
(advice-add 'denote-directory-files :around #'my/denote-use-both-directories)
|
||||
(advice-add 'denote-directory-subdirectories :around #'my/denote-use-both-directories)
|
||||
|
||||
(defun my/search-denote-notes ()
|
||||
"Use ripgrep to search denote notes."
|
||||
(interactive)
|
||||
(let ((default-directory "/ssh:lkn@alioth.uberspace.de:/home/lkn/notes/"))
|
||||
(let ((default-directory denote-directory))
|
||||
(consult-ripgrep)))
|
||||
|
||||
(let ((map dired-mode-map))
|
||||
|
|
@ -314,9 +364,16 @@
|
|||
(define-key map (kbd "C-x n k") #'denote-dired-rename-marked-files-with-keywords)
|
||||
(define-key map (kbd "C-x n r r") #'denote-dired-rename-files)
|
||||
(define-key map (kbd "C-x n r f") #'denote-dired-rename-marked-files-using-front-matter))
|
||||
|
||||
;; show current denote directory in modeline
|
||||
(with-eval-after-load 'doom-modeline
|
||||
(doom-modeline-def-segment denote-directory
|
||||
(my-denote-directory-segment))
|
||||
(setq doom-modeline-format-left
|
||||
(append doom-modeline-format-left
|
||||
'(denote-directory))))
|
||||
|
||||
(setq denote-directory (expand-file-name "/ssh:lkn@alioth.uberspace.de:/home/lkn/notes/")
|
||||
denote-save-buffers nil
|
||||
(setq denote-save-buffers nil
|
||||
denote-known-keywords '("emacs" "golang" "dev")
|
||||
denote-infer-keywords t
|
||||
denote-sort-keywords t
|
||||
|
|
|
|||
Loading…
Reference in New Issue