diff options
| -rw-r--r-- | init.el | 1 | ||||
| -rw-r--r-- | ravi-init-dired.el | 135 |
2 files changed, 136 insertions, 0 deletions
@@ -123,3 +123,4 @@ (require 'ravi-init-org) (require 'ravi-init-tex) (require 'ravi-init-repl) +(require 'ravi-init-dired) diff --git a/ravi-init-dired.el b/ravi-init-dired.el new file mode 100644 index 0000000..a92f546 --- /dev/null +++ b/ravi-init-dired.el @@ -0,0 +1,135 @@ +;;; ravi-init-dired.el --- dired setup + +;; Copyright (C) 2014 + +;; Author: <ravi@nero.lan> +;; 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 <http://www.gnu.org/licenses/>. + +;;; 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 + (bind-keys :map dired-mode-map + :prefix "C-," + :prefix-map dired-subtree-map + :prefix-docstring "Dired subtree map." + ("<f5>" . dired-subtree-insert) + ("C-/" . dired-subtree-apply-filter) + ("C-k" . dired-subtree-remove) + ("C-n" . dired-subtree-next-sibling) + ("C-p" . dired-subtree-previous-sibling) + ("C-u" . dired-subtree-up) + ("C-d" . dired-subtree-down) + ("C-a" . dired-subtree-beginning) + ("C-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)) + ) + + (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)))) + )) + +(provide 'ravi-init-dired) +;;; ravi-init-dired.el ends here |
