dired config
This commit is contained in:
parent
a476ecd820
commit
b8cdd17444
164
init.org
164
init.org
|
|
@ -491,13 +491,15 @@ Honestly not very happy with this at the moment, but it's kind of hacked togethe
|
||||||
:prefix-command 'nemo/leader-prefix-command
|
:prefix-command 'nemo/leader-prefix-command
|
||||||
:global-prefix nemo/leader-global
|
:global-prefix nemo/leader-global
|
||||||
:prefix nemo/leader-evil)
|
:prefix nemo/leader-evil)
|
||||||
|
|
||||||
|
;; `leader-def` binds with prefix "SPC" into `nemo/leader-prefix-map`
|
||||||
(general-create-definer leader-def
|
(general-create-definer leader-def
|
||||||
:prefix-command 'nemo/leader-prefix-command
|
:prefix-command 'nemo/leader-prefix-command
|
||||||
:prefix-map 'nemo/leader-prefix-map)
|
:prefix-map 'nemo/leader-prefix-map)
|
||||||
(general-create-definer leader-other-def
|
(general-create-definer leader-other-def
|
||||||
:states '(emacs normal)
|
:states '(emacs normal)
|
||||||
:prefix-map 'nemo/leader-prefix-map
|
:prefix-command 'nemo/leader-prefix-command
|
||||||
:prefix-command 'nemo/leader-prefix-command
|
:prefix-map 'nemo/leader-prefix-map
|
||||||
:global-prefix nemo/leader-global
|
:global-prefix nemo/leader-global
|
||||||
:prefix nemo/leader-evil
|
:prefix nemo/leader-evil
|
||||||
)
|
)
|
||||||
|
|
@ -533,6 +535,164 @@ Honestly not very happy with this at the moment, but it's kind of hacked togethe
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
** =dired=
|
||||||
|
Inspiration taken from [[https://eugene-andrienko.com/2026-07-05-my-emacs-configuration-dired.html][this post]] from hacker news.
|
||||||
|
|
||||||
|
Todo: figure out how best to use =image-dired=.
|
||||||
|
#+begin_src emacs-lisp :tangle local-lisp/dired-hide-dotfiles.el
|
||||||
|
;;; dired-hide-dotfiles.el --- Hide dotfiles in dired buffers -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(require 'dired)
|
||||||
|
|
||||||
|
(defgroup dired-hide-dotfiles nil
|
||||||
|
:group 'dired)
|
||||||
|
|
||||||
|
(define-minor-mode dired-hide-dotfiles-mode
|
||||||
|
:init-value nil
|
||||||
|
:group 'dired
|
||||||
|
(if dired-hide-dotfiles-mode
|
||||||
|
(progn
|
||||||
|
(add-hook 'dired-after-readin-hook #'dired-hide-dotfiles)
|
||||||
|
(dired-hide-dotfiles))
|
||||||
|
(remove-hook 'dired-after-readin-hook #'dired-hide-dotfiles)
|
||||||
|
(revert-buffer))
|
||||||
|
|
||||||
|
(defun dired-hide-dotfiles ()
|
||||||
|
"Hide dotfiles in dired buffer."
|
||||||
|
(let ((inhibit-message t))
|
||||||
|
(dired-mark-files-regexp "^\\.|^.*/\\.")
|
||||||
|
(dired-do-kill-lines nil "Hid %d dotfiles."))))
|
||||||
|
|
||||||
|
|
||||||
|
(provide 'dired-hide-dotfiles)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defun nemo/dired-create-file-or-directory (path)
|
||||||
|
"Create a file or directory with NAME in the current dired buffer."
|
||||||
|
(interactive "sEnter name for new file/directory: ")
|
||||||
|
(if (or (file-exists-p path) (file-directory-p path))
|
||||||
|
(message "'%s' already exists." path)
|
||||||
|
(if (string-suffix-p "/" path)
|
||||||
|
(dired-create-directory path)
|
||||||
|
(dired-create-empty-file path))))
|
||||||
|
|
||||||
|
(defun nemo/dired-toggle-mark ()
|
||||||
|
"Toggle the mark on the current file in dired."
|
||||||
|
(interactive)
|
||||||
|
(when dired-get-filename nil t)
|
||||||
|
(let ((inhibit-read-only t))
|
||||||
|
(save-excursion
|
||||||
|
(dired-move-to-filename)
|
||||||
|
(beginning-of-line)
|
||||||
|
(if (looking-at dired-marker-char)
|
||||||
|
(dired-unmark 1)
|
||||||
|
(dired-mark 1)))))
|
||||||
|
|
||||||
|
(use-package dired
|
||||||
|
:straight nil
|
||||||
|
:hook (dired-mode . hl-line-mode)
|
||||||
|
:hook (dired-mode . dired-hide-details-mode)
|
||||||
|
:hook (dired-mode . auto-revert-mode)
|
||||||
|
:hook (dired-mode . dired-omit-mode)
|
||||||
|
:bind (:map dired-mode-map
|
||||||
|
("<backspace>" . dired-up-directory)
|
||||||
|
("<tab>" . dired-subtree-toggle)
|
||||||
|
("TAB" . dired-subtree-toggle)
|
||||||
|
("C-TAB" . dired-subtree-remove))
|
||||||
|
:config
|
||||||
|
(leader-def
|
||||||
|
"p" 'dired-preview-mode)
|
||||||
|
(setopt dired-compress-directory-default-suffix ".tar.zst"
|
||||||
|
dired-create-destination-dirs 'always
|
||||||
|
dired-filename-display-length 'window
|
||||||
|
dired-hide-details-hide-symlink-targets nil
|
||||||
|
dired-kill-when-opening-new-dired-buffer t
|
||||||
|
dired-listing-switches "-alh --group-directories-first"
|
||||||
|
dired-mouse-drag-files t
|
||||||
|
dired-movement-style 'bounded
|
||||||
|
dired-recursive-copies 'always
|
||||||
|
dired-recursive-deletes 'top)
|
||||||
|
|
||||||
|
:custom
|
||||||
|
(dired-omit-files (rx (seq bol ".")))
|
||||||
|
)
|
||||||
|
|
||||||
|
(use-package dired-subtree
|
||||||
|
:straight t
|
||||||
|
:after dired
|
||||||
|
:hook (dired-subtree-after-insert . (lambda ()
|
||||||
|
(if
|
||||||
|
(bound-and-true-p dired-omit-mode)
|
||||||
|
(dired-omit-expunge))))
|
||||||
|
:config
|
||||||
|
(general-def '(emacs normal) 'dired-mode-map
|
||||||
|
"#" 'dired-omit-mode
|
||||||
|
"+" 'nemo/dired-create-file-or-directory)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
(use-package dired-open
|
||||||
|
:straight t
|
||||||
|
:after dired
|
||||||
|
:config
|
||||||
|
(setopt dired-open-extensions '(("png" . "sxiv")
|
||||||
|
("jpg" . "sxiv")
|
||||||
|
("jpeg" . "sxiv")
|
||||||
|
("pdf" . "zathura")
|
||||||
|
("mp4" . "mpv")
|
||||||
|
("mkv" . "mpv")
|
||||||
|
("webm" . "mpv")
|
||||||
|
("epub" . "zathura")
|
||||||
|
("mp3" . "mpv")
|
||||||
|
("wav" . "mpv"))))
|
||||||
|
|
||||||
|
(use-package image-dired
|
||||||
|
:straight t
|
||||||
|
:after dired
|
||||||
|
:config
|
||||||
|
(setopt image-dired-thumb-margin 5
|
||||||
|
image-dired-thumb-size 256
|
||||||
|
image-dired-track-movement t
|
||||||
|
image-dired-thumbnail-storage 'standard-large))
|
||||||
|
|
||||||
|
(defun nemo/dired-preview--file-ignored-p (orig-fun file &rest args)
|
||||||
|
"Return t if FILE should be ignored by dired-preview."
|
||||||
|
(if-let* (((stringp dired-preview-ignored-extensions-regexp))
|
||||||
|
((not (file-directory-p file)))
|
||||||
|
(file-nondir (file-name-nondirectory file)))
|
||||||
|
(string-match-p dired-preview-ignored-extensions-regexp file-nondir)
|
||||||
|
t))
|
||||||
|
|
||||||
|
(use-package dired-preview
|
||||||
|
:straight t
|
||||||
|
:after dired
|
||||||
|
:config
|
||||||
|
(setopt
|
||||||
|
dired-preview-display-action-alist #'dired-preview-display-action-alist-dwim
|
||||||
|
dired-preview-delay 0.1
|
||||||
|
dired-preview-ignored-extensions-regexp
|
||||||
|
(concat
|
||||||
|
(default-value 'dired-preview-ignored-extensions-regexp)))
|
||||||
|
|
||||||
|
(advice-add 'dired-preview--file-ignored-p :around
|
||||||
|
#'nemo/dired-preview--file-ignored-p)
|
||||||
|
|
||||||
|
(cl-defmethod dired-preview--get-buffer ((file (head ignore)))
|
||||||
|
(let* ((file (s-chop-suffix "/" (cdr file)))
|
||||||
|
(buffer-name (format "%s (no preview)" (file-name-nondirectory file))))
|
||||||
|
(or (get-buffer buffer-name)
|
||||||
|
(with-current-buffer (get-buffer-create buffer-name)
|
||||||
|
(set-visited-file-name file t)
|
||||||
|
(rename-buffer buffer-name)
|
||||||
|
(set-buffer-modified-p nil)
|
||||||
|
(setq-local dired-preview--placeholder-buffer-p t)
|
||||||
|
(setq buffer-read-only t)
|
||||||
|
(current-buffer)))))
|
||||||
|
)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Web Search
|
** Web Search
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package engine-mode
|
(use-package engine-mode
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue