reorganize config to deliniate tools from other components
This commit is contained in:
parent
04702c20b1
commit
ce920a26d0
247
conf.org
247
conf.org
|
@ -466,121 +466,6 @@ NOTES:
|
||||||
(haskell-mode . (lambda () (setq-local company-backends
|
(haskell-mode . (lambda () (setq-local company-backends
|
||||||
'((company-ghc))))))
|
'((company-ghc))))))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* magit
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package magit
|
|
||||||
:ensure t
|
|
||||||
:config
|
|
||||||
:delight auto-revert-mode
|
|
||||||
(setq magit-push-always-verify nil
|
|
||||||
git-commit-summary-max-length 50))
|
|
||||||
#+END_SRC
|
|
||||||
* dired
|
|
||||||
** no confirm
|
|
||||||
Keeping confirmation enabled does weird stuff with helm. Not ideal at the moment but we shall see if I find something better.
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(setq dired-no-confirm '(move copy))
|
|
||||||
#+END_SRC
|
|
||||||
** interactive functions
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(defun nd/dired-xdg-open ()
|
|
||||||
"Open all non-text files in external app using xdg-open. Only regular files are considered"
|
|
||||||
(interactive)
|
|
||||||
(let* ((file-list (seq-filter #'file-regular-p (dired-get-marked-files)))
|
|
||||||
(do-it (if (<= (length file-list) 5)
|
|
||||||
t
|
|
||||||
(y-or-n-p "Open more then 5 files? "))))
|
|
||||||
(when do-it
|
|
||||||
(mapc
|
|
||||||
(lambda (f) (let ((process-connection-type nil))
|
|
||||||
(start-process "" nil "xdg-open" f)))
|
|
||||||
file-list))))
|
|
||||||
|
|
||||||
(defun nd/dired-open-with ()
|
|
||||||
"Open marked non-text files in external app via open-with dialog
|
|
||||||
according to mime types as listed in all available desktop files."
|
|
||||||
(interactive)
|
|
||||||
(let* ((mf (seq-filter #'file-regular-p (dired-get-marked-files)))
|
|
||||||
(qmf (mapcar #'shell-quote-argument mf))
|
|
||||||
(file-mime-list (mapcar (lambda (f) (list f (nd/get-mime-type f))) qmf)))
|
|
||||||
|
|
||||||
(if (= (length file-mime-list) 0)
|
|
||||||
(message "No files selected")
|
|
||||||
|
|
||||||
(let* ((first-pair (car file-mime-list))
|
|
||||||
(last-pairs (cdr file-mime-list))
|
|
||||||
mime-alist file-list)
|
|
||||||
(setq file-list (nth 0 first-pair)
|
|
||||||
mime-alist (nd/get-apps-from-mime (nth 1 first-pair)))
|
|
||||||
;; if multiple files selected, add to the selection list
|
|
||||||
(if last-pairs
|
|
||||||
(progn
|
|
||||||
(setq file-list (string-join (mapcar #'car file-mime-list) " "))
|
|
||||||
(dolist (mime (mapcar (lambda (f) (nth 1 f)) last-pairs))
|
|
||||||
(setq mime-alist (intersection mime-alist
|
|
||||||
(nd/get-apps-from-mime mime)
|
|
||||||
:test #'equal)))))
|
|
||||||
(if (= (length mime-alist) 0)
|
|
||||||
(let* ((ml (delete-dups (mapcan #'cdr file-mime-list)))
|
|
||||||
(mls (string-join ml ", ")))
|
|
||||||
(if (= (length ml) 1)
|
|
||||||
(message (concat "No apps found for mime type: " mls))
|
|
||||||
(message (concat "No common apps found for mime types: " mls))))
|
|
||||||
(helm
|
|
||||||
:sources (helm-build-sync-source "Apps"
|
|
||||||
:candidates mime-alist
|
|
||||||
:action '(("Open" . (lambda (f) (nd/execute-desktop-command f file-list)))))
|
|
||||||
:buffer "*helm open with*"))))))
|
|
||||||
|
|
||||||
(defun nd/dired-sort-by ()
|
|
||||||
"Sort current dired buffer by a list of choices presented in helm menu.
|
|
||||||
Note this assumes there are no sorting switches on `dired-ls'"
|
|
||||||
(interactive)
|
|
||||||
(let ((sort-alist '(("Name" . "")
|
|
||||||
("Date" . "-t")
|
|
||||||
("Size" . "-S")
|
|
||||||
("Extension" . "-X")
|
|
||||||
("Dirs First" . "--group-directories-first"))))
|
|
||||||
(helm
|
|
||||||
:sources
|
|
||||||
(helm-build-sync-source "Switches"
|
|
||||||
:candidates sort-alist
|
|
||||||
:action
|
|
||||||
'(("Sort" . (lambda (s) (dired-sort-other (concat dired-listing-switches " " s))))))
|
|
||||||
:buffer "*helm sort buffer*")))
|
|
||||||
#+END_SRC
|
|
||||||
** compression
|
|
||||||
Only supports tar.gz, tar.bz2, tar.xz, and .zip by default. Add support for more fun algos such as lzo and zpaq
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(if (file-exists-p "/usr/bin/7z")
|
|
||||||
(add-to-list 'dired-compress-files-alist
|
|
||||||
'("\\.7z\\'" . "7z a %o %i")))
|
|
||||||
|
|
||||||
(if (file-exists-p "/usr/bin/lrzip")
|
|
||||||
(progn
|
|
||||||
(add-to-list 'dired-compress-files-alist
|
|
||||||
'("\\.lrz\\'" . "lrzip -L 9 -o %o %i &"))
|
|
||||||
(add-to-list 'dired-compress-files-alist
|
|
||||||
'("\\.lzo\\'" . "lrzip -l -L 9 -o %o %i &"))
|
|
||||||
(add-to-list 'dired-compress-files-alist
|
|
||||||
'("\\.zpaq\\'" . "lrzip -z -L 9 -o %o %i &"))))
|
|
||||||
|
|
||||||
;; NOTE: this must be after the shorter lrz algos otherwise it will
|
|
||||||
;; always default to .lrz and not .tar.lrz
|
|
||||||
(if (file-exists-p "/usr/bin/lrztar")
|
|
||||||
(progn
|
|
||||||
(add-to-list 'dired-compress-files-alist
|
|
||||||
'("\\.tar\\.lrz\\'" . "lrztar -L 9 -o %o %i &"))
|
|
||||||
(add-to-list 'dired-compress-files-alist
|
|
||||||
'("\\.tar\\.lzo\\'" . "lrztar -l -L 9 -o %o %i &"))
|
|
||||||
(add-to-list 'dired-compress-files-alist
|
|
||||||
'("\\.tar\\.zpaq\\'" . "lrztar -z -L 9 -o %o %i &"))))
|
|
||||||
#+END_SRC
|
|
||||||
** formatting for humans
|
|
||||||
make sizes human readable
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(setq dired-listing-switches "-Alh")
|
|
||||||
#+END_SRC
|
|
||||||
* org-mode
|
* org-mode
|
||||||
** major mode
|
** major mode
|
||||||
*** general config
|
*** general config
|
||||||
|
@ -1757,8 +1642,124 @@ set as a text property for further sorting"
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
;;(require 'ox-taskjuggler)
|
;;(require 'ox-taskjuggler)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* mu4e
|
* tools
|
||||||
** basic
|
** magit
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(use-package magit
|
||||||
|
:ensure t
|
||||||
|
:config
|
||||||
|
:delight auto-revert-mode
|
||||||
|
(setq magit-push-always-verify nil
|
||||||
|
git-commit-summary-max-length 50))
|
||||||
|
#+END_SRC
|
||||||
|
** dired
|
||||||
|
*** no confirm
|
||||||
|
Keeping confirmation enabled does weird stuff with helm. Not ideal at the moment but we shall see if I find something better.
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq dired-no-confirm '(move copy))
|
||||||
|
#+END_SRC
|
||||||
|
*** interactive functions
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(defun nd/dired-xdg-open ()
|
||||||
|
"Open all non-text files in external app using xdg-open. Only regular files are considered"
|
||||||
|
(interactive)
|
||||||
|
(let* ((file-list (seq-filter #'file-regular-p (dired-get-marked-files)))
|
||||||
|
(do-it (if (<= (length file-list) 5)
|
||||||
|
t
|
||||||
|
(y-or-n-p "Open more then 5 files? "))))
|
||||||
|
(when do-it
|
||||||
|
(mapc
|
||||||
|
(lambda (f) (let ((process-connection-type nil))
|
||||||
|
(start-process "" nil "xdg-open" f)))
|
||||||
|
file-list))))
|
||||||
|
|
||||||
|
(defun nd/dired-open-with ()
|
||||||
|
"Open marked non-text files in external app via open-with dialog
|
||||||
|
according to mime types as listed in all available desktop files."
|
||||||
|
(interactive)
|
||||||
|
(let* ((mf (seq-filter #'file-regular-p (dired-get-marked-files)))
|
||||||
|
(qmf (mapcar #'shell-quote-argument mf))
|
||||||
|
(file-mime-list (mapcar (lambda (f) (list f (nd/get-mime-type f))) qmf)))
|
||||||
|
|
||||||
|
(if (= (length file-mime-list) 0)
|
||||||
|
(message "No files selected")
|
||||||
|
|
||||||
|
(let* ((first-pair (car file-mime-list))
|
||||||
|
(last-pairs (cdr file-mime-list))
|
||||||
|
mime-alist file-list)
|
||||||
|
(setq file-list (nth 0 first-pair)
|
||||||
|
mime-alist (nd/get-apps-from-mime (nth 1 first-pair)))
|
||||||
|
;; if multiple files selected, add to the selection list
|
||||||
|
(if last-pairs
|
||||||
|
(progn
|
||||||
|
(setq file-list (string-join (mapcar #'car file-mime-list) " "))
|
||||||
|
(dolist (mime (mapcar (lambda (f) (nth 1 f)) last-pairs))
|
||||||
|
(setq mime-alist (intersection mime-alist
|
||||||
|
(nd/get-apps-from-mime mime)
|
||||||
|
:test #'equal)))))
|
||||||
|
(if (= (length mime-alist) 0)
|
||||||
|
(let* ((ml (delete-dups (mapcan #'cdr file-mime-list)))
|
||||||
|
(mls (string-join ml ", ")))
|
||||||
|
(if (= (length ml) 1)
|
||||||
|
(message (concat "No apps found for mime type: " mls))
|
||||||
|
(message (concat "No common apps found for mime types: " mls))))
|
||||||
|
(helm
|
||||||
|
:sources (helm-build-sync-source "Apps"
|
||||||
|
:candidates mime-alist
|
||||||
|
:action '(("Open" . (lambda (f) (nd/execute-desktop-command f file-list)))))
|
||||||
|
:buffer "*helm open with*"))))))
|
||||||
|
|
||||||
|
(defun nd/dired-sort-by ()
|
||||||
|
"Sort current dired buffer by a list of choices presented in helm menu.
|
||||||
|
Note this assumes there are no sorting switches on `dired-ls'"
|
||||||
|
(interactive)
|
||||||
|
(let ((sort-alist '(("Name" . "")
|
||||||
|
("Date" . "-t")
|
||||||
|
("Size" . "-S")
|
||||||
|
("Extension" . "-X")
|
||||||
|
("Dirs First" . "--group-directories-first"))))
|
||||||
|
(helm
|
||||||
|
:sources
|
||||||
|
(helm-build-sync-source "Switches"
|
||||||
|
:candidates sort-alist
|
||||||
|
:action
|
||||||
|
'(("Sort" . (lambda (s) (dired-sort-other (concat dired-listing-switches " " s))))))
|
||||||
|
:buffer "*helm sort buffer*")))
|
||||||
|
#+END_SRC
|
||||||
|
*** compression
|
||||||
|
Only supports tar.gz, tar.bz2, tar.xz, and .zip by default. Add support for more fun algos such as lzo and zpaq
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(if (file-exists-p "/usr/bin/7z")
|
||||||
|
(add-to-list 'dired-compress-files-alist
|
||||||
|
'("\\.7z\\'" . "7z a %o %i")))
|
||||||
|
|
||||||
|
(if (file-exists-p "/usr/bin/lrzip")
|
||||||
|
(progn
|
||||||
|
(add-to-list 'dired-compress-files-alist
|
||||||
|
'("\\.lrz\\'" . "lrzip -L 9 -o %o %i &"))
|
||||||
|
(add-to-list 'dired-compress-files-alist
|
||||||
|
'("\\.lzo\\'" . "lrzip -l -L 9 -o %o %i &"))
|
||||||
|
(add-to-list 'dired-compress-files-alist
|
||||||
|
'("\\.zpaq\\'" . "lrzip -z -L 9 -o %o %i &"))))
|
||||||
|
|
||||||
|
;; NOTE: this must be after the shorter lrz algos otherwise it will
|
||||||
|
;; always default to .lrz and not .tar.lrz
|
||||||
|
(if (file-exists-p "/usr/bin/lrztar")
|
||||||
|
(progn
|
||||||
|
(add-to-list 'dired-compress-files-alist
|
||||||
|
'("\\.tar\\.lrz\\'" . "lrztar -L 9 -o %o %i &"))
|
||||||
|
(add-to-list 'dired-compress-files-alist
|
||||||
|
'("\\.tar\\.lzo\\'" . "lrztar -l -L 9 -o %o %i &"))
|
||||||
|
(add-to-list 'dired-compress-files-alist
|
||||||
|
'("\\.tar\\.zpaq\\'" . "lrztar -z -L 9 -o %o %i &"))))
|
||||||
|
#+END_SRC
|
||||||
|
*** formatting for humans
|
||||||
|
make sizes human readable
|
||||||
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(setq dired-listing-switches "-Alh")
|
||||||
|
#+END_SRC
|
||||||
|
** mu4e
|
||||||
|
*** basic
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(require 'mu4e)
|
(require 'mu4e)
|
||||||
(require 'smtpmail)
|
(require 'smtpmail)
|
||||||
|
@ -1786,7 +1787,7 @@ set as a text property for further sorting"
|
||||||
|
|
||||||
user-full-name "Nate Dwarshuis")
|
user-full-name "Nate Dwarshuis")
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
** headers view
|
*** headers view
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(setq mu4e-headers-fields '((:human-date . 11)
|
(setq mu4e-headers-fields '((:human-date . 11)
|
||||||
(:flags . 5)
|
(:flags . 5)
|
||||||
|
@ -1796,7 +1797,7 @@ set as a text property for further sorting"
|
||||||
mu4e-headers-time-format "%R"
|
mu4e-headers-time-format "%R"
|
||||||
mu4e-use-fancy-chars nil)
|
mu4e-use-fancy-chars nil)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
** contexts
|
*** contexts
|
||||||
I have current have three contexts, personal and two work accounts. The first is a gmail account and the second/third are office365 accounts.
|
I have current have three contexts, personal and two work accounts. The first is a gmail account and the second/third are office365 accounts.
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(setq mu4e-context-policy 'pick-first
|
(setq mu4e-context-policy 'pick-first
|
||||||
|
@ -1873,7 +1874,7 @@ I have current have three contexts, personal and two work accounts. The first is
|
||||||
("/emory/drafts" . ?d)
|
("/emory/drafts" . ?d)
|
||||||
("/emory/archive" . ?a)))))))
|
("/emory/archive" . ?a)))))))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
** org-mu4e
|
*** org-mu4e
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package org-mu4e
|
(use-package org-mu4e
|
||||||
:after (org mu4e)
|
:after (org mu4e)
|
||||||
|
@ -1884,7 +1885,7 @@ I have current have three contexts, personal and two work accounts. The first is
|
||||||
;; for composing rich-text emails using org mode
|
;; for composing rich-text emails using org mode
|
||||||
org-mu4e-convert-to-html t))
|
org-mu4e-convert-to-html t))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* bibtex
|
** bibtex
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package helm-bibtex
|
(use-package helm-bibtex
|
||||||
:ensure t
|
:ensure t
|
||||||
|
@ -1894,13 +1895,13 @@ I have current have three contexts, personal and two work accounts. The first is
|
||||||
bibtex-completion-library-path (expand-file-name "~/BibTeX/pdf")
|
bibtex-completion-library-path (expand-file-name "~/BibTeX/pdf")
|
||||||
bibtex-completion-pdf-field "File"))
|
bibtex-completion-pdf-field "File"))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* shell
|
** shell
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defadvice ansi-term (before force-bash)
|
(defadvice ansi-term (before force-bash)
|
||||||
(interactive (list "/bin/zsh")))
|
(interactive (list "/bin/zsh")))
|
||||||
(ad-activate 'ansi-term)
|
(ad-activate 'ansi-term)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* ediff
|
** ediff
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(setq ediff-window-setup-function 'ediff-setup-windows-plain)
|
(setq ediff-window-setup-function 'ediff-setup-windows-plain)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
Loading…
Reference in New Issue