;;; ravi-init-dired.el --- dired setup ;; Copyright (C) 2014 ;; Author: ;; Keywords: ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Commentary: ;; Mostly stolen from Fuco's configuration ;; Dired setup ;;; Code: (use-package dired :defer t :config (progn (defun ravi/dired-init-hook () (dired-filter-mode t) (visual-line-mode -1) (toggle-truncate-lines 1)) (add-hook 'dired-mode-hook 'ravi/dired-init-hook) (use-package image-dired) (use-package dired-aux) (use-package dired-x :config (defun dired-virtual-revert (&optional _arg _noconfirm) "Enable revert for virtual direds." (let ((m (dired-file-name-at-point)) (buffer-modified (buffer-modified-p))) (goto-char 1) (dired-next-subdir 1) (dired-do-redisplay nil t) (while (dired-next-subdir 1 t) (dired-do-redisplay nil t)) (when m (dired-goto-file m)) (set-buffer-modified-p buffer-modified)))) (use-package dired-details :commands dired-details-toggle :ensure t ) (use-package w32-browser :commands dired-w32-browser :ensure t ) (use-package dired-subtree :ensure t :config (progn (bind-keys :map dired-mode-map :prefix "," :prefix-map dired-subtree-map :prefix-docstring "Dired subtree map." ("/" . dired-subtree-apply-filter) ("k" . dired-subtree-remove) ("n" . dired-subtree-next-sibling) ("p" . dired-subtree-previous-sibling) ("u" . dired-subtree-up) ("d" . dired-subtree-down) ("a" . dired-subtree-beginning) ("e" . dired-subtree-end) ("m" . dired-subtree-mark-subtree) ("u" . dired-subtree-unmark-subtree) ("C-o C-f" . dired-subtree-only-this-file) ("C-o C-d" . dired-subtree-only-this-directory)) (bind-key "e" 'dired-subtree-insert dired-mode-map)) ) (defconst my-dired-media-files-extensions '("mp3" "mp4" "MP3" "MP4" "avi" "mpg" "flv" "ogg") "Media file extensions that should launch in VLC. Also used for highlighting.") (use-package dired-rainbow :init (progn (dired-rainbow-define html "#4e9a06" ("htm" "html" "xhtml")) (dired-rainbow-define xml "DarkGreen" ("xml" "xsd" "xsl" "xslt" "wsdl")) (dired-rainbow-define document "#fce94f" ("doc" "docx" "odt" "pdb" "pdf" "ps" "rtf")) (dired-rainbow-define media "#ce5c00" my-dired-media-files-extensions) (dired-rainbow-define image "#ff4b4b" ("jpg" "png" "jpeg" "gif")) (dired-rainbow-define log "#c17d11" ("log")) (dired-rainbow-define sourcefile "#fcaf3e" ("py" "c" "cc" "h" "java" "pl" "rb")) (dired-rainbow-define executable "#8cc4ff" ("exe" "msi")) (dired-rainbow-define compressed "#ad7fa8" ("zip" "bz2" "tgz" "txz" "gz" "xz" "z" "Z" "jar" "war" "ear" "rar" "sar" "xpi" "apk" "xz" "tar")) (dired-rainbow-define packaged "#e6a8df" ("deb" "rpm")) (dired-rainbow-define encrypted "LightBlue" ("gpg" "pgp")))) (add-to-list 'dired-guess-shell-alist-user (list (regexp-opt my-dired-media-files-extensions) "vlc")) (use-package dired-filter :ensure t ) (use-package dired-open :ensure t ) (use-package dired-avfs :ensure t :disabled t ; avfs not in Fedora repositories yet ) (require 'dash) (--each '(dired-do-rename dired-do-copy dired-create-directory wdired-abort-changes) (eval `(defadvice ,it (after revert-buffer activate) (revert-buffer)))) (defun ravi/dired-guide-key-hook () (guide-key/add-local-guide-key-sequence "%") (guide-key/add-local-guide-key-sequence "*") (guide-key/add-local-guide-key-sequence "/") (guide-key/add-local-guide-key-sequence ",") (guide-key/add-local-guide-key-sequence "C-t") ) (add-hook 'dired-mode-hook 'ravi/dired-guide-key-hook) )) (provide 'ravi-init-dired) ;;; ravi-init-dired.el ends here