Making dired better

This commit is contained in:
Chris Cochrun 2021-04-24 05:34:12 -05:00
parent a25ed0c286
commit 91cfedd269
2 changed files with 84 additions and 22 deletions

View file

@ -87,20 +87,20 @@ In order to have this config work on both my desktop with regular joe-schmoe mon
(set-face-attribute 'variable-pitch nil :font "Cantarell"
:height (+ chris/default-font-size (/ chris/default-font-size 8)) :weight 'regular))
;; (defun chris/set-transparency ()
;; "Set the frame to be transparent on Wayland compositors"
;; (if (string= x-display-name "wayland-0")
;; ((set-frame-parameter (selected-frame) 'alpha '(90 . 90))
;; (add-to-list 'default-frame-alist '(alpha . (90 . 90))))))
(defun chris/set-transparency ()
"Set the frame to be transparent on Wayland compositors"
(if (string= x-display-name "wayland-0")
((set-frame-parameter (selected-frame) 'alpha '(90 . 90))
(add-to-list 'default-frame-alist '(alpha . (90 . 90))))))
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(with-selected-frame frame
(chris/set-font-faces)
(chris/set-transparency))))
(chris/set-transparency)))
(chris/set-font-faces))
;; (chris/set-transparency))
(chris/set-transparency))
#+end_src
Then let's make sure line-numbers are relative and on. And let's turn on visual-line-mode globally.
@ -147,6 +147,12 @@ Finally this is not part of the UI but let's do this early and start the server
#+begin_src emacs-lisp
(server-start)
#+end_src
I will also add my personal scripts to emacs' PATH
#+begin_src emacs-lisp
(add-to-list 'exec-path "/home/chris/scripts")
#+end_src
** Let's bootstrap straight.el
#+begin_src emacs-lisp
(setq straight-fix-org t)
@ -587,6 +593,7 @@ These are some evil bindings to avy.
(general-def 'normal
"gl" 'avy-goto-line))
#+end_src
*** Ace-Link
Ace link provides an avy like search for links. Upon using the keybindings presented it opens the url.
#+begin_src emacs-lisp
@ -692,8 +699,10 @@ I'm making a small function in here to open files in the appropriate program usi
(defun chris/dired-open-xdg ()
"Open the file-at-point in the appropriate program"
(interactive)
(let ((file (ignore-errors (dired-get-file-for-visit))))
(browse-url-xdg-open (file-truename file))))
(let ((file (file-truename (ignore-errors (dired-get-file-for-visit)))))
(message file)
(call-process "xdg-open" nil 0 nil file)))
:general
(chris/leader-keys
:states 'normal
@ -727,9 +736,23 @@ We need a function to copy the full filename to kill-ring
"l" 'dired-single-buffer))
#+end_src
#+begin_src emacs-lisp :tangle no
#+begin_src emacs-lisp
(use-package dired-rainbow
:after dired)
:after dired
:config
(defconst chris/dired-media-files-extensions
'("mp3" "mp4" "MP3" "MP4" "avi" "mpg" "flv" "ogg" "opus")
"Media files.")
(defconst chris/dired-image-files-extensions
'("png" "jpg" "PNG" "JPG" "jpeg" "JPEG" "gif" "GIF")
"image files")
(dired-rainbow-define html "#4e9a06" ("htm" "html" "xhtml"))
(dired-rainbow-define media "#f3f99d" chris/dired-media-files-extensions)
(dired-rainbow-define image "#5af78e" chris/dired-image-files-extensions)
(dired-rainbow-define log (:inherit default :italic t) ".*\\.log"))
#+end_src
#+begin_src emacs-lisp
@ -738,6 +761,14 @@ We need a function to copy the full filename to kill-ring
:config (diredfl-global-mode +1))
#+end_src
#+begin_src emacs-lisp
(use-package dired-rsync
:after dired
:general
(general-def 'normal dired-mode-map
"C" 'dired-rsync))
#+end_src
*** Tramp
#+begin_src emacs-lisp
(require 'tramp)
@ -1509,6 +1540,8 @@ Let's add our own eshell prompt. and set the password cache to a significantly h
(rename-buffer "*eshell-pop*")
(display-buffer-in-side-window pop-eshell '((side . bottom))))))
(setq eshell-banner-message "")
:general
(chris/leader-keys
:states 'normal
@ -1542,7 +1575,7 @@ Let's use pdf-tools for a lot better interaction with pdfs.
(use-package nov
:mode ("\\.epub\\'" . nov-mode)
:config
(add-hook 'nov-mode-hook 'olivetti-mode))
(add-hook 'nov-mode-hook 'visual-fill-column-mode))
#+end_src
** Window Management

49
init.el
View file

@ -32,20 +32,20 @@
(set-face-attribute 'variable-pitch nil :font "Cantarell"
:height (+ chris/default-font-size (/ chris/default-font-size 8)) :weight 'regular))
;; (defun chris/set-transparency ()
;; "Set the frame to be transparent on Wayland compositors"
;; (if (string= x-display-name "wayland-0")
;; ((set-frame-parameter (selected-frame) 'alpha '(90 . 90))
;; (add-to-list 'default-frame-alist '(alpha . (90 . 90))))))
(defun chris/set-transparency ()
"Set the frame to be transparent on Wayland compositors"
(if (string= x-display-name "wayland-0")
((set-frame-parameter (selected-frame) 'alpha '(90 . 90))
(add-to-list 'default-frame-alist '(alpha . (90 . 90))))))
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(with-selected-frame frame
(chris/set-font-faces)
(chris/set-transparency))))
(chris/set-transparency)))
(chris/set-font-faces))
;; (chris/set-transparency))
(chris/set-transparency))
(setq display-line-numbers-type 'relative)
(global-display-line-numbers-mode +1)
@ -73,6 +73,8 @@
(server-start)
(add-to-list 'exec-path "/home/chris/scripts")
(setq straight-fix-org t)
(setq straight-check-for-modifications '(check-on-save find-when-checking))
(defvar bootstrap-version)
@ -417,8 +419,10 @@ vertically."
(defun chris/dired-open-xdg ()
"Open the file-at-point in the appropriate program"
(interactive)
(let ((file (ignore-errors (dired-get-file-for-visit))))
(browse-url-xdg-open (file-truename file))))
(let ((file (file-truename (ignore-errors (dired-get-file-for-visit)))))
(message file)
(call-process "xdg-open" nil 0 nil file)))
:general
(chris/leader-keys
:states 'normal
@ -444,10 +448,33 @@ vertically."
"h" 'dired-single-up-directory
"l" 'dired-single-buffer))
(use-package dired-rainbow
:after dired
:config
(defconst chris/dired-media-files-extensions
'("mp3" "mp4" "MP3" "MP4" "avi" "mpg" "flv" "ogg" "opus")
"Media files.")
(defconst chris/dired-image-files-extensions
'("png" "jpg" "PNG" "JPG" "jpeg" "JPEG" "gif" "GIF")
"image files")
(dired-rainbow-define html "#4e9a06" ("htm" "html" "xhtml"))
(dired-rainbow-define media "#f3f99d" chris/dired-media-files-extensions)
(dired-rainbow-define image "#5af78e" chris/dired-image-files-extensions)
(dired-rainbow-define log (:inherit default :italic t) ".*\\.log"))
(use-package diredfl
:after dired
:config (diredfl-global-mode +1))
(use-package dired-rsync
:after dired
:general
(general-def 'normal dired-mode-map
"C" 'dired-rsync))
(require 'tramp)
(add-to-list 'tramp-default-proxies-alist
'(nil "\\`root\\'" "/ssh:%h:"))
@ -1145,6 +1172,8 @@ If on a:
(rename-buffer "*eshell-pop*")
(display-buffer-in-side-window pop-eshell '((side . bottom))))))
(setq eshell-banner-message "")
:general
(chris/leader-keys
:states 'normal
@ -1167,7 +1196,7 @@ If on a:
(use-package nov
:mode ("\\.epub\\'" . nov-mode)
:config
(add-hook 'nov-mode-hook 'olivetti-mode))
(add-hook 'nov-mode-hook 'visual-fill-column-mode))
(setq display-buffer-alist
'(("\\*e?shell\\*"