;;; module-dired.el --- dired stuff ;;; ;;; Commentary: ;;; ;;; Configure settings and extensions for Dired. ;;; ;;; Code: (require 'module-pkg) (require 'dired) (pkg/require 'dired-sidebar) (defun my/dired-duplicate-file (file) "Duplicate the current FILE in Dired." (interactive "p") (let ((filename (dired-get-filename)) (target '())) (setq target (concat (file-name-sans-extension filename) "-old" (if (> file 1) (number-to-string file)) (file-name-extension filename t))) (if (file-directory-p filename) (copy-file filename target)))) (defun my/dired-mouse-find-file (event) "In Dired, visit the file or directory name you click on." (interactive "e") (let (window pos file) (save-excursion (setq window (posn-window (event-end event)) pos (posn-point (event-end event))) (if (not (windowp window)) (error "No file chosen")) (set-buffer (window-buffer window)) (goto-char pos) (setq file (dired-get-file-for-visit))) (if (file-directory-p file) (or (and (cdr dired-subdir-alist) (dired-goto-subdir file)) (dired file)) (find-file file)))) (define-key dired-mode-map [mouse-2] 'my/dired-mouse-find-file) (global-set-key (kbd "") 'dired-sidebar-toggle-sidebar) (define-key dired-mode-map (kbd "C-c d") 'my/dired-duplicate-file) (define-key dired-mode-map (kbd "C-c t") 'dired-create-empty-file) (provide 'module-dired) ;;; module-dired.el ends here.