diff --git a/notetaking/flake.nix b/notetaking/flake.nix index fba1029..8cd3d2b 100644 --- a/notetaking/flake.nix +++ b/notetaking/flake.nix @@ -52,8 +52,10 @@ scheme-medium latexmk # File '*.sty' not found - wrapfig capt-of + preview + standalone + wrapfig ])) # required by +jupyter (pkgs.python314.withPackages (ps: with ps; [ jupyter ])) diff --git a/notetaking/init.el b/notetaking/init.el index db72510..ccee2ab 100644 --- a/notetaking/init.el +++ b/notetaking/init.el @@ -114,6 +114,23 @@ (pdf-loader-install) ) +(use-package org-preview-html ;; https://github.com/jakebox/org-preview-html + :ensure t + :bind (:map org-mode-map ("C-c p" . org-preview-html-mode)) + :custom + (org-preview-html-viewer 'eww) ;; Use built-in EWW browser + (org-preview-html-refresh-configuration 'save) + (add-hook 'eww-mode-hook (lambda () (display-line-numbers-mode -1))) + ;; Pin the preview window layout to the right + (add-to-list 'display-buffer-alist + '("\\*eww\\*" + (display-buffer-in-direction) + (direction . right) + (window-width . 0.5) + ) + ) + ) + (use-package olivetti :ensure t ) ;; Activate with M-x olivetti-mode @@ -136,13 +153,6 @@ (auto-dark-mode) ) -;; TODO Make M-x also fuzzy -;; TODO Make Find file fuzzy -;; TODO Save file search history across sessions - -;; TODO Clicking links shows the content of that link in the adjacent pane. Often there is a PDF in that pane. I would like to choose to open links in the current pane instead. Idk, is Shift+Click or some actual keybind possible? Also, what is the current keybind for following links using key strokes? -;; TODO Is there some quicker way to switch between buffers, other than using the Buffer tab in the Menu bar, or :b with matching? - ;; TODO org-roam stores everything with a prefix. Is there a way to disable that or not? ;; TODO Put exports in their own directory? (now filename-prefix.pdf) ;; TODO Put dailies in "journals" instead of "daily" @@ -150,6 +160,7 @@ ;; Additional package to explore ;; TODO https://magit.vc/ <-> Nextcloud WebDAV? What about mobile? FolderSync seems unreliable (currently using for LogSeq, often reports failures without actually being recently modified files.) I have my own Git server, but what about keys - I don't really like just making new keysets for this..? +;; TODO I was thinking of syncing (1-way) Org TO-DO's to CalDav (Nextcloud), new calendar, so I can quickly see them in my tasklist. (https://github.com/dengste/org-caldav) ;; Turn on Auto Fill mode automatically in Text mode and related modes (see Hooks). ;; TODO (add-hook 'text-mode-hook 'auto-fill-mode) @@ -159,12 +170,8 @@ ;; TODO Spellchecking (UK & Dutch) ;; TODO Some automation to create anki cards intext without having to write the boilerplate -;; TODO Currently, failing exports (latexmk) just show that something has gone wrong. I have to run the command manually to see the output. Is there some log buffer or something? - -;; TODO Is there some way to split the "org-mode/org-roam" environment from the rest of the config? Say that I want to use this for editing programming languages in the future too? - -;; TODO I was thinking of syncing (1-way) Org TO-DO's to CalDav (Nextcloud), new calendar, so I can quickly see them in my tasklist. (https://github.com/dengste/org-caldav) ;; TODO Finally, compare experience to organice https://organice.200ok.ch/ -;; TODO Remember collapse states in files +;; TODO org-compile-file: File "/tmp/nix-shell.UEk6Ye/orgtexcJso3E.dvi" wasn’t produced Please adjust ‘dvipng’ part of ‘org-preview-latex-process-alist’. + diff --git a/notetaking/modules/my-org.el b/notetaking/modules/my-org.el index 93beabd..a71632e 100644 --- a/notetaking/modules/my-org.el +++ b/notetaking/modules/my-org.el @@ -23,11 +23,31 @@ :custom (org-hide-emphasis-markers t) ;; Required for org-appear to work (org-pretty-entities t) - (org-image-actual-width nil) ;; Allows resizing images + (org-image-actual-width nil) ;; Allow resizing images (org-link-window-setup 'current-window) ;; Force links to open in the current window (org-startup-folded 'showall) ;; https://orgmode.org/manual/Initial-visibility.html + (org-html-with-latex 'lualatex-svg) ;; Tell HTML export to use SVG image pipeline :config (setq org-latex-compiler "lualatex") + + ;; 1. Setup DVI-based LuaLaTeX -> SVG + (setq org-preview-latex-process-alist + '((lualatex-svg + :programs ("dvilualatex" "dvisvgm") + :description "dvi > svg" + :message "you need to install dvilualatex and dvisvgm." + :image-input-type "dvi" + :image-output-type "svg" + :image-sie-adjust (1.0 . 1.0) + :latex-compiler ("dvilualatex -interaction nonstopmode -output-directory %o %f") + :image-converter ("dvisvgm %f --no-fonts --bbox=min --scale=%S --output=%O") + )) + ) + + (setq org-preview-latex-default-process 'lualatex-svg) + (add-to-list 'org-latex-packages-alist '("" "algorithm" t)) + (add-to-list 'org-latex-packages-alist '("noend" "algpseudocode" t)) + (setq org-link-frame-setup '((vm . vm-visit-folder-other-frame) (vm-mail . vm-mail-other-frame) @@ -36,10 +56,7 @@ (wl . wl-other-frame))) (setq org-todo-keywords '((sequence "TODO" "DOING" "|" "DONE" "SKIPPED"))) - ) ;; TODO How to configure keybinds from below? - ;; Keybinds - ;(global-set-key (kbd "C-c a") #'org-agenda) - ;(global-set-key (kbd "C-c c") #'org-capture) + ) (use-package org-roam :ensure t @@ -93,32 +110,3 @@ ("C-c i" . org-download-clipboard) ) -;; Prettifying - -;(use-package org-appear - ;:ensure t - ;:hook (org-mode . org-appear-mode)) - -;(use-package org-fragtog - ;:ensure t - ;:hook (org-mode . org-fragtog-mode)) - -(use-package org-appear - :ensure t - :hook (org-mode . org-appear-mode) - :custom - (org-appear-trigger 'manual) - :config - (add-hook 'org-mode-hook - (lambda () - (add-hook 'evil-insert-state-entry-hook #'org-appear-manual-start nil t) - (add-hook 'evil-insert-state-exit-hook #'org-appear-manual-stop nil t)))) - -(use-package org-fragtog - :ensure t - :hook (org-mode . org-fragtog-mode) - :config - (add-hook 'org-mode-hook - (lambda () - (add-hook 'evil-insert-state-entry-hook (lambda () (org-fragtog-mode -1)) nil t) - (add-hook 'evil-insert-state-exit-hook (lambda () (org-fragtog-mode 1)) nil t))))