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
|
||||
'((company-ghc))))))
|
||||
#+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
|
||||
** major mode
|
||||
*** general config
|
||||
|
@ -1757,8 +1642,124 @@ set as a text property for further sorting"
|
|||
#+BEGIN_SRC emacs-lisp
|
||||
;;(require 'ox-taskjuggler)
|
||||
#+END_SRC
|
||||
* mu4e
|
||||
** basic
|
||||
* tools
|
||||
** 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
|
||||
(require 'mu4e)
|
||||
(require 'smtpmail)
|
||||
|
@ -1786,7 +1787,7 @@ set as a text property for further sorting"
|
|||
|
||||
user-full-name "Nate Dwarshuis")
|
||||
#+END_SRC
|
||||
** headers view
|
||||
*** headers view
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq mu4e-headers-fields '((:human-date . 11)
|
||||
(:flags . 5)
|
||||
|
@ -1796,7 +1797,7 @@ set as a text property for further sorting"
|
|||
mu4e-headers-time-format "%R"
|
||||
mu4e-use-fancy-chars nil)
|
||||
#+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.
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(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/archive" . ?a)))))))
|
||||
#+END_SRC
|
||||
** org-mu4e
|
||||
*** org-mu4e
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package 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
|
||||
org-mu4e-convert-to-html t))
|
||||
#+END_SRC
|
||||
* bibtex
|
||||
** bibtex
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package helm-bibtex
|
||||
: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-pdf-field "File"))
|
||||
#+END_SRC
|
||||
* shell
|
||||
** shell
|
||||
#+begin_src emacs-lisp
|
||||
(defadvice ansi-term (before force-bash)
|
||||
(interactive (list "/bin/zsh")))
|
||||
(ad-activate 'ansi-term)
|
||||
#+END_SRC
|
||||
* ediff
|
||||
** ediff
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(setq ediff-window-setup-function 'ediff-setup-windows-plain)
|
||||
#+END_SRC
|
||||
|
|
Loading…
Reference in New Issue