From 70f3358ddfcbb3985270c99fdaefe7e0b19bc3df Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Wed, 3 Sep 2025 14:25:13 -0500 Subject: updated tasks --- todo.org | 294 +++++++++++++++++++++++++-------------------------------------- 1 file changed, 115 insertions(+), 179 deletions(-) (limited to 'todo.org') diff --git a/todo.org b/todo.org index f912ee11..e1d52c8a 100644 --- a/todo.org +++ b/todo.org @@ -1,5 +1,5 @@ * Emacs Open Work -** DOING [#A] Jumper Package +** DOING [#A] Jumper Package :enhancement: *** Specification **** variable:custom: jumper-max-locations maximum number of locations to store: default 10 @@ -110,7 +110,7 @@ Depending on context, can I add the - First few words of the line Do we think the reordering behavior when deleting locations might confuse users? How to simplify? What happens if a buffer is deleted that doesn't have a file associated with it? If we're using registers underneath, how do registers handle this? -** DOING [#A] Org Roam and Org Template Fixes +** DOING [#A] Org Roam and Org Template Fixes :bug: *** TODO [#B] Org Branch to Org Roam *** TODO [#B] Add Org Capture Template for Vocabulary Words *** DONE [#B] Fix Emacs Org Roam Template Errors @@ -139,9 +139,9 @@ The file was created, but does not come to the front The category value seems unaligned *** DONE [#A] Add Org Templates Back to Emacs Repository! CLOSED: [2025-09-01 Mon 12:51] -** TODO [#A] AI-Config: GPTel Add Ability to Save and Reload Conversations -** TODO [#A] Custom Function: Delete Whitespace From Region is Broken -** TODO [#A] Mu4e Fixes +** TODO [#A] GPTel Add Ability to Save and Reload Conversations :enhancement: +** TODO [#A] Custom Function: Delete Whitespace From Region is Broken :bug: +** TODO [#A] Mu4e Fixes :bug: *** DONE [#A] mu4e contacts not expanding on forwarding emails CLOSED: [2025-08-29 Fri 16:09] removed org-contacts functionaality and it returned! @@ -149,9 +149,10 @@ removed org-contacts functionaality and it returned! CLOSED: [2025-08-30 Sat 12:12] https://github.com/jeremy-compostella/org-msg *** TODO [#A] Fix org-contacts functionality -** TODO [#A] file-config.el cj/xdg-open blocks Emacs process +** TODO [#A] Add "save all attachments" to mu4e :enhancement: +** TODO [#A] file-config.el cj/xdg-open blocks Emacs process :bug: Should change to non-blocking -- maybe use Emacs internal async? -** TODO [#A] Make org mode buffers swap with shift-meta +** TODO [#A] Make org mode buffers swap with shift-meta :enhancement: (org-shiftmetaright) should be overridden with (buf-move-right) (org-shiftmetaleft) should be overridden with (buf-move-left) @@ -187,25 +188,6 @@ Without knowing your specific pain points, I'll recommend several high-value imp *** Recommended Code Changes -**** 1. Enhanced Command Completion with =pcomplete= and =company-mode= - -#+begin_src emacs-lisp -;; Better completion for eshell -(use-package pcmpl-args - :after eshell) - -;; Company mode integration for eshell -(use-package company-shell - :after (eshell company) - :config - (add-to-list 'company-backends 'company-shell) - (add-hook 'eshell-mode-hook - (lambda () - (setq-local company-minimum-prefix-length 2) - (setq-local company-idle-delay 0.1) - (company-mode 1)))) -#+end_src - **** 2. Improved Directory Navigation with =eshell-z= #+begin_src emacs-lisp @@ -217,29 +199,6 @@ Without knowing your specific pain points, I'll recommend several high-value imp #+end_src -**** 3. Better History with =eshell-up= and Enhanced History Search - -#+begin_src emacs-lisp -(use-package eshell-up - :after eshell - :config - (defalias 'eshell/up 'eshell-up) - (defalias 'eshell/up-peek 'eshell-up-peek)) - -;; Enhance history searching -(defun cj/eshell-history-search () - "Search eshell history with completion." - (interactive) - (insert - (completing-read "Eshell history: " - (delete-dups - (ring-elements eshell-history-ring))))) - -(add-hook 'eshell-mode-hook - (lambda () - (define-key eshell-mode-map (kbd "C-r") 'cj/eshell-history-search))) -#+end_src - **** 4. Directory Tracking and Shell Command Execution Improvements #+begin_src emacs-lisp @@ -273,11 +232,6 @@ If region is active, use that, otherwise use the current line." **** 5. Enhanced Visual Output and ANSI Colors #+begin_src emacs-lisp -;; Improve how eshell handles ANSI escape sequences -(use-package eshell-syntax-highlighting - :after esh-mode - :config - (eshell-syntax-highlighting-global-mode +1)) ;; Better handling of visual commands (defun cj/eshell-exec-visual-and-kill () @@ -373,109 +327,9 @@ If region is active, use that, otherwise use the current line." (error "Not in a project")))) #+end_src -*** Explanation of Key Improvements - -1. *pcmpl-args*: Provides better argument completion for command-line tools. - -2. *company-shell*: Brings Emacs' powerful completion framework to eshell with support for commands, environment variables, and more. - -3. *eshell-z*: Implements z/autojump functionality, allowing you to jump to frequently visited directories with minimal keystrokes. - -4. *eshell-up*: Makes navigating up directories easier with the =up= command. - -5. *History searching*: The custom function provides interactive history searching with completion. - -6. *Directory tracking and buffer naming*: Renames eshell buffers to include the current directory, making multiple eshell sessions easier to manage. - -7. *Layout improvements*: The smart window splitting function determines the best way to display eshell based on your current window configuration. - -These enhancements should make your eshell experience more productive while maintaining the flexibility and integration with Emacs that makes eshell valuable. - ** TODO [#B] Add All ERT Tests Into Separate Directory Tests should be added to a separate directory rather than the end of each elisp file. Gather them together, move them there, and make it easy to run tests per module and workflow. -** TODO [#B] Get Tufte.css working and as a separate entry -Below is one way to get Org-mode’s HTML exporter to play nicely with Tufte-CSS. The basic recipe is: - -1. Inject Tufte’s stylesheet into every HTML export -2. Teach Org to emit the little “margin-toggle” + “sidenote” markup that tufte.css expects for footnotes -3. (Optionally) wrap images in
so you get tufte-style captions out of the box - -Along the way you’ll see where Org’s default HTML‐classes line up with tufte.css and where you have to override them. - -— 1 Inject tufte.css into your exports -Put tufte.css somewhere your exported HTML can see it (for example -~/.emacs.d/assets/tufte.css or a URL on your webserver). Then in your init.el: - -(with-eval-after-load 'ox-html -;; 1a) tell Org to link in your tufte.css -(setq org-html-head-extra -"") -;; 1b) enable HTML5 “fancy” output (so you get
around images) -(setq org-html-html5-fancy t -org-html-inline-images t)) - -— 2 Turn Org footnotes into Tufte sidenotes -By default Org emits -[1] -…and then a big =
= at the bottom. - -Tufte-CSS wants each footnote inline, wrapped in - - -…your note… - -We can override two Org variables: - -(with-eval-after-load 'ox-html -;; format of each inline footnote reference -(setq org-html-footnote-format -(concat -"" -"" -"%2$s")) -;; drop Org’s default footnote list at the end -(setq org-html-footnote-separator "")) - -Once you do that, exporting an Org file with footnotes will generate the markup tufte.css needs to float them in the margin. - -— 3 (Optionally) get
+
around images -If you set =org-html-html5-fancy= to t (see step 1) Org will automatically emit: - -
- -
Your caption
-
- -and tufte.css already has rules for =
= etc. - -— 4 Common pitfalls -• Make sure your href in =org-html-head-extra= actually points to the css that the browser can load (absolute vs. relative). -• If you still see a “Footnotes” section at the bottom, double-check that =org-html-footnote-separator= is set to the empty string and that your init-file got re-evaluated. -• On Windows or if you’re testing locally, run e.g. =python3 -m http.server= inside your export folder so your browser can fetch the CSS. - -— 5 Unit test for your footnote hack -Drop this in =~/.emacs.d/tests/test-org-tufte.el= and run =M-x ert RET t RET=: - -(require 'ert) -;; load your config; adjust the path if necessary -(load-file "~/.emacs.d/init.el") - -(ert-deftest org-tufte-footnote-format-test () -"Ensure each footnote reference becomes a margin-toggle + sidenote." -(let/ ((id "fn:42") -(content "My note.") -(html (format org-html-footnote-format id content))) -(should (string-match-p "class=\"margin-toggle\"" html)) -(should (string-match-p "My note\\." html)) -;; it must not accidentally reintroduce Org’s bottom-of-page footnote div -(should-not (string-match-p "div id=\"footnotes\"" html)))) - -Once that test passes, you know your footnotes are being rewritten into Tufte-style side notes. From there, you can sprinkle in additional filters (e.g. wrap =
= in a =.sidenote= class, override list/p table styles, etc.) or just let the rest of tufte.css style Org’s default tags (h1, p, ul, table, code, etc.). - -Enjoy your beautifully-typeset Org → HTML exports in true Tufte style! - ** TODO [#B] Org Agenda Work *** TODO [#B] Add Past Due to F8 Agenda Summary in Emacs *** TODO [#B] Separate B and C in F8 Agenda Summary in Emacs @@ -886,24 +740,6 @@ This appears to work with emacs -q. What's up with your config? Captured On: [2025-06-07 Sat 13:29] ** TODO [#C] Emacs Change Appropriate Use-package Installs to :vc especially where you're cloning them to provide fixes -** TODO [#C] Emacs: Add Reverso Functionality -https://sqrtminusone.xyz/packages/reverso/ -check his config for a usage example - -Reverso - -reverso.el is a package of mine that provides Emacs interface for https://reverso.net. -#+begin_src emacs-lisp - (use-package reverso - :straight (:host github :repo "SqrtMinusOne/reverso.el") - :init - (my-leader-def "ar" #'reverso) - :commands (reverso) - :config - (setq reverso-languages '(russian english german)) - (reverso-history-mode)) -#+end_src - ** TODO [#C] Emacs Config: Narrowing Org doesn't allow refresh by type After generating an org agenda list, I can narrow the type to all DONE or IN-PROGRESS. However when I use my custom functions to just get the agenda for the current buffer, I can't. The scope has now widened and the refresh is for all buffers. ** TODO [#C] Add a Restrict to Subtree Org Agenda Command @@ -967,13 +803,6 @@ Quick alternative: if you don’t need the full agenda machinery (dates, deadlin With this in place you effectively get an agenda tailored to exactly the bit of tree you’re working on. ** TODO [#C] Find Another Keymapping for Emojify -** TODO [#D] Install ZOxide Integration into Emacs -[[https://gitlab.com/Vonfry/zoxide.el][Vonfry / zoxide.el · GitLab]] -Captured On: [2025-06-07 Sat 17:11] -** TODO [#D] manateelazycat/awesome-tray: Hide mode-line, display necessary information at right of minibuffer. -[[https://github.com/manateelazycat/awesome-tray][manateelazycat/awesome-tray: Hide mode-line, display necessary information at right of minibuffer.]] -Captured On: [2025-06-07 Sat 13:29] -** TODO [#D] ryuslash/mode-icons: Show icons instead of mode names ** TODO [#D] Emacs Signal Client *** TODO investigate: net/signel.org · master · undefined · GitLab [[https://gitlab.com/jaor/elibs/-/blob/master/net/signel.org][net/signel.org · master · undefined · GitLab]] @@ -1044,3 +873,110 @@ Captured On: [2025-08-13 Wed 19:29] ** gregoryg/emacs-gregoryg: My emacs settings for use across Linux, Windows, OS X [[https://github.com/gregoryg/emacs-gregoryg?tab=readme-ov-file#gptel---llms-in-markdown-and-org-mode][gregoryg/emacs-gregoryg: My emacs settings for use across Linux, Windows, OS X]] Captured On: [2025-08-12 Tue 16:31] +** TODO [#D] manateelazycat/awesome-tray: Hide mode-line, display necessary information at right of minibuffer. +[[https://github.com/manateelazycat/awesome-tray][manateelazycat/awesome-tray: Hide mode-line, display necessary information at right of minibuffer.]] +Captured On: [2025-06-07 Sat 13:29] +** TODO [#D] Install ZOxide Integration into Emacs +[[https://gitlab.com/Vonfry/zoxide.el][Vonfry / zoxide.el · GitLab]] +Captured On: [2025-06-07 Sat 17:11] +** TODO [#D] ryuslash/mode-icons: Show icons instead of mode names +** TODO [#C] Emacs: Add Reverso Functionality +https://sqrtminusone.xyz/packages/reverso/ +check his config for a usage example + +Reverso + +reverso.el is a package of mine that provides Emacs interface for https://reverso.net. +#+begin_src emacs-lisp + (use-package reverso + :straight (:host github :repo "SqrtMinusOne/reverso.el") + :init + (my-leader-def "ar" #'reverso) + :commands (reverso) + :config + (setq reverso-languages '(russian english german)) + (reverso-history-mode)) +#+end_src + +** TODO [#B] Get Tufte.css working and as a separate entry +Below is one way to get Org-mode’s HTML exporter to play nicely with Tufte-CSS. The basic recipe is: + +1. Inject Tufte’s stylesheet into every HTML export +2. Teach Org to emit the little “margin-toggle” + “sidenote” markup that tufte.css expects for footnotes +3. (Optionally) wrap images in
so you get tufte-style captions out of the box + +Along the way you’ll see where Org’s default HTML‐classes line up with tufte.css and where you have to override them. + +— 1 Inject tufte.css into your exports +Put tufte.css somewhere your exported HTML can see it (for example +~/.emacs.d/assets/tufte.css or a URL on your webserver). Then in your init.el: + +(with-eval-after-load 'ox-html +;; 1a) tell Org to link in your tufte.css +(setq org-html-head-extra +"") +;; 1b) enable HTML5 “fancy” output (so you get
around images) +(setq org-html-html5-fancy t +org-html-inline-images t)) + +— 2 Turn Org footnotes into Tufte sidenotes +By default Org emits +[1] +…and then a big =
= at the bottom. + +Tufte-CSS wants each footnote inline, wrapped in + + +…your note… + +We can override two Org variables: + +(with-eval-after-load 'ox-html +;; format of each inline footnote reference +(setq org-html-footnote-format +(concat +"" +"" +"%2$s")) +;; drop Org’s default footnote list at the end +(setq org-html-footnote-separator "")) + +Once you do that, exporting an Org file with footnotes will generate the markup tufte.css needs to float them in the margin. + +— 3 (Optionally) get
+
around images +If you set =org-html-html5-fancy= to t (see step 1) Org will automatically emit: + +
+ +
Your caption
+
+ +and tufte.css already has rules for =
= etc. + +— 4 Common pitfalls +• Make sure your href in =org-html-head-extra= actually points to the css that the browser can load (absolute vs. relative). +• If you still see a “Footnotes” section at the bottom, double-check that =org-html-footnote-separator= is set to the empty string and that your init-file got re-evaluated. +• On Windows or if you’re testing locally, run e.g. =python3 -m http.server= inside your export folder so your browser can fetch the CSS. + +— 5 Unit test for your footnote hack +Drop this in =~/.emacs.d/tests/test-org-tufte.el= and run =M-x ert RET t RET=: + +(require 'ert) +;; load your config; adjust the path if necessary +(load-file "~/.emacs.d/init.el") + +(ert-deftest org-tufte-footnote-format-test () +"Ensure each footnote reference becomes a margin-toggle + sidenote." +(let/ ((id "fn:42") +(content "My note.") +(html (format org-html-footnote-format id content))) +(should (string-match-p "class=\"margin-toggle\"" html)) +(should (string-match-p "My note\\." html)) +;; it must not accidentally reintroduce Org’s bottom-of-page footnote div +(should-not (string-match-p "div id=\"footnotes\"" html)))) + +Once that test passes, you know your footnotes are being rewritten into Tufte-style side notes. From there, you can sprinkle in additional filters (e.g. wrap =
= in a =.sidenote= class, override list/p table styles, etc.) or just let the rest of tufte.css style Org’s default tags (h1, p, ul, table, code, etc.). + +Enjoy your beautifully-typeset Org → HTML exports in true Tufte style! + -- cgit v1.2.3