summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--init.el1
-rw-r--r--ravi-init-dired.el135
2 files changed, 136 insertions, 0 deletions
diff --git a/init.el b/init.el
index e205b60..8f420c2 100644
--- a/init.el
+++ b/init.el
@@ -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