summaryrefslogtreecommitdiffstats
path: root/lisp/init-dired.el
blob: ac6f24b756d424f2c7529492d750117e654cba79 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
(defun dired-open-or-shell-command ()
  (interactive)
  (if (eq system-type 'darwin)
      ;; call open directly on darwin
      (dired-do-shell-command "open" nil (dired-get-marked-files t))
    ;; otherwise prompt for shell command
    (call-interactively 'dired-do-shell-command)))

(use-package dired
  :ensure nil ;; package is bundled with emacs
  :init
  ;; show human readable sizes in dired
  (setq dired-listing-switches "-alh")

  ;; show human readable free space
  (setq directory-free-space-args "-h")

  :bind (("M-<up>" . dired-up-directory)
         ("C-c C-o" . dired-open-or-shell-command))

  :config
  ;; group directories first in dired if supported
  (when (eq 0 (call-process insert-directory-program
                            nil nil nil "--group-directories-first"))
    (setq dired-listing-switches (concat dired-listing-switches
                                         " --group-directories-first"))))

(provide 'init-dired)