|
@ -57,13 +57,35 @@ |
|
|
(("C-c SPC" . just-one-space) |
|
|
(("C-c SPC" . just-one-space) |
|
|
("M-SPC" . ace-jump-mode))) |
|
|
("M-SPC" . ace-jump-mode))) |
|
|
|
|
|
|
|
|
|
|
|
;; https://github.com/jacktasia/dumb-jump |
|
|
|
|
|
(use-package dumb-jump |
|
|
|
|
|
:disabled |
|
|
|
|
|
:hook js-mode |
|
|
|
|
|
:bind ( |
|
|
|
|
|
("M-." . dumb-jump-go) |
|
|
|
|
|
("M-," . dumb-jump-back) |
|
|
|
|
|
("M->" . dumb-jump-quick-look) |
|
|
|
|
|
) |
|
|
|
|
|
:config |
|
|
|
|
|
(setq dumb-jump-selector 'ivy) |
|
|
|
|
|
(setq dumb-jump-force-searcher 'rg)) |
|
|
|
|
|
|
|
|
;; https://github.com/NicolasPetton/zerodark-theme |
|
|
;; https://github.com/NicolasPetton/zerodark-theme |
|
|
(use-package zerodark-theme |
|
|
(use-package zerodark-theme |
|
|
:demand t |
|
|
:demand t |
|
|
|
|
|
:init |
|
|
|
|
|
(setq max-specpdl-size 3000) |
|
|
|
|
|
(setq max-lisp-eval-depth 3000) |
|
|
:config |
|
|
:config |
|
|
(load-theme 'zerodark t) |
|
|
(load-theme 'zerodark t) |
|
|
(zerodark-setup-modeline-format)) |
|
|
(zerodark-setup-modeline-format)) |
|
|
|
|
|
|
|
|
|
|
|
;; ;; https://github.com/belak/base16-emacs |
|
|
|
|
|
;; (use-package base16-theme |
|
|
|
|
|
;; :disabled |
|
|
|
|
|
;; :config |
|
|
|
|
|
;; (load-theme 'base16-tomorrow t)) |
|
|
|
|
|
|
|
|
;; https://github.com/Malabarba/beacon |
|
|
;; https://github.com/Malabarba/beacon |
|
|
(use-package beacon |
|
|
(use-package beacon |
|
|
:commands beacon-mode |
|
|
:commands beacon-mode |
|
@ -99,6 +121,34 @@ |
|
|
:keybinding "m") |
|
|
:keybinding "m") |
|
|
(engine-mode 1)) |
|
|
(engine-mode 1)) |
|
|
|
|
|
|
|
|
|
|
|
(use-package excorporate |
|
|
|
|
|
:disabled |
|
|
|
|
|
:defer 5 |
|
|
|
|
|
:straight (:host github :repo "emacsmirror/excorporate" :branch "master") |
|
|
|
|
|
:config |
|
|
|
|
|
(setq-default excorporate-configuration (quote ("lolson@eaglecrk.com" . "https://outlook.office365.com/EWS/Exchange.asmx")) |
|
|
|
|
|
org-agenda-include-diary t) |
|
|
|
|
|
|
|
|
|
|
|
(add-hook 'diary-mark-entries-hook 'diary-mark-included-diary-files) |
|
|
|
|
|
|
|
|
|
|
|
(defun my/agenda-update-diary () |
|
|
|
|
|
"Update exchange diary." |
|
|
|
|
|
(interactive) |
|
|
|
|
|
(exco-diary-diary-advice |
|
|
|
|
|
(calendar-current-date) |
|
|
|
|
|
(calendar-current-date) |
|
|
|
|
|
#'message "Diary updated")) |
|
|
|
|
|
|
|
|
|
|
|
;; Update diary each time the agenda is refreshed |
|
|
|
|
|
;; (add-hook 'org-agenda-cleanup-fancy-diary-hook 'my/agenda-update-diary) |
|
|
|
|
|
|
|
|
|
|
|
;; activate excorporate and request un/pw |
|
|
|
|
|
(excorporate) |
|
|
|
|
|
|
|
|
|
|
|
;; enable diary integration |
|
|
|
|
|
(excorporate-diary-enable) |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
;; https://github.com/Fanael/rainbow-delimiters |
|
|
;; https://github.com/Fanael/rainbow-delimiters |
|
|
(use-package rainbow-delimiters |
|
|
(use-package rainbow-delimiters |
|
|
:hook (prog-mode . rainbow-delimiters-mode)) |
|
|
:hook (prog-mode . rainbow-delimiters-mode)) |
|
@ -128,7 +178,7 @@ |
|
|
(setq dashboard-startup-banner 1) |
|
|
(setq dashboard-startup-banner 1) |
|
|
(setq dashboard-show-shortcuts t) |
|
|
(setq dashboard-show-shortcuts t) |
|
|
(setq show-week-agenda-p t) |
|
|
(setq show-week-agenda-p t) |
|
|
(setq dashboard-org-agenda-categories '("work" "tasks")) |
|
|
|
|
|
|
|
|
(setq dashboard-org-agenda-categories '("eaglecrk")) |
|
|
:config |
|
|
:config |
|
|
(dashboard-setup-startup-hook)) |
|
|
(dashboard-setup-startup-hook)) |
|
|
|
|
|
|
|
@ -191,28 +241,56 @@ |
|
|
;; https://github.com/skeeto/elfeed |
|
|
;; https://github.com/skeeto/elfeed |
|
|
(use-package elfeed |
|
|
(use-package elfeed |
|
|
:bind |
|
|
:bind |
|
|
(("C-x C-l e" . elfeed) |
|
|
|
|
|
:map elfeed-search-mode-map |
|
|
|
|
|
("a" . (lambda () (interactive) (elfeed-search-set-filter ""))) |
|
|
|
|
|
("e" . (lambda () (interactive) (elfeed-search-set-filter "+emacs"))) |
|
|
|
|
|
("d" . (lambda () (interactive) (elfeed-search-set-filter "+daily"))) |
|
|
|
|
|
("x" . (lambda () (interactive) (elfeed-search-set-filter "xkcd")))) |
|
|
|
|
|
|
|
|
("C-x C-l e" . elfeed) |
|
|
|
|
|
(:map elfeed-search-mode-map |
|
|
|
|
|
("a" . (lambda () (interactive) (elfeed-search-set-filter ""))) |
|
|
|
|
|
("e" . (lambda () (interactive) (elfeed-search-set-filter "+emacs"))) |
|
|
|
|
|
("x" . (lambda () (interactive) (elfeed-search-set-filter "xkcd"))) |
|
|
|
|
|
("=" . elfeed-search-set-filter)) |
|
|
:init |
|
|
:init |
|
|
(setq elfeed-feeds |
|
|
(setq elfeed-feeds |
|
|
'( |
|
|
'( |
|
|
|
|
|
("https://insideevs.com/rss/make/tesla/" news tesla ev) |
|
|
|
|
|
("https://insideevs.com/rss/make/rivian/" news rivian ev) |
|
|
|
|
|
("https://insideevs.com/rss/category/battery-tech/" news battery ev) |
|
|
|
|
|
("https://www.google.com/alerts/feeds/13353713273807811484/17577790586956417498" news google cybertruck tesla ev) |
|
|
|
|
|
("https://www.google.com/alerts/feeds/13353713273807811484/2710948715805064535" news google tesla ev) |
|
|
|
|
|
("https://www.google.com/alerts/feeds/13353713273807811484/17638090915837343269" news google pixel4) |
|
|
|
|
|
|
|
|
|
|
|
("https://teslapodcast.libsyn.com/rss" podcast tesla ev) |
|
|
|
|
|
("http://feeds.twit.tv/sn.xml" podcast security twit) |
|
|
|
|
|
("https://feeds.fireside.fm/linuxunplugged/rss" podcast linux) |
|
|
|
|
|
("https://latenightlinux.com/feed/all" podcast linux) |
|
|
|
|
|
|
|
|
|
|
|
("https://www.youtube.com/feeds/videos.xml?channel_id=UCbgBDBrwsikmtoLqtpc59Bw" youtube 3dp) |
|
|
|
|
|
|
|
|
|
|
|
("http://www.reddit.com/r/emacs/.rss" emacs) |
|
|
|
|
|
|
|
|
("http://telescoper.wordpress.com/feed/" daily) |
|
|
("http://telescoper.wordpress.com/feed/" daily) |
|
|
("http://xkcd.com/rss.xml" daily) |
|
|
("http://xkcd.com/rss.xml" daily) |
|
|
("http://timharford.com/feed/" daily) |
|
|
|
|
|
("http://understandinguncertainty.org/rss.xml" daily) |
|
|
|
|
|
("http://pragmaticemacs.com/feed/" emacs) |
|
|
("http://pragmaticemacs.com/feed/" emacs) |
|
|
("http://endlessparentheses.com/atom.xml" emacs) |
|
|
("http://endlessparentheses.com/atom.xml" emacs) |
|
|
("http://feeds.feedburner.com/XahsEmacsBlog" emacs) |
|
|
("http://feeds.feedburner.com/XahsEmacsBlog" emacs) |
|
|
("http://emacs.stackexchange.com/feeds" emacs) |
|
|
("http://emacs.stackexchange.com/feeds" emacs) |
|
|
("https://www.google.com/alerts/feeds/13353713273807811484/2710948715805064535" tesla) |
|
|
|
|
|
("https://www.google.com/alerts/feeds/13353713273807811484/17638090915837343269" pixel4) |
|
|
|
|
|
("https://www.google.com/alerts/feeds/13353713273807811484/14416938028701328804" stadia) |
|
|
|
|
|
)) |
|
|
)) |
|
|
:config |
|
|
:config |
|
|
|
|
|
(defun yt-dl-it (url) |
|
|
|
|
|
"Downloads the URL in an async shell" |
|
|
|
|
|
(let ((default-directory "~/Videos")) |
|
|
|
|
|
(async-shell-command (format "youtube-dl %s" url)))) |
|
|
|
|
|
|
|
|
|
|
|
(defun elfeed-youtube-dl (&optional use-generic-p) |
|
|
|
|
|
"Youtube-DL link" |
|
|
|
|
|
(interactive "P") |
|
|
|
|
|
(let ((entries (elfeed-search-selected))) |
|
|
|
|
|
(cl-loop for entry in entries |
|
|
|
|
|
do (elfeed-untag entry 'unread) |
|
|
|
|
|
when (elfeed-entry-link entry) |
|
|
|
|
|
do (yt-dl-it it)) |
|
|
|
|
|
(mapc #'elfeed-search-update-entry entries) |
|
|
|
|
|
(unless (use-region-p) (forward-line)))) |
|
|
|
|
|
|
|
|
|
|
|
(define-key elfeed-search-mode-map (kbd "d") 'elfeed-youtube-dl) |
|
|
(elfeed-update)) |
|
|
(elfeed-update)) |
|
|
|
|
|
|
|
|
;; https://github.com/rmuslimov/browse-at-remote |
|
|
;; https://github.com/rmuslimov/browse-at-remote |
|
@ -229,7 +307,7 @@ |
|
|
|
|
|
|
|
|
;; https://github.com/lewang/fic-mode |
|
|
;; https://github.com/lewang/fic-mode |
|
|
(use-package fic-mode |
|
|
(use-package fic-mode |
|
|
:hook (prog-mode js-mode javascript-mode) |
|
|
|
|
|
|
|
|
;; :hook (prog-mode js-mode) |
|
|
:custom-face |
|
|
:custom-face |
|
|
(fic-face ((t :foreground "red" :weight bold))) |
|
|
(fic-face ((t :foreground "red" :weight bold))) |
|
|
(fic-author-face ((t :foreground "red" :underline t)))) |
|
|
(fic-author-face ((t :foreground "red" :underline t)))) |
|
@ -247,7 +325,10 @@ |
|
|
(use-package company |
|
|
(use-package company |
|
|
:defer 25 |
|
|
:defer 25 |
|
|
:commands company-mode |
|
|
:commands company-mode |
|
|
:hook (prog-mode . company-mode) |
|
|
|
|
|
|
|
|
:hook ( |
|
|
|
|
|
(prog-mode . company-mode) |
|
|
|
|
|
(ledger-mode . company-mode) |
|
|
|
|
|
) |
|
|
:bind |
|
|
:bind |
|
|
(:map company-active-map |
|
|
(:map company-active-map |
|
|
("M-n" . nil) |
|
|
("M-n" . nil) |
|
@ -294,6 +375,24 @@ |
|
|
:config |
|
|
:config |
|
|
(projectile-mode 1)) |
|
|
(projectile-mode 1)) |
|
|
|
|
|
|
|
|
|
|
|
;; https://github.com/ledger/ledger-mode |
|
|
|
|
|
(use-package ledger-mode |
|
|
|
|
|
:mode ("\\.dat\\'" "\\.ledger\\'") |
|
|
|
|
|
:bind |
|
|
|
|
|
(("C-x C-l l" . (lambda () (interactive) (find-file "~/Documents/finance-records/ledger.dat"))) |
|
|
|
|
|
:map ledger-mode-map |
|
|
|
|
|
("M-q" . leo/kill-this-buffer-unless-scratch) |
|
|
|
|
|
("C-<tab>" . ledger-mode-clean-buffer) |
|
|
|
|
|
("<backtab>" . ledger-post-align-dwim) |
|
|
|
|
|
) |
|
|
|
|
|
:hook |
|
|
|
|
|
(ledger-mode . (lambda () |
|
|
|
|
|
(setq tab-always-indent 'complete) |
|
|
|
|
|
(setq-local completion-cycle-threshold t) |
|
|
|
|
|
(setq-local ledger-complete-in-steps t) |
|
|
|
|
|
)) |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
;; https://github.com/magit/git-modes |
|
|
;; https://github.com/magit/git-modes |
|
|
(use-package gitignore-mode |
|
|
(use-package gitignore-mode |
|
|
:mode ("\\.gitignore\\'")) |
|
|
:mode ("\\.gitignore\\'")) |
|
@ -304,7 +403,61 @@ |
|
|
|
|
|
|
|
|
;; http://web-mode.org/ |
|
|
;; http://web-mode.org/ |
|
|
(use-package web-mode |
|
|
(use-package web-mode |
|
|
:hook (html-mode xml-mode)) |
|
|
|
|
|
|
|
|
:hook (html-mode nxml-mode)) |
|
|
|
|
|
|
|
|
|
|
|
;; JAVASCRIPT SECTION |
|
|
|
|
|
(use-package lsp-mode |
|
|
|
|
|
:straight (:host github :repo "emacs-lsp/lsp-mode" :branch "master") |
|
|
|
|
|
;; set prefix for lsp-command-keymap (few alternatives - "C-l", "C-c l") |
|
|
|
|
|
:init (setq lsp-keymap-prefix "C-c l") |
|
|
|
|
|
:hook (;; replace XXX-mode with concrete major-mode(e. g. python-mode) |
|
|
|
|
|
(js-mode . lsp) |
|
|
|
|
|
(css-mode . lsp) |
|
|
|
|
|
(yaml-mode . lsp) |
|
|
|
|
|
;; if you want which-key integration |
|
|
|
|
|
(lsp-mode . lsp-enable-which-key-integration)) |
|
|
|
|
|
:bind |
|
|
|
|
|
( |
|
|
|
|
|
:map js-mode-map |
|
|
|
|
|
("M-." . lsp-find-definition) |
|
|
|
|
|
) |
|
|
|
|
|
:commands lsp) |
|
|
|
|
|
|
|
|
|
|
|
(use-package lsp-ui |
|
|
|
|
|
:straight (:host github :repo "emacs-lsp/lsp-ui" :branch "master") |
|
|
|
|
|
:commands lsp-ui-mode) |
|
|
|
|
|
(use-package company-lsp |
|
|
|
|
|
:straight (:host github :repo "tigersoldier/company-lsp" :branch "master") |
|
|
|
|
|
:commands company-lsp) |
|
|
|
|
|
(use-package lsp-ivy |
|
|
|
|
|
:straight (:host github :repo "emacs-lsp/lsp-ivy" :branch "master") |
|
|
|
|
|
:commands lsp-ivy-workspace-symbol) |
|
|
|
|
|
(use-package lsp-treemacs |
|
|
|
|
|
:straight (:host github :repo "emacs-lsp/lsp-treemacs" :branch "master") |
|
|
|
|
|
:commands lsp-treemacs-errors-list) |
|
|
|
|
|
|
|
|
|
|
|
(use-package js2-mode |
|
|
|
|
|
:disabled |
|
|
|
|
|
:mode ("\\.js\\'")) |
|
|
|
|
|
(use-package typescript-mode |
|
|
|
|
|
:disabled |
|
|
|
|
|
:mode ("\\.js\\'")) |
|
|
|
|
|
(use-package tide |
|
|
|
|
|
:disabled |
|
|
|
|
|
:ensure t |
|
|
|
|
|
:after (typescript-mode company flycheck) |
|
|
|
|
|
:hook ((typescript-mode . tide-setup) |
|
|
|
|
|
(typescript-mode . tide-hl-identifier-mode) |
|
|
|
|
|
(before-save . tide-format-before-save)) |
|
|
|
|
|
:bind ( |
|
|
|
|
|
("M-?" . tide-references) |
|
|
|
|
|
("M-r" . tide-rename-symbol) |
|
|
|
|
|
("M-/" . tide-jsdoc-template) |
|
|
|
|
|
("M-o" . tide-organize-imports) |
|
|
|
|
|
)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; https://github.com/smihica/emmet-mode |
|
|
;; https://github.com/smihica/emmet-mode |
|
|
(use-package emmet-mode |
|
|
(use-package emmet-mode |
|
@ -349,6 +502,141 @@ |
|
|
(setq flycheck-emacs-lisp-load-path 'inherit) |
|
|
(setq flycheck-emacs-lisp-load-path 'inherit) |
|
|
(global-flycheck-mode)) |
|
|
(global-flycheck-mode)) |
|
|
|
|
|
|
|
|
|
|
|
;; Mu4e |
|
|
|
|
|
(use-package mu4e |
|
|
|
|
|
:load-path "/usr/local/share/emacs/site-lisp/mu/mu4e" |
|
|
|
|
|
:commands mu4e |
|
|
|
|
|
:bind |
|
|
|
|
|
( |
|
|
|
|
|
("C-x C-l m" . mu4e) |
|
|
|
|
|
;; :map mu4e-headers-mode-map |
|
|
|
|
|
) |
|
|
|
|
|
:config |
|
|
|
|
|
(setq mu4e-maildir "/Users/leviolson/Maildir" |
|
|
|
|
|
mu4e-mu-binary "/usr/local/bin/mu" |
|
|
|
|
|
mail-user-agent 'mu4e-user-agent |
|
|
|
|
|
mu4e-change-filenames-when-moving t ;; Rename files when moving (required by mbsync) |
|
|
|
|
|
mu4e-compose-in-new-frame t ;; New compose gets new frame |
|
|
|
|
|
mu4e-context-policy 'pick-first |
|
|
|
|
|
mu4e-get-mail-command "true" ; /Users/leviolson/scripts/bash/get-email.sh |
|
|
|
|
|
;; Get mail automatically (outside emacs) via brew services |
|
|
|
|
|
;; "mbsync -a && mu index && open bitbar://refreshPlugin?name=mail.sh" |
|
|
|
|
|
;; MBSYNC is the mail cmd |
|
|
|
|
|
mu4e-html2text-command "/usr/local/bin/w3m -T text/html" ;; HTML to text command |
|
|
|
|
|
mu4e-headers-include-related nil ;; Stop threading in INBOX |
|
|
|
|
|
mu4e-sent-messages-behavior 'delete ;; Delete sent messages |
|
|
|
|
|
mu4e-update-interval 60 ;; 1 min |
|
|
|
|
|
mu4e-use-fancy-chars t ;; use 'fancy' chars |
|
|
|
|
|
mu4e-user-mail-address-list '("lolson@eaglecrk.com") |
|
|
|
|
|
|
|
|
|
|
|
mu4e-view-show-images t ;; attempt to show images |
|
|
|
|
|
mu4e-view-image-max-width 400 ;; max image size |
|
|
|
|
|
|
|
|
|
|
|
message-citation-line-format "On %a %d %b %Y at %R, %f wrote:\n" ;; customize the reply-quote-string |
|
|
|
|
|
message-citation-line-function 'message-insert-formatted-citation-line ;; choose to use the formatted string |
|
|
|
|
|
message-kill-buffer-on-exit t ;; don't keep messages around |
|
|
|
|
|
|
|
|
|
|
|
send-mail-function 'smtpmail-send-it ;; Default email send function |
|
|
|
|
|
smtpmail-default-smtp-server "smtp.office365.com" |
|
|
|
|
|
smtpmail-smtp-service 587 |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
(setq mu4e-contexts |
|
|
|
|
|
`( |
|
|
|
|
|
,(make-mu4e-context |
|
|
|
|
|
:name "EagleCreek" |
|
|
|
|
|
:enter-func (lambda () (mu4e-message "Entering EagleCreek")) |
|
|
|
|
|
:leave-func (lambda () (mu4e-message "Leaving EagleCreek")) |
|
|
|
|
|
;; we match based on the contact-fields of the message |
|
|
|
|
|
:match-func (lambda (msg) |
|
|
|
|
|
(when msg |
|
|
|
|
|
(string= (mu4e-message-field msg :maildir) "/eaglecrk"))) |
|
|
|
|
|
:vars '( ( user-mail-address . "lolson@eaglecrk.com" ) |
|
|
|
|
|
( smtpmail-mail-address . "lolson@eaglecrk.com" ) |
|
|
|
|
|
( smtpmail-smtp-user . "lolson@eaglecrk.com" ) |
|
|
|
|
|
( smtpmail-smtp-server . "smtp.office365.com" ) |
|
|
|
|
|
( user-full-name . "Levi Olson" ) |
|
|
|
|
|
( mu4e-compose-signature . |
|
|
|
|
|
(concat |
|
|
|
|
|
"Levi Olson\n" |
|
|
|
|
|
"Eagle Creek Software Services\n" |
|
|
|
|
|
"Senior Application Developer Consultant\n")) |
|
|
|
|
|
( mu4e-sent-folder . "/eaglecrk/Sent Items" ) |
|
|
|
|
|
( mu4e-refile-folder . "/eaglecrk/Archive" ) |
|
|
|
|
|
( mu4e-drafts-folder . "/eaglecrk/Drafts" ) |
|
|
|
|
|
( mu4e-trash-folder . "/eaglecrk/Deleted Items" ) |
|
|
|
|
|
( mu4e-maildir-shortcuts . (("/eaglecrk/Inbox" . ?i) |
|
|
|
|
|
("/eaglecrk/Sent Items" . ?s) |
|
|
|
|
|
("/eaglecrk/Deleted Items" . ?t) |
|
|
|
|
|
("/eaglecrk/Archive" . ?a) |
|
|
|
|
|
)))) |
|
|
|
|
|
;; ,(make-mu4e-context |
|
|
|
|
|
;; :name "Gmail" |
|
|
|
|
|
;; :enter-func (lambda () (mu4e-message "Entering Gmail")) |
|
|
|
|
|
;; :leave-func (lambda () (mu4e-message "Leaving Gmail")) |
|
|
|
|
|
;; ;; this matches maildir /Arkham and its sub-directories |
|
|
|
|
|
;; :match-func (lambda (msg) |
|
|
|
|
|
;; (when msg |
|
|
|
|
|
;; (string= (mu4e-message-field msg :maildir) "/gmail"))) |
|
|
|
|
|
;; :vars '( ( user-mail-address . "olson.levi@gmail.com" ) |
|
|
|
|
|
;; ( smtpmail-mail-address . "olson.levi@gmail.com" ) |
|
|
|
|
|
;; ( smtpmail-smtp-user . "olson.levi@gmail.com" ) |
|
|
|
|
|
;; ( smtpmail-smtp-server . "smtp.gmail.com" ) |
|
|
|
|
|
;; ( user-full-name . "Levi Olson" ) |
|
|
|
|
|
;; ( mu4e-compose-signature . |
|
|
|
|
|
;; (concat |
|
|
|
|
|
;; "Levi\n")) |
|
|
|
|
|
;; ( mu4e-sent-folder . "/gmail/[Gmail]/Sent Mail" ) |
|
|
|
|
|
;; ( mu4e-refile-folder . "/gmail/[Gmail]/All Mail" ) |
|
|
|
|
|
;; ( mu4e-drafts-folder . "/gmail/[Gmail]/Drafts" ) |
|
|
|
|
|
;; ( mu4e-trash-folder . "/gmail/[Gmail]/Trash" ) |
|
|
|
|
|
;; ( mu4e-maildir-shortcuts . (("/gmail/Inbox" . ?i) |
|
|
|
|
|
;; ("/gmail/[Gmail]/Sent Mail" . ?s) |
|
|
|
|
|
;; ("/gmail/[Gmail]/Trash" . ?t) |
|
|
|
|
|
;; ("/gmail/[Gmail]/All Mail" . ?a) |
|
|
|
|
|
;; )))) |
|
|
|
|
|
)) |
|
|
|
|
|
|
|
|
|
|
|
;; Add option to view HTML in browser |
|
|
|
|
|
(add-to-list 'mu4e-headers-actions |
|
|
|
|
|
'("in browser" . mu4e-action-view-in-browser) t) |
|
|
|
|
|
(add-to-list 'mu4e-view-actions |
|
|
|
|
|
'("in browser" . mu4e-action-view-in-browser) t) |
|
|
|
|
|
|
|
|
|
|
|
(defun my-message-current-line-cited-p () |
|
|
|
|
|
"Indicate whether the line at point is a cited line." |
|
|
|
|
|
(save-match-data |
|
|
|
|
|
(string-match (concat "^" message-cite-prefix-regexp) |
|
|
|
|
|
(buffer-substring (line-beginning-position) (line-end-position))))) |
|
|
|
|
|
|
|
|
|
|
|
(defun my-message-says-attachment-p () |
|
|
|
|
|
"Return t if the message suggests there can be an attachment." |
|
|
|
|
|
(save-excursion |
|
|
|
|
|
(goto-char (point-min)) |
|
|
|
|
|
(save-match-data |
|
|
|
|
|
(let (search-result) |
|
|
|
|
|
(while |
|
|
|
|
|
(and (setq search-result (re-search-forward "\\(attach\\|pdf\\|file\\)" nil t)) |
|
|
|
|
|
(my-message-current-line-cited-p))) |
|
|
|
|
|
search-result)))) |
|
|
|
|
|
|
|
|
|
|
|
(defun my-message-has-attachment-p () |
|
|
|
|
|
"Return t if the message has an attachment." |
|
|
|
|
|
(save-excursion |
|
|
|
|
|
(goto-char (point-min)) |
|
|
|
|
|
(save-match-data |
|
|
|
|
|
(re-search-forward "<#part" nil t)))) |
|
|
|
|
|
|
|
|
|
|
|
(defun my-message-pre-send-check-attachment () |
|
|
|
|
|
(when (and (my-message-says-attachment-p) |
|
|
|
|
|
(not (my-message-has-attachment-p))) |
|
|
|
|
|
(unless |
|
|
|
|
|
(y-or-n-p "No attachment, send anyway? ") |
|
|
|
|
|
(error "It seems that an attachment is needed, but none was found. Aborting sending")))) |
|
|
|
|
|
|
|
|
|
|
|
(add-hook 'message-send-hook 'my-message-pre-send-check-attachment)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;; https://orgmode.org/elpa.html |
|
|
;; https://orgmode.org/elpa.html |
|
|
(use-package org |
|
|
(use-package org |
|
|
:commands org-capture |
|
|
:commands org-capture |
|
@ -370,18 +658,21 @@ |
|
|
(defvar org-capture-templates) |
|
|
(defvar org-capture-templates) |
|
|
:init |
|
|
:init |
|
|
(setq org-agenda-files '("~/Dropbox/Org/todo.org" |
|
|
(setq org-agenda-files '("~/Dropbox/Org/todo.org" |
|
|
;; "~/Dropbox/Org/projects.org" |
|
|
|
|
|
|
|
|
"~/Dropbox/Org/diary/eaglecrk.org" |
|
|
"~/Dropbox/Org/archive.org" |
|
|
"~/Dropbox/Org/archive.org" |
|
|
;; "~/Dropbox/Org/diary/eaglecrk.org" |
|
|
|
|
|
|
|
|
"~/Projects/vlocity/cmt-training-org/LightningWebComponents/README.org" |
|
|
|
|
|
;; "~/.emacs.d/excorporate/diary-excorporate-today" |
|
|
)) |
|
|
)) |
|
|
|
|
|
(setq org-agenda-include-diary t) |
|
|
(add-to-list 'safe-local-variable-values '(eval leo/deft-insert-boilerplate)) |
|
|
(add-to-list 'safe-local-variable-values '(eval leo/deft-insert-boilerplate)) |
|
|
(setq org-todo-keywords '((sequence "TODO(t)" "|" "DONE(d)") |
|
|
(setq org-todo-keywords '((sequence "TODO(t)" "|" "DONE(d)") |
|
|
(sequence "BUG(b)" "INPROGRESS(i)" "|" "FIXED(f)") |
|
|
(sequence "BUG(b)" "INPROGRESS(i)" "|" "FIXED(f)") |
|
|
(sequence "TEST(T)" "NOTEST(N)" "|" "COMPLETE(C)") |
|
|
(sequence "TEST(T)" "NOTEST(N)" "|" "COMPLETE(C)") |
|
|
|
|
|
(sequence "QUESTION(Q)" "|" "ANSWERED(A)") |
|
|
(sequence "|" "CANCELED(c)") |
|
|
(sequence "|" "CANCELED(c)") |
|
|
(sequence "|" "NEEDCLARIFICATION(n)") |
|
|
(sequence "|" "NEEDCLARIFICATION(n)") |
|
|
(sequence "|" "PROVIDEUPDATE(p)") |
|
|
(sequence "|" "PROVIDEUPDATE(p)") |
|
|
(sequence "|" "WAITING(w)")) |
|
|
|
|
|
|
|
|
(sequence "WAITING(w)" "|")) |
|
|
org-refile-targets '((nil :maxlevel . 3) |
|
|
org-refile-targets '((nil :maxlevel . 3) |
|
|
(org-agenda-files :maxlevel . 3)) |
|
|
(org-agenda-files :maxlevel . 3)) |
|
|
org-directory "~/Dropbox/Org" |
|
|
org-directory "~/Dropbox/Org" |
|
@ -466,6 +757,11 @@ |
|
|
(add-hook 'org-mode-hook 'add-checkbox-symbol-keywords) |
|
|
(add-hook 'org-mode-hook 'add-checkbox-symbol-keywords) |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
;; https://github.com/seanohalpin/org-link-minor-mode |
|
|
|
|
|
(use-package org-link-minor-mode |
|
|
|
|
|
:straight (:host github :repo "seanohalpin/org-link-minor-mode" :branch "master") |
|
|
|
|
|
:commands org-link-minor-mode) |
|
|
|
|
|
|
|
|
(use-package ob-restclient |
|
|
(use-package ob-restclient |
|
|
:disabled |
|
|
:disabled |
|
|
:ensure t |
|
|
:ensure t |
|
@ -563,7 +859,8 @@ |
|
|
("M-p" . leo/jump-to-prev-symbol) |
|
|
("M-p" . leo/jump-to-prev-symbol) |
|
|
("M-u" . upcase-dwim) |
|
|
("M-u" . upcase-dwim) |
|
|
("M-c" . capitalize-dwim) |
|
|
("M-c" . capitalize-dwim) |
|
|
("M-l" . downcase-dwim)) |
|
|
|
|
|
|
|
|
("M-l" . downcase-dwim) |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
;; https://github.com/nflath/sudo-edit |
|
|
;; https://github.com/nflath/sudo-edit |
|
|
(use-package sudo-edit |
|
|
(use-package sudo-edit |
|
|