From 3101834051653eb39b54d916ed0f2a183bc6dc48 Mon Sep 17 00:00:00 2001 From: Thierry Pouplier Date: Sat, 7 Mar 2026 18:36:36 -0500 Subject: [PATCH] Update generated emacs config --- doom/.config/doom/config.el | 90 ++++++++++++++++++++++++++++++------- 1 file changed, 75 insertions(+), 15 deletions(-) diff --git a/doom/.config/doom/config.el b/doom/.config/doom/config.el index 4e610fc..0a5b590 100644 --- a/doom/.config/doom/config.el +++ b/doom/.config/doom/config.el @@ -336,7 +336,7 @@ ) ("wP" "Installation Bombardier" ((agenda "" - ((org-agenda-span 60) + ((org-agenda-span 90) (org-agenda-start-day "2026-01-29") (org-agenda-overriding-header "📅 Installation Bombardier") (org-agenda-prefix-format " %12t") ;; reserve time space @@ -397,6 +397,51 @@ ) ) +(after! org + ;; Ensure exported HTML opens in the system browser, not inside Emacs + (setq org-file-apps + (append '(("\\.x?html?\\'" . default)) + (assq-delete-all "\\.x?html?\\'" org-file-apps)))) + +(after! grip-mode + (setq grip-binary-path "/home/tpouplier/.local/bin/grip") + ) + +(after! markdown-mode + (setq markdown-header-scaling t) + (custom-set-faces + '(markdown-header-face-1 ((t + :inherit markdown-header-face + :foreground "#fabd2f" + :height 1.8 + :weight extra-bold))) + '(markdown-header-face-2 ((t + :inherit markdown-header-face + :foreground "#fe8019" + :height 1.4 + :weight extra-bold))) + '(markdown-header-face-3 ((t + :inherit markdown-header-face + :foreground "#fb4934" + :height 1.2 + :weight bold))) + '(markdown-header-face-4 ((t + :inherit markdown-header-face + :foreground "#b8bb26" + :height 1.1 + :weight bold))) + '(markdown-header-face-5 ((t + :inherit markdown-header-face + :foreground "#83a598" + :height 1.0 + :weight bold))) + '(markdown-header-face-6 ((t + :inherit markdown-header-face + :foreground "#d3869b" + :height 1.0 + :weight bold)))) + ) + ;; Enable plantuml-mode for PlantUML files (add-to-list 'auto-mode-alist '("\\.plantuml\\'" . plantuml-mode)) @@ -988,7 +1033,9 @@ DIFF: ) ;; Dirvish config -(after! dirvish +(after! (dirvish dired) + (require 'async) + (dired-async-mode 1) ;; Display icons, file size, timestamps, etc. (setq dirvish-attributes '(nerd-icons @@ -1021,7 +1068,10 @@ DIFF: ("d" "~/Downloads/" "Downloads") ("u" "/run/media" "Mounted drives") ("t" "~/.local/share/Trash/files/" "Trash") - ))) + )) + (setq dirvish-yank-use-rsync t) + (setq dirvish-yank-rsync-args '("-ah" "--info=progress2")) +) ;; Use `p` to open the yank menu (map! :after dirvish-yank @@ -1475,7 +1525,7 @@ Returns nil if no range found (safe, non-blocking)." (all-resolved t)) (when (and (string-match "ids(\\(.*?\\))" clean) (not (string-empty-p (s-trim (match-string 1 clean))))) - (dolist (tid (split-string (match-string 1 clean) "[ ,]+" t)) + (dolist (tid (split-string (match-string 1 clean) "[[:space:],]+" t)) (let* ((clean-id (replace-regexp-in-string "[\"']\\|id: " "" tid)) (pos (org-id-find clean-id t)) (computed-end (gethash clean-id task-end-map)) @@ -1497,6 +1547,9 @@ Returns nil if no range found (safe, non-blocking)." ;; Priority 2: Use range end if FIXED ((string-equal "t" (org-entry-get nil "FIXED")) (gortium/org--get-range-end m)) + ;; Priority 3: Fallback to existing range end if it exists + ((gortium/org--get-range-end m) + (gortium/org--get-range-end m)) (t nil)))))) (t nil))) @@ -1707,10 +1760,27 @@ Returns list of task IDs involved in cycles, or nil if no cycles found." (push task done-this-loop)))))))) (setq remaining (cl-set-difference remaining done-this-loop)))) + ;; --- DIAGNOSTICS FOR UNSCHEDULED TASKS --- + (if remaining + (progn + (message "!!! WARNING: %d tasks were NOT scheduled !!!" (length remaining)) + (dolist (task remaining) + (pcase-let ((`(,_buf ,pos ,id ,_eff ,blocker ,_fix ,_sch ,_off) task)) + (let* ((blocker-string (format "%s" blocker)) + (clean-blocker (if (string-match "ids(\\(.*?\\))" blocker-string) + (match-string 1 blocker-string) + "None"))) + (message " -> Task [%s] at pos %s is BLOCKED by: %s" + id (marker-position pos) clean-blocker))))) + (message "=== All tasks scheduled successfully! ===")) + ;; 3. CLEANUP (setq org-element-use-cache t) (org-element-cache-reset 'all) - (message "=== Scheduler completed (%d tasks, %d iterations) ===" (length all-tasks) iter)))) + (message "=== Scheduler completed (%d tasks, %d iterations) ===" (length all-tasks) iter) + ;; (gortium/org-rollup-parent-ranges) + ;; (message "=== All Scheduling and Roll-ups Complete ===") + ))) ;; --------------------------------------------- (defun gortium/org-ensure-task-properties () @@ -1937,13 +2007,3 @@ fallback to today's daily note. Ensures the daily has an Org-roam ID." (message "Task refiled under '%s' in %s" headline (file-name-nondirectory daily-file))))) - -;; Org-edna for advanced task dependencies -(use-package! org-edna - :after org - :config - (setq org-edna-use-inheritance t) - (org-edna-mode 1) - (map! :map org-mode-map - :localleader - :desc "Edit Edna rules" "E" #'org-edna-edit))