diff --git a/users/crumb/programs/emacs/init.el b/users/crumb/programs/emacs/init.el index a5ecbcc..8994dd4 100755 --- a/users/crumb/programs/emacs/init.el +++ b/users/crumb/programs/emacs/init.el @@ -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) + diff --git a/users/crumb/programs/emacs/modules/syd-dired.el b/users/crumb/programs/emacs/modules/syd-dired.el index 2bfb028..66e2711 100644 --- a/users/crumb/programs/emacs/modules/syd-dired.el +++ b/users/crumb/programs/emacs/modules/syd-dired.el @@ -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) - (dired-recursive-dele tes 'top) + ;; 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)