emacs/dired: fix ranger oddities
Added two hacks to fix two obnoxious issues Ranger has, having to do with it failing to clean up after itself. In particular: 1. A left over mouse-1 bind that traps focus in a particular window (easy to get around with keyboard-based window switch commands, but this renders the mouse useless), 2. And the lingering ranger header bar (i.e. it doesn't clean up header-line-format). This commit also ensures Deer overrides dired if +ranger is enabled.
This commit is contained in:
parent
e76765e0b8
commit
ed69d580fb
1 changed files with 24 additions and 6 deletions
|
@ -72,21 +72,39 @@
|
||||||
:after dired
|
:after dired
|
||||||
:init
|
:init
|
||||||
;; set up image-dired to allow picture resize
|
;; set up image-dired to allow picture resize
|
||||||
(setq image-dired-dir (concat doom-cache-dir "image-dir"))
|
(setq image-dired-dir (concat doom-cache-dir "image-dir")
|
||||||
|
ranger-override-dired t)
|
||||||
:config
|
:config
|
||||||
(unless (file-directory-p image-dired-dir)
|
(unless (file-directory-p image-dired-dir)
|
||||||
(make-directory image-dired-dir))
|
(make-directory image-dired-dir))
|
||||||
|
|
||||||
(set-popup-rule! "^\\*ranger" :ignore t)
|
(set-popup-rule! "^\\*ranger" :ignore t)
|
||||||
|
|
||||||
(setq ranger-override-dired t
|
(defun +dired*cleanup-header-line ()
|
||||||
ranger-cleanup-on-disable t
|
"Ranger fails to clean up `header-line-format' when it is closed, so..."
|
||||||
ranger-omit-regexp "^\.DS_Store$"
|
(dolist (buffer (buffer-list))
|
||||||
|
(when (buffer-live-p buffer)
|
||||||
|
(with-current-buffer buffer
|
||||||
|
(when (equal header-line-format '(:eval (ranger-header-line)))
|
||||||
|
(setq header-line-format nil))))))
|
||||||
|
(advice-add #'ranger-revert :before #'+dired*cleanup-header-line)
|
||||||
|
|
||||||
|
(defun +dired*cleanup-mouse1-bind ()
|
||||||
|
"Ranger binds an anonymous function to mouse-1 after previewing a buffer
|
||||||
|
that prevents the user from escaping the window with the mouse. This command is
|
||||||
|
never cleaned up if the buffer already existed before ranger was initialized, so
|
||||||
|
we have to clean it up ourselves."
|
||||||
|
(when (window-live-p ranger-preview-window)
|
||||||
|
(with-current-buffer (window-buffer ranger-preview-window)
|
||||||
|
(local-unset-key [mouse-1]))))
|
||||||
|
(advice-add #'ranger-setup-preview :after #'+dired*cleanup-mouse1-bind)
|
||||||
|
|
||||||
|
(setq ranger-cleanup-on-disable t
|
||||||
ranger-excluded-extensions '("mkv" "iso" "mp4")
|
ranger-excluded-extensions '("mkv" "iso" "mp4")
|
||||||
ranger-deer-show-details nil
|
ranger-deer-show-details t
|
||||||
ranger-max-preview-size 10
|
ranger-max-preview-size 10
|
||||||
ranger-show-literal nil
|
ranger-show-literal nil
|
||||||
dired-omit-verbose nil))
|
ranger-hide-cursor nil))
|
||||||
|
|
||||||
|
|
||||||
(def-package! all-the-icons-dired
|
(def-package! all-the-icons-dired
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue