From d651603cf14fc1481345cbf6c3b79757ad58ea60 Mon Sep 17 00:00:00 2001 From: Alexander Rosenberg Date: Thu, 27 Aug 2026 02:09:11 -0700 Subject: [PATCH] Fix some stuff --- init.el | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/init.el b/init.el index 5d69d68..bf96d4c 100644 --- a/init.el +++ b/init.el @@ -3272,8 +3272,6 @@ ARG is the same as for either of the above functions." ("" . dired-mouse-find-file)) :hook (((dirvish-directory-view-mode dired-mode dirvish-mode) . my/-setup-dirvish-lines) - ;; ((dirvish-directory-view-mode dired-mode dirvish-mode) . - ;; auto-revert-mode) ((dirvish-mode dired-mode) . my/-setup-dirvish-mouse)) :custom (dirvish-subtree-always-show-state t) @@ -3369,7 +3367,7 @@ ARG is the same as for either of the above functions." (kbd "M-t") #'dirvish-layout-toggle (kbd "M-s") #'dirvish-setup-menu (kbd "M-e") #'dirvish-emerge-menu - (kbd "M-j") #'dirvish-fd-jump + (kbd "M-j") #'dirvish-fd (kbd "/") #'dirvish-fd (kbd "?") #'dirvish-dispatch) (dirvish-override-dired-mode) @@ -3379,7 +3377,30 @@ ARG is the same as for either of the above functions." (when (file-directory-p file) `(shell . ("eza" "-la" "--color=always" "--icons" "--group-directories-first" ,file)))) - (add-to-list 'dirvish-preview-dispatchers 'eza)) + (add-to-list 'dirvish-preview-dispatchers 'eza) + ;; Fix freeze on deleting a directory that is expanded + (defun my/-dirvish-fix-dired-internal-do-deletions + (oldfun l arg &optional trash) + (let (need-restore) + (save-excursion + (cl-loop for (name . marker) in l + do (goto-char marker) + when (dirvish-subtree--expanded-p) + do (progn (dired-next-line 1) + (dirvish-subtree-remove) + (push name need-restore)))) + (unwind-protect + (funcall oldfun l arg trash) + (save-excursion + ;; re-expand all closed sub-trees that were not deleted + (goto-char (point-min)) + (while (not (eobp)) + (when-let* ((file (ignore-errors (dired-get-filename)))) + (when (member file need-restore) + (dirvish-subtree-toggle))) + (forward-line)))))) + (advice-add 'dired-internal-do-deletions :around + #'my/-dirvish-fix-dired-internal-do-deletions)) ;; web stuff (when-let* ((exec (cl-find-if #'executable-find