diff --git a/dotfiles/desktop/.emacs.d/init.el b/dotfiles/desktop/.emacs.d/init.el index 9580422..b35a2ce 100644 --- a/dotfiles/desktop/.emacs.d/init.el +++ b/dotfiles/desktop/.emacs.d/init.el @@ -14,12 +14,13 @@ 'core/keybindings 'core/buffer - ;; Tools - 'tools/completion - 'tools/project - 'tools/lsp - 'tools/dap - 'tools/treesitter + ;; Tools + 'tools/completion + 'tools/dired + 'tools/project + 'tools/lsp + 'tools/dap + 'tools/treesitter ;; Languages 'lang/c diff --git a/dotfiles/desktop/.emacs.d/lisp/core/keybindings.el b/dotfiles/desktop/.emacs.d/lisp/core/keybindings.el index 4419ca3..fb6f390 100644 --- a/dotfiles/desktop/.emacs.d/lisp/core/keybindings.el +++ b/dotfiles/desktop/.emacs.d/lisp/core/keybindings.el @@ -61,6 +61,10 @@ (autoload 'gptel "gptel" nil t) (define-key fscotto/open (kbd "l") #'gptel) +;; -------- dirvish -------- +(autoload 'dirvish-dwim "dirvish" nil t) +(define-key fscotto/open (kbd "d") #'dirvish-dwim) + ;;;; Elfeed mode maps (with-eval-after-load 'elfeed (define-key elfeed-search-mode-map (kbd "w") #'elfeed-search-yank) diff --git a/dotfiles/desktop/.emacs.d/lisp/misc/which-key.el b/dotfiles/desktop/.emacs.d/lisp/misc/which-key.el index 69abdc0..e57ded6 100644 --- a/dotfiles/desktop/.emacs.d/lisp/misc/which-key.el +++ b/dotfiles/desktop/.emacs.d/lisp/misc/which-key.el @@ -30,6 +30,7 @@ ;; Open (C-c o …) ;; -------------------------------------------------------------------------- (which-key-add-key-based-replacements + "C-c o d" "Dirvish" "C-c o f" "RSS (Elfeed)" "C-c o l" "LLM chat (gptel)" "C-c o m" "mu4e (Email Client)" diff --git a/dotfiles/desktop/.emacs.d/lisp/tools/dired.el b/dotfiles/desktop/.emacs.d/lisp/tools/dired.el new file mode 100644 index 0000000..b909b21 --- /dev/null +++ b/dotfiles/desktop/.emacs.d/lisp/tools/dired.el @@ -0,0 +1,36 @@ +;;; dired.el -*- lexical-binding: t; -*- + +(use-package dired + :ensure nil + :commands (dired dired-jump) + :config + (setq delete-by-moving-to-trash t + dired-dwim-target t + dired-kill-when-opening-new-dired-buffer t + dired-listing-switches + "-l --almost-all --human-readable --group-directories-first --no-group") + (put 'dired-find-alternate-file 'disabled nil)) + +(use-package dirvish + :ensure t + :init + (dirvish-override-dired-mode) + :custom + (dirvish-use-header-line nil) + (dirvish-use-mode-line nil) + (dirvish-hide-details nil) + (dirvish-attributes nil) + (dirvish-large-directory-threshold 20000) + :config + (with-eval-after-load 'projectile + (setq projectile-switch-project-action #'projectile-dired)) + :bind + (:map dirvish-mode-map + ("?" . dirvish-dispatch) + ("TAB" . dirvish-subtree-toggle) + ("s" . dirvish-quicksort) + ("h" . dired-up-directory))) + +(provide 'tools/dired) + +;;; dired.el ends here