feat(emacs): Dirvish

This commit is contained in:
Madeleine Sydney
2025-03-10 15:16:47 -06:00
parent ad6b4c2710
commit 4f51df603f
2 changed files with 38 additions and 4 deletions

View File

@@ -50,6 +50,7 @@
(require 'syd-autosave)
(require 'syd-completion)
(require 'syd-custom)
(require 'syd-dired)
(require 'syd-display-startup-time)
(require 'syd-ediff)
(require 'syd-editing)
@@ -66,3 +67,4 @@
(require 'syd-tooling)
(require 'syd-tramp)
(require 'syd-ui)

View File

@@ -1,17 +1,38 @@
;;; syd-dired.el -*- lexical-binding: t; -*-
(defun syd-dired-here ()
(interactive)
(dired default-directory))
(use-package dired
;; Built-in to Emacs.
:straight nil
:general
(:keymaps 'syd-leader-open-map
"-" #'syd-dired-here)
(:keymaps 'syd-leader-project-map
"-" #'project-dired)
:commands dired-jump
:custom (;; When there are other Dired windows open, suggest them as targets
;; for renaming/copying.
(dired-dwim-target t)
;; Don't prompt to revert, just do it.
(dired-auto-revert-buffer #'dired-buffer-stale-p)
;; Always copy/delete recursively
(dired-listing-switches
(mapconcat
#'identity
'("-l" ; Mandatory!
"--almost-all" ; Show hidden files; omit '.' and '..'.
"--human-readable" ; Display sizes in human-readable units.
"--time-style=+") ; Omit times/dates.
" "))
;; Always copy recursively
(dired-recursive-copies 'always)
;; Prompt for confirmation for each top-level directory being
;; deleted.
(dired-recursive-deletes 'top)
(dired-create-destination-dirs 'ask)
(dired-create-destination-dirs-on-trailing-dirsep t)
;; Where to store image caches
(image-dired-dir (concat syd-cache-dir "image-dired/"))
(image-dired-db-file (concat image-dired-dir "db.el"))
@@ -32,7 +53,18 @@
t))))
(use-package diredfl
:hook (dired-mode . diredfl-mode)
:hook (dirvish-directory-view-mode . diredfl-mode))
:hook ((dired-mode . diredfl-mode)
(dirvish-directory-view-mode . diredfl-mode)))
(use-package dirvish
:after dired
:custom ((dirvish-cache-dir (file-name-concat syd-cache-dir "dirvish/"))
(dirvish-reuse-session 'open)
(dirvish-default-layout '(0 0.4 0.6))
(dirvish-hide-details '(dirvish dirvish-fd dirvish-side)))
:config
;; Fix random void-variable errors.
(require 'autorevert)
(dirvish-override-dired-mode 1))
(provide 'syd-dired)