feat(emacs): improve dired-sidebar

This commit is contained in:
Pavel Korytov 2022-07-25 00:15:53 +03:00
parent 36eccc1af1
commit 194aadcd1d
2 changed files with 64 additions and 32 deletions

View file

@ -2943,7 +2943,7 @@ Returns (<buffer> . <workspace-index>) or nil."
:straight t
:defer t)
(defvar my/weather-last-time nil)
(defvar my/weather-last-time 0)
(defvar my/weather-value nil)
(defun my/weather-get ()
@ -3631,15 +3631,15 @@ With ARG, repeats or can move backward if negative."
(general-define-key
:states '(normal)
:keymaps 'dired-mode-map
"h" 'dired-up-directory
"l" 'dired-find-file
"=" 'dired-narrow
"-" 'dired-create-empty-file
"~" 'vterm
"M-r" 'wdired-change-to-wdired-mode
"<left>" 'dired-up-directory
"<right>" 'dired-find-file
"M-<return>" 'dired-open-xdg))
"h" #'dired-up-directory
"l" #'dired-find-file
"=" #'dired-narrow
"-" #'my/dired-create-empty-file-subtree
"~" #'vterm
"M-r" #'wdired-change-to-wdired-mode
"<left>" #'dired-up-directory
"<right>" #'dired-find-file
"M-<return>" #'dired-open-xdg))
(defun my/dired-home ()
"Open dired at $HOME"
@ -3659,6 +3659,12 @@ With ARG, repeats or can move backward if negative."
:after (dired)
:straight t)
(defun my/dired-create-empty-file-subtree ()
(interactive)
(let ((default-directory (dired-current-directory)))
(dired-create-empty-file
(read-file-name "Create empty file: "))))
(use-package dired-sidebar
:straight t
:after (dired)
@ -3666,19 +3672,29 @@ With ARG, repeats or can move backward if negative."
:init
(general-define-key
:keymaps '(normal override global)
"C-n" 'dired-sidebar-toggle-sidebar)
"C-n" `(,(lambda ()
(interactive)
(let ((dired-sidebar-follow-file-at-point-on-toggle-open
current-prefix-arg)
(current-prefix-arg nil))
(dired-sidebar-toggle-sidebar)))
:wk "dired-sidebar"))
:config
(setq dired-sidebar-width 45)
(setq dired-sidebar-follow-file-at-point-on-toggle-open nil)
(defun my/dired-sidebar-setup ()
(toggle-truncate-lines 1)
(display-line-numbers-mode -1)
(setq-local dired-subtree-use-backgrounds nil))
(setq-local dired-subtree-use-backgrounds nil)
(setq-local window-size-fixed nil))
(general-define-key
:keymaps 'dired-sidebar-mode-map
:states '(normal emacs)
"l" 'dired-sidebar-find-file
"h" 'dired-sidebar-up-directory
"=" 'dired-narrow)
(add-hook 'dired-sidebar-mode-hook #'my/dired-sidebar-setup))
"l" #'dired-sidebar-find-file
"h" #'dired-sidebar-up-directory
"=" #'dired-narrow)
(add-hook 'dired-sidebar-mode-hook #'my/dired-sidebar-setup)
(advice-add #'dired-create-empty-file :after 'dired-sidebar-refresh-buffer))
(use-package dired-recent
:straight t

View file

@ -4130,7 +4130,7 @@ Also, I want to add some extra information to the journal. Here's a functionalit
:straight t
:defer t)
(defvar my/weather-last-time nil)
(defvar my/weather-last-time 0)
(defvar my/weather-value nil)
(defun my/weather-get ()
@ -5171,15 +5171,15 @@ My config mostly follows ranger's and vifm's keybindings which I'm used to.
(general-define-key
:states '(normal)
:keymaps 'dired-mode-map
"h" 'dired-up-directory
"l" 'dired-find-file
"=" 'dired-narrow
"-" 'dired-create-empty-file
"~" 'vterm
"M-r" 'wdired-change-to-wdired-mode
"<left>" 'dired-up-directory
"<right>" 'dired-find-file
"M-<return>" 'dired-open-xdg))
"h" #'dired-up-directory
"l" #'dired-find-file
"=" #'dired-narrow
"-" #'my/dired-create-empty-file-subtree
"~" #'vterm
"M-r" #'wdired-change-to-wdired-mode
"<left>" #'dired-up-directory
"<right>" #'dired-find-file
"M-<return>" #'dired-open-xdg))
(defun my/dired-home ()
"Open dired at $HOME"
@ -5205,6 +5205,12 @@ I used to use [[https://www.emacswiki.org/emacs/DiredPlus][dired+]], which provi
(use-package dired-subtree
:after (dired)
:straight t)
(defun my/dired-create-empty-file-subtree ()
(interactive)
(let ((default-directory (dired-current-directory)))
(dired-create-empty-file
(read-file-name "Create empty file: "))))
#+end_src
[[https://github.com/jojojames/dired-sidebar][dired-sidebar]] enables opening Dired in sidebar. For me, with dired-subtree this makes dired a better option than Treemacs.
@ -5216,19 +5222,29 @@ I used to use [[https://www.emacswiki.org/emacs/DiredPlus][dired+]], which provi
:init
(general-define-key
:keymaps '(normal override global)
"C-n" 'dired-sidebar-toggle-sidebar)
"C-n" `(,(lambda ()
(interactive)
(let ((dired-sidebar-follow-file-at-point-on-toggle-open
current-prefix-arg)
(current-prefix-arg nil))
(dired-sidebar-toggle-sidebar)))
:wk "dired-sidebar"))
:config
(setq dired-sidebar-width 45)
(setq dired-sidebar-follow-file-at-point-on-toggle-open nil)
(defun my/dired-sidebar-setup ()
(toggle-truncate-lines 1)
(display-line-numbers-mode -1)
(setq-local dired-subtree-use-backgrounds nil))
(setq-local dired-subtree-use-backgrounds nil)
(setq-local window-size-fixed nil))
(general-define-key
:keymaps 'dired-sidebar-mode-map
:states '(normal emacs)
"l" 'dired-sidebar-find-file
"h" 'dired-sidebar-up-directory
"=" 'dired-narrow)
(add-hook 'dired-sidebar-mode-hook #'my/dired-sidebar-setup))
"l" #'dired-sidebar-find-file
"h" #'dired-sidebar-up-directory
"=" #'dired-narrow)
(add-hook 'dired-sidebar-mode-hook #'my/dired-sidebar-setup)
(advice-add #'dired-create-empty-file :after 'dired-sidebar-refresh-buffer))
#+end_src
[[https://github.com/vifon/dired-recent.el][dired-recent.el]] adds history to dired.