Making dired better
This commit is contained in:
parent
a25ed0c286
commit
91cfedd269
57
README.org
57
README.org
|
@ -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"
|
(set-face-attribute 'variable-pitch nil :font "Cantarell"
|
||||||
:height (+ chris/default-font-size (/ chris/default-font-size 8)) :weight 'regular))
|
:height (+ chris/default-font-size (/ chris/default-font-size 8)) :weight 'regular))
|
||||||
|
|
||||||
;; (defun chris/set-transparency ()
|
(defun chris/set-transparency ()
|
||||||
;; "Set the frame to be transparent on Wayland compositors"
|
"Set the frame to be transparent on Wayland compositors"
|
||||||
;; (if (string= x-display-name "wayland-0")
|
(if (string= x-display-name "wayland-0")
|
||||||
;; ((set-frame-parameter (selected-frame) 'alpha '(90 . 90))
|
((set-frame-parameter (selected-frame) 'alpha '(90 . 90))
|
||||||
;; (add-to-list 'default-frame-alist '(alpha . (90 . 90))))))
|
(add-to-list 'default-frame-alist '(alpha . (90 . 90))))))
|
||||||
|
|
||||||
(if (daemonp)
|
(if (daemonp)
|
||||||
(add-hook 'after-make-frame-functions
|
(add-hook 'after-make-frame-functions
|
||||||
(lambda (frame)
|
(lambda (frame)
|
||||||
(with-selected-frame frame
|
(with-selected-frame frame
|
||||||
(chris/set-font-faces)
|
(chris/set-font-faces)
|
||||||
(chris/set-transparency))))
|
(chris/set-transparency)))
|
||||||
(chris/set-font-faces))
|
(chris/set-font-faces))
|
||||||
;; (chris/set-transparency))
|
(chris/set-transparency))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
Then let's make sure line-numbers are relative and on. And let's turn on visual-line-mode globally.
|
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
|
#+begin_src emacs-lisp
|
||||||
(server-start)
|
(server-start)
|
||||||
#+end_src
|
#+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
|
** Let's bootstrap straight.el
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(setq straight-fix-org t)
|
(setq straight-fix-org t)
|
||||||
|
@ -587,6 +593,7 @@ These are some evil bindings to avy.
|
||||||
(general-def 'normal
|
(general-def 'normal
|
||||||
"gl" 'avy-goto-line))
|
"gl" 'avy-goto-line))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** Ace-Link
|
*** Ace-Link
|
||||||
Ace link provides an avy like search for links. Upon using the keybindings presented it opens the url.
|
Ace link provides an avy like search for links. Upon using the keybindings presented it opens the url.
|
||||||
#+begin_src emacs-lisp
|
#+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 ()
|
(defun chris/dired-open-xdg ()
|
||||||
"Open the file-at-point in the appropriate program"
|
"Open the file-at-point in the appropriate program"
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((file (ignore-errors (dired-get-file-for-visit))))
|
(let ((file (file-truename (ignore-errors (dired-get-file-for-visit)))))
|
||||||
(browse-url-xdg-open (file-truename file))))
|
(message file)
|
||||||
|
(call-process "xdg-open" nil 0 nil file)))
|
||||||
|
|
||||||
:general
|
:general
|
||||||
(chris/leader-keys
|
(chris/leader-keys
|
||||||
:states 'normal
|
:states 'normal
|
||||||
|
@ -727,9 +736,23 @@ We need a function to copy the full filename to kill-ring
|
||||||
"l" 'dired-single-buffer))
|
"l" 'dired-single-buffer))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src emacs-lisp :tangle no
|
#+begin_src emacs-lisp
|
||||||
(use-package dired-rainbow
|
(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
|
#+end_src
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+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))
|
:config (diredfl-global-mode +1))
|
||||||
#+end_src
|
#+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
|
*** Tramp
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(require 'tramp)
|
(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*")
|
(rename-buffer "*eshell-pop*")
|
||||||
(display-buffer-in-side-window pop-eshell '((side . bottom))))))
|
(display-buffer-in-side-window pop-eshell '((side . bottom))))))
|
||||||
|
|
||||||
|
(setq eshell-banner-message "")
|
||||||
|
|
||||||
:general
|
:general
|
||||||
(chris/leader-keys
|
(chris/leader-keys
|
||||||
:states 'normal
|
:states 'normal
|
||||||
|
@ -1542,7 +1575,7 @@ Let's use pdf-tools for a lot better interaction with pdfs.
|
||||||
(use-package nov
|
(use-package nov
|
||||||
:mode ("\\.epub\\'" . nov-mode)
|
:mode ("\\.epub\\'" . nov-mode)
|
||||||
:config
|
:config
|
||||||
(add-hook 'nov-mode-hook 'olivetti-mode))
|
(add-hook 'nov-mode-hook 'visual-fill-column-mode))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Window Management
|
** Window Management
|
||||||
|
|
49
init.el
49
init.el
|
@ -32,20 +32,20 @@
|
||||||
(set-face-attribute 'variable-pitch nil :font "Cantarell"
|
(set-face-attribute 'variable-pitch nil :font "Cantarell"
|
||||||
:height (+ chris/default-font-size (/ chris/default-font-size 8)) :weight 'regular))
|
:height (+ chris/default-font-size (/ chris/default-font-size 8)) :weight 'regular))
|
||||||
|
|
||||||
;; (defun chris/set-transparency ()
|
(defun chris/set-transparency ()
|
||||||
;; "Set the frame to be transparent on Wayland compositors"
|
"Set the frame to be transparent on Wayland compositors"
|
||||||
;; (if (string= x-display-name "wayland-0")
|
(if (string= x-display-name "wayland-0")
|
||||||
;; ((set-frame-parameter (selected-frame) 'alpha '(90 . 90))
|
((set-frame-parameter (selected-frame) 'alpha '(90 . 90))
|
||||||
;; (add-to-list 'default-frame-alist '(alpha . (90 . 90))))))
|
(add-to-list 'default-frame-alist '(alpha . (90 . 90))))))
|
||||||
|
|
||||||
(if (daemonp)
|
(if (daemonp)
|
||||||
(add-hook 'after-make-frame-functions
|
(add-hook 'after-make-frame-functions
|
||||||
(lambda (frame)
|
(lambda (frame)
|
||||||
(with-selected-frame frame
|
(with-selected-frame frame
|
||||||
(chris/set-font-faces)
|
(chris/set-font-faces)
|
||||||
(chris/set-transparency))))
|
(chris/set-transparency)))
|
||||||
(chris/set-font-faces))
|
(chris/set-font-faces))
|
||||||
;; (chris/set-transparency))
|
(chris/set-transparency))
|
||||||
|
|
||||||
(setq display-line-numbers-type 'relative)
|
(setq display-line-numbers-type 'relative)
|
||||||
(global-display-line-numbers-mode +1)
|
(global-display-line-numbers-mode +1)
|
||||||
|
@ -73,6 +73,8 @@
|
||||||
|
|
||||||
(server-start)
|
(server-start)
|
||||||
|
|
||||||
|
(add-to-list 'exec-path "/home/chris/scripts")
|
||||||
|
|
||||||
(setq straight-fix-org t)
|
(setq straight-fix-org t)
|
||||||
(setq straight-check-for-modifications '(check-on-save find-when-checking))
|
(setq straight-check-for-modifications '(check-on-save find-when-checking))
|
||||||
(defvar bootstrap-version)
|
(defvar bootstrap-version)
|
||||||
|
@ -417,8 +419,10 @@ vertically."
|
||||||
(defun chris/dired-open-xdg ()
|
(defun chris/dired-open-xdg ()
|
||||||
"Open the file-at-point in the appropriate program"
|
"Open the file-at-point in the appropriate program"
|
||||||
(interactive)
|
(interactive)
|
||||||
(let ((file (ignore-errors (dired-get-file-for-visit))))
|
(let ((file (file-truename (ignore-errors (dired-get-file-for-visit)))))
|
||||||
(browse-url-xdg-open (file-truename file))))
|
(message file)
|
||||||
|
(call-process "xdg-open" nil 0 nil file)))
|
||||||
|
|
||||||
:general
|
:general
|
||||||
(chris/leader-keys
|
(chris/leader-keys
|
||||||
:states 'normal
|
:states 'normal
|
||||||
|
@ -444,10 +448,33 @@ vertically."
|
||||||
"h" 'dired-single-up-directory
|
"h" 'dired-single-up-directory
|
||||||
"l" 'dired-single-buffer))
|
"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
|
(use-package diredfl
|
||||||
:after dired
|
:after dired
|
||||||
:config (diredfl-global-mode +1))
|
:config (diredfl-global-mode +1))
|
||||||
|
|
||||||
|
(use-package dired-rsync
|
||||||
|
:after dired
|
||||||
|
:general
|
||||||
|
(general-def 'normal dired-mode-map
|
||||||
|
"C" 'dired-rsync))
|
||||||
|
|
||||||
(require 'tramp)
|
(require 'tramp)
|
||||||
(add-to-list 'tramp-default-proxies-alist
|
(add-to-list 'tramp-default-proxies-alist
|
||||||
'(nil "\\`root\\'" "/ssh:%h:"))
|
'(nil "\\`root\\'" "/ssh:%h:"))
|
||||||
|
@ -1145,6 +1172,8 @@ If on a:
|
||||||
(rename-buffer "*eshell-pop*")
|
(rename-buffer "*eshell-pop*")
|
||||||
(display-buffer-in-side-window pop-eshell '((side . bottom))))))
|
(display-buffer-in-side-window pop-eshell '((side . bottom))))))
|
||||||
|
|
||||||
|
(setq eshell-banner-message "")
|
||||||
|
|
||||||
:general
|
:general
|
||||||
(chris/leader-keys
|
(chris/leader-keys
|
||||||
:states 'normal
|
:states 'normal
|
||||||
|
@ -1167,7 +1196,7 @@ If on a:
|
||||||
(use-package nov
|
(use-package nov
|
||||||
:mode ("\\.epub\\'" . nov-mode)
|
:mode ("\\.epub\\'" . nov-mode)
|
||||||
:config
|
:config
|
||||||
(add-hook 'nov-mode-hook 'olivetti-mode))
|
(add-hook 'nov-mode-hook 'visual-fill-column-mode))
|
||||||
|
|
||||||
(setq display-buffer-alist
|
(setq display-buffer-alist
|
||||||
'(("\\*e?shell\\*"
|
'(("\\*e?shell\\*"
|
||||||
|
|
Loading…
Reference in a new issue