hackweek-emacs/cnf/app/a-dired.el
2025-06-25 09:20:32 +02:00

58 lines
1.7 KiB
EmacsLisp

;; DIRED: Filebrowser
(straight-use-package 'dired-narrow)
;; (require 'dired-async)
;; (dired-async-mode 0)
(setq dired-listing-switches "-lFahv --group-directories-first"
dired-dwim-target t
delete-by-moving-to-trash t
dired-ls-F-marks-symlinks t)
(add-hook 'dired-mode-hook
(lambda ()
(dired-hide-details-mode)
(when (file-remote-p dired-directory)
(setq-local dired-actual-switches "-lFah"))))
(put 'dired-find-alternate-file 'disabled nil)
;; ;; PEEP-DIRED: preview files in dired
;; (straight-use-package 'peep-dired)
;; ;; variables
;; (setq peep-dired-cleanup-on-disable t
;; peep-dired-cleanup-eagerly nil
;; peep-dired-enable-on-directories t)
;; ;; hooks
;; (add-hook 'peep-dired-hook 'evil-normalize-keymaps)
(straight-use-package 'dired-preview)
(setq dired-preview-delay 0.2
dired-preview-ignored-extensions-regexp (concat "\\."
"\\(mkv\\|webm\\|mp4\\|mp3\\|ogg\\|m4a"
"\\|gz\\|zst\\|tar\\|xz\\|rar\\|zip"
"\\|iso\\|epub\\)"))
;; Keybindings
(general-def
:states 'normal
:keymaps 'dired-mode-map
"f" 'dired-narrow
"p" 'dired-preview-mode
"h" (lambda() (interactive) (find-alternate-file ".."))
"l" (lambda() (interactive) (dired-find-alternate-file)))
;; DIRED-LAUNCH: Launch apps depending on file extension
(straight-use-package 'dired-launch)
(setq dired-launch-command '("xdg-open"))
(setf dired-launch-extensions-map
'(("xopp" ("xournalpp"))
("drawio.html" ("drawio"))
("drawio" ("drawio"))))
(add-hook 'dired-mode-hook
(lambda ()
(general-def
:states 'normal
:keymaps 'dired-mode-map
"W" 'dired-launch-command)))
(provide 'a-dired)