trying to fix tabs

This commit is contained in:
Chris Cochrun 2021-05-04 08:37:11 -05:00
parent 2a3f17c90e
commit 31d634d12e
2 changed files with 482 additions and 541 deletions

View file

@ -74,6 +74,7 @@ Let's start by making some basic ui changes like turning off the scrollbar, tool
(menu-bar-mode -1)
(blink-cursor-mode -1)
(column-number-mode +1)
(setq-default indent-tabs-mode nil)
#+end_src
In order to have this config work on both my desktop with regular joe-schmoe monitors and my laptop with new-hotness HiDPI monitor, I will set the font size if my system is the laptop to much higher.
@ -91,7 +92,7 @@ In order to have this config work on both my desktop with regular joe-schmoe mon
:height chris/default-font-size)
(set-face-attribute 'variable-pitch nil :font "Cantarell"
:height (+ chris/default-font-size (/ chris/default-font-size 8))
:weight 'regular))
:weight 'regular))
(defun chris/set-transparency ()
"Set the frame to be transparent on Wayland compositors"
@ -101,10 +102,10 @@ In order to have this config work on both my desktop with regular joe-schmoe mon
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(with-selected-frame frame
(chris/set-font-faces)
(chris/set-transparency)))
(lambda (frame)
(with-selected-frame frame
(chris/set-font-faces)
(chris/set-transparency)))
(chris/set-font-faces))
(chris/set-transparency))
#+end_src
@ -183,6 +184,12 @@ To use straight we need to bootstrap it. This code is pulled right from Straight
(setq use-package-verbose t)
#+end_src
Now let's make sure our package archives includes the newer org.
#+begin_src emacs-lisp :tangle no
(add-to-list 'package-archives '("org" . "https://orgmode.org/elpa/") t)
#+end_src
Command-log-mode
#+begin_src emacs-lisp
(use-package command-log-mode
:commands command-log-mode)
@ -204,9 +211,9 @@ Probably the prettiest and best modeline I've found.
all-the-icons-scale-factor 0.9)
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(with-selected-frame frame
(setq doom-modeline-icon t))))))
(lambda (frame)
(with-selected-frame frame
(setq doom-modeline-icon t))))))
#+end_src
Again, doom is pretty and I have fallen in love with the snazzy theme and use it about anywhere I can.
@ -303,7 +310,7 @@ There are two major packages we need to get the functionality I desire. Evil and
evil-want-C-u-scroll t
evil-respect-visual-line-mode t
evil-want-C-u-delete t
evil-undo-system 'undo-redo)
evil-undo-system 'undo-redo)
:config
(evil-mode +1))
#+end_src
@ -369,7 +376,7 @@ This evil-collection package includes a lot of other evil based things.
:init (evil-escape-mode +1)
:config
(setq evil-escape-key-sequence "fd"
evil-escape-delay 0.3))
evil-escape-delay 0.3))
#+end_src
#+begin_src emacs-lisp
@ -441,7 +448,7 @@ Visual fill column does a lot of the same as olivetti, but works with visual lin
:after org
:config
(setq visual-fill-column-width 100
visual-fill-column-center-text t))
visual-fill-column-center-text t))
#+end_src
*** TOC-ORG
#+begin_src emacs-lisp
@ -653,13 +660,13 @@ Ace link provides an avy like search for links. Upon using the keybindings prese
#+begin_src emacs-lisp
(setq display-buffer-alist
'(("\\*e?shell\\*"
(display-buffer-pop-up-frame))
("*helpful*"
(display-buffer-pop-up-frame))
("*elfeed-entry*"
(display-buffer-pop-up-frame))
("*Bongo-Elfeed Queue*"
(display-buffer-pop-up-frame))))
(display-buffer-pop-up-frame))
("*helpful*"
(display-buffer-pop-up-frame))
("*elfeed-entry*"
(display-buffer-pop-up-frame))
("*Bongo-Elfeed Queue*"
(display-buffer-pop-up-frame))))
#+end_src
Since I like to make my window manager handle a lot of the window management, I will create a helper function for closing windows.
@ -703,7 +710,7 @@ Friar is a fennel repl in the awesome repl. It allows you to interact with Aweso
#+begin_src emacs-lisp
(use-package friar
:straight (:host github :repo "warreq/friar" :branch "master"
:files (:defaults "*.lua" "*.fnl"))
:files (:defaults "*.lua" "*.fnl"))
:after fennel-mode)
#+end_src
@ -867,7 +874,7 @@ Let's start by creating a self contained function of what I'd like started on ev
(display-line-numbers-mode -1)
(variable-pitch-mode +1)
(setq visual-fill-column-width 100
visual-fill-column-center-text t))
visual-fill-column-center-text t))
#+end_src
This is the use-package definition with a lot of customization. Need to setup auto tangle and make sure I have some structure templates for org-mode.
@ -875,20 +882,22 @@ This is the use-package definition with a lot of customization. Need to setup au
Part of this config includes some special capture templates for my work as a youth minister. I create lessons through both org-mode and org-roam capture templates. The first part comes from org-roam, then the next is org-mode.
#+begin_src emacs-lisp
(use-package org
:defer 1
:straight t
:config
(setq org-startup-indented t
org-edit-src-content-indentation 0
org-agenda-sticky t
org-fontify-quote-and-verse-blocks t)
org-edit-src-content-indentation 0
org-agenda-sticky t
org-fontify-quote-and-verse-blocks t
org-src-preserve-indentation t
org-src-window-setup 'other-frame)
(add-hook 'org-mode-hook 'chris/org-mode-setup)
(org-babel-do-load-languages 'org-babel-load-languages
'((emacs-lisp . t)
(python . t)
(ditaa . t)
(shell . t)))
'((emacs-lisp . t)
(python . t)
(ditaa . t)
(shell . t)))
(setq org-ditaa-jar-path "/usr/bin/ditaa")
@ -901,81 +910,65 @@ Part of this config includes some special capture templates for my work as a you
(add-to-list 'org-structure-template-alist '("q" . "quote"))
(setq org-capture-templates
'(("t" "Personal todo" entry
(file+headline "todo.org" "Inbox")
(file ".templates/tasks.org") :prepend t)
("n" "Personal notes" entry
(file+headline "notes.org" "Inbox")
"* %u %?\n%i\n%a" :prepend t)
("j" "Journal" entry
(file+olp+datetree +org-capture-journal-file)
"* %U %?\n%i\n%a" :prepend t)
("p" "TFC Plan" entry
(function chris/org-roam-capture-lesson-file)
(file ".templates/tfcplantemplate.org")
:prepend nil
:jump-to-captured t
:empty-lines 1)
("P" "TFC Posts" entry
(file+headline "/home/chris/org/nvtfc_social_media.org" "Posts")
(file ".templates/posts.org")
:prepend t
:jump-to-captured t)
("r" "Templates for projects")
("rt" "Project-local todo" entry
(file+headline +org-capture-project-todo-file "Inbox")
"* TODO %?\n%i\n%a" :prepend t)
("rn" "Project-local notes" entry
(file+headline +org-capture-project-notes-file "Inbox")
"* %U %?\n%i\n%a" :prepend t)
("rc" "Project-local changelog" entry
(file+headline +org-capture-project-changelog-file "Unreleased")
"* %U %?\n%i\n%a" :prepend t)
("o" "Centralized templates for projects")
("ot" "Project todo" entry #'+org-capture-central-project-todo-file
"* TODO %?\n %i\n %a" :heading "Tasks" :prepend nil)
("on" "Project notes" entry #'+org-capture-central-project-notes-file
"* %U %?\n %i\n %a" :heading "Notes" :prepend t)
("oc" "Project changelog" entry #'+org-capture-central-project-changelog-file
"* %U %?\n %i\n %a" :heading "Changelog" :prepend t))
org-capture-use-agenda-date t
org-agenda-timegrid-use-ampm t)
'(("t" "Personal todo" entry
(file+headline "todo.org" "Inbox")
(file ".templates/tasks.org") :prepend t)
("n" "Personal notes" entry
(file+headline "notes.org" "Inbox")
"* %u %?\n%i\n%a" :prepend t)
("j" "Journal" entry
(file+olp+datetree +org-capture-journal-file)
"* %U %?\n%i\n%a" :prepend t)
("p" "TFC Plan" entry
(function chris/org-roam-capture-lesson-file)
(file ".templates/tfcplantemplate.org")
:prepend nil
:jump-to-captured t
:empty-lines 1)
("P" "TFC Posts" entry
(file+headline "/home/chris/org/nvtfc_social_media.org" "Posts")
(file ".templates/posts.org")
:prepend t
:jump-to-captured t)
("r" "Templates for projects")
("rt" "Project-local todo" entry
(file+headline +org-capture-project-todo-file "Inbox")
"* TODO %?\n%i\n%a" :prepend t)
("rn" "Project-local notes" entry
(file+headline +org-capture-project-notes-file "Inbox")
"* %U %?\n%i\n%a" :prepend t)
("rc" "Project-local changelog" entry
(file+headline +org-capture-project-changelog-file "Unreleased")
"* %U %?\n%i\n%a" :prepend t)
("o" "Centralized templates for projects")
("ot" "Project todo" entry #'+org-capture-central-project-todo-file
"* TODO %?\n %i\n %a" :heading "Tasks" :prepend nil)
("on" "Project notes" entry #'+org-capture-central-project-notes-file
"* %U %?\n %i\n %a" :heading "Notes" :prepend t)
("oc" "Project changelog" entry #'+org-capture-central-project-changelog-file
"* %U %?\n %i\n %a" :heading "Changelog" :prepend t))
org-capture-use-agenda-date t
org-agenda-timegrid-use-ampm t)
;;(setq org-superstar-headline-bullets-list '("◉" "◈" "▸" "✬" "◎" "◇" "❉" "✙" "❖"))
(setq org-imenu-depth 4)
(setq org-odt-styles-file "/home/chris/org/style.odt")
(setq org-export-with-toc nil)
(setq org-export-with-author nil)
(setq org-todo-keywords
'((sequence "TODO(t)" "PROJ(p)" "STRT(s)" "WAIT(w)" "HOLD(h)" "|" "DONE(d)" "CNCL(c)")
(sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)")))
(setq org-agenda-files
'("/home/chris/org/inbox.org"
"/home/chris/org/notes.org"
"/home/chris/org/repetition.org"
"/home/chris/org/tasks.org"
"/home/chris/org/tfc_plans.org"
"/home/chris/org/ministry_team.org"
"/home/chris/org/todo.org"
"/home/chris/org/newsletter.org"
"/home/chris/org/nvtfc_social_media.org"
"/home/chris/org/lessons/"))
;; (add-to-list '("/home/chris/org/inbox.org"
;; "/home/chris/org/notes.org"
;; "/home/chris/org/repetition.org"
;; "/home/chris/org/tasks.org"
;; "/home/chris/org/tfc_plans.org"
;; "/home/chris/org/ministry_team.org"
;; "/home/chris/org/todo.org"
;; "/home/chris/org/newsletter.org"
;; "/home/chris/org/lesson_*.org")
;; (expand-file-name ))
(setq org-id-method 'ts)
(setq org-imenu-depth 4
org-odt-styles-file "/home/chris/org/style.odt"
org-export-with-toc nil
org-export-with-author nil
org-todo-keywords
'((sequence "TODO(t)" "PROJ(p)" "STRT(s)" "WAIT(w)" "HOLD(h)" "|" "DONE(d)" "CNCL(c)")
(sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)"))
org-agenda-files
'("/home/chris/org/inbox.org"
"/home/chris/org/notes.org"
"/home/chris/org/repetition.org"
"/home/chris/org/tasks.org"
"/home/chris/org/tfc_plans.org"
"/home/chris/org/ministry_team.org"
"/home/chris/org/todo.org"
"/home/chris/org/newsletter.org"
"/home/chris/org/nvtfc_social_media.org"
"/home/chris/org/lessons/")
org-id-method 'ts)
(defun chris/org-columns-view ()
"Turn on org-columns overlay and turn off olivetti-mode"
@ -995,16 +988,16 @@ Part of this config includes some special capture templates for my work as a you
;;Let's make sure org-mode faces are inheriting fixed pitch faces.
(dolist (face '(org-block
org-block-begin-line
org-block-end-line
org-code
org-document-info-keyword
org-meta-line
org-table
org-date
org-verbatim))
org-block-begin-line
org-block-end-line
org-code
org-document-info-keyword
org-meta-line
org-table
org-date
org-verbatim))
(set-face-attribute `,face nil :inherit 'fixed-pitch))
(set-face-attribute 'org-block-end-line nil :inherit 'org-block-begin-line)
(set-face-attribute 'org-quote nil :background "#242631" :inherit 'fixed-pitch)
@ -1021,18 +1014,21 @@ Part of this config includes some special capture templates for my work as a you
"rr" 'org-refile
"e" 'org-export-dispatch)
('normal org-agenda-mode-map
"q" 'org-agenda-quit
"r" 'org-agenda-redo
"d" 'org-agenda-deadline
"s" 'org-agenda-schedule
"t" 'org-agenda-todo)
"q" 'org-agenda-quit
"r" 'org-agenda-redo
"d" 'org-agenda-deadline
"s" 'org-agenda-schedule
"t" 'org-agenda-todo)
('normal org-columns-map
"j" 'outline-next-heading
"h" 'outline-previous-heading
"q" 'chris/org-columns-quit)
"j" 'outline-next-heading
"h" 'outline-previous-heading
"q" 'chris/org-columns-quit)
('normal org-mode-map
"RET" 'chris/org-dwim-at-point
"gC" 'chris/org-columns-view))
"RET" 'chris/org-dwim-at-point
"gC" 'chris/org-columns-view
"ge" 'org-edit-src-code)
('normal 'org-src-mode-map
"q" 'org-edit-src-abort))
#+end_src
We need to create a lesson capture function to find our lesson files differently each time we run our TFC plan capture. This is the most unique part of my capture template. This function uses =org-roam-find-file= to pick the lesson file that I need to add my lesson plan to. This way the lesson itself is created before the plan.
@ -1102,13 +1098,17 @@ We also need to setup some capture templates to use some specific setups with my
#+BEGIN_SRC emacs-lisp
(use-package org-roam
:after org
;; :ensure t
:commands (org-roam org-roam-find-file org-roam-insert)
:hook
(org-load . org-roam-mode)
:config
(setq org-roam-directory "~/org")
(setq org-roam-buffer-width 0.25)
(setq org-roam-file-exclude-regexp ".stversion.*\|.stfolder.*\|.*~.*\|.*sync.*")
(setq org-roam-db-location "~/.dotemacs/org-roam.db")
(setq org-roam-capture-templates
(setq org-roam-directory "~/org"
org-roam-buffer-width 0.25
org-roam-file-exclude-regexp ".stversion.*\|.stfolder.*\|.*~.*\|.*sync.*"
org-roam-db-location "~/.dotemacs/org-roam.db"
org-roam-completion-everywhere t
org-roam-capture-templates
'(("d" "default" plain (function org-roam--capture-get-point)
"%?"
:file-name "${slug}"
@ -1120,9 +1120,9 @@ We also need to setup some capture templates to use some specific setups with my
("l" "TFC Lesson" plain (function org-roam--capture-get-point)
(file ".templates/lessontemplate.org")
:file-name "lessons/${slug}"
:head "#+TITLE: ${title}\n#+AUTHOR: Chris Cochrun\n#+CREATED: %<%D - %I:%M %p>\n")))
:head "#+TITLE: ${title}\n#+AUTHOR: Chris Cochrun\n#+CREATED: %<%D - %I:%M %p>\n"))
(setq org-roam-dailies-capture-templates
org-roam-dailies-capture-templates
'(("d" "daily" plain #'org-roam-capture--get-point ""
:immediate-finish t
:file-name "%<%Y-%m-%d>"
@ -1135,9 +1135,9 @@ We also need to setup some capture templates to use some specific setups with my
(chris/leader-keys
:states 'normal
:keymaps 'override
"nf" '(org-roam-find-file :which-key "org roam ff")
"nr" 'org-roam
"ni" 'org-roam-insert))
"nf" '(org-roam-find-file :which-key "org roam ff")
"nr" 'org-roam
"ni" 'org-roam-insert))
#+END_SRC
@ -1168,8 +1168,8 @@ Org-Superstar makes the stars at the beginning of the line in =org-mode= a lot p
(org-superstar-mode +1)
(setq org-superstar-headline-bullets-list '("\u25c9" "\u25c8" "盛" "\u25ce" "\u272c" "\u25c7" "\u2749" "\u2719" "\u2756"))
(setq org-superstar-item-bullet-alist '((?- . ?\u25b8)
(?+ . ?\u2749)
(?* . ?\u25c9)))
(?+ . ?\u2749)
(?* . ?\u25c9)))
(set-face-attribute 'org-superstar-item nil :inherit 'org-level-3)
(add-hook 'org-mode-hook 'org-superstar-mode))
#+end_src
@ -1346,88 +1346,88 @@ If on a:
:config
(setq mail-user-agent 'mu4e-user-agent)
(setq mu4e-maildir "~/Maildir"
user-full-name "Chris Cochrun"
mu4e-change-filenames-when-moving t
mu4e-get-mail-command "mbsync -a"
mu4e-update-interval (* 15 60)
mu4e-attachment-dir "/home/chris/Documents/PersonalImportant/attachments"
mu4e-completing-read-function #'completing-read)
user-full-name "Chris Cochrun"
mu4e-change-filenames-when-moving t
mu4e-get-mail-command "mbsync -a"
mu4e-update-interval (* 15 60)
mu4e-attachment-dir "/home/chris/Documents/PersonalImportant/attachments"
mu4e-completing-read-function #'completing-read)
(setq mu4e-contexts
(list
(make-mu4e-context
:name "office"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/office" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "chris@tfcconnection.org")
(mu4e-sent-folder . "/office/Sent Items/")
(mu4e-drafts-folder . "/office/Drafts")
(mu4e-trash-folder . "/office/Deleted Items")
(mu4e-refile-folder . "/office/Archive")
(smtpmail-smtp-user . "chris@tfcconnection.org")
(mu4e-compose-signature . "---\nChris Cochrun")))
(make-mu4e-context
:name "outlook"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/outlook" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "chris.cochrun@outlook.com")
(mu4e-sent-folder . "/outlook/Sent/")
(mu4e-drafts-folder . "/outlook/Drafts")
(mu4e-trash-folder . "/outlook/Deleted")
(mu4e-refile-folder . "/outlook/Archive")
(smtpmail-smtp-user . "chris.cochrun@outlook.com")
(mu4e-compose-signature . "---\nChris Cochrun")))
(make-mu4e-context
:name "gmail"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/gmail" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "ccochrun21@gmail.com")
(mu4e-sent-folder . "/gmail/[Gmail].Sent Mail/")
(smtpmail-smtp-user . "ccochrun21@gmail.com")
(mu4e-compose-signature . "---\nChris Cochrun")))))
(list
(make-mu4e-context
:name "office"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/office" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "chris@tfcconnection.org")
(mu4e-sent-folder . "/office/Sent Items/")
(mu4e-drafts-folder . "/office/Drafts")
(mu4e-trash-folder . "/office/Deleted Items")
(mu4e-refile-folder . "/office/Archive")
(smtpmail-smtp-user . "chris@tfcconnection.org")
(mu4e-compose-signature . "---\nChris Cochrun")))
(make-mu4e-context
:name "outlook"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/outlook" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "chris.cochrun@outlook.com")
(mu4e-sent-folder . "/outlook/Sent/")
(mu4e-drafts-folder . "/outlook/Drafts")
(mu4e-trash-folder . "/outlook/Deleted")
(mu4e-refile-folder . "/outlook/Archive")
(smtpmail-smtp-user . "chris.cochrun@outlook.com")
(mu4e-compose-signature . "---\nChris Cochrun")))
(make-mu4e-context
:name "gmail"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/gmail" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "ccochrun21@gmail.com")
(mu4e-sent-folder . "/gmail/[Gmail].Sent Mail/")
(smtpmail-smtp-user . "ccochrun21@gmail.com")
(mu4e-compose-signature . "---\nChris Cochrun")))))
;; Add the ability to send email for o365
(setq message-send-mail-function 'smtpmail-send-it
starttls-use-gnutls t
smtpmail-starttls-credentials '(("smtp.office365.com" 587 nil nil))
smtpmail-auth-credentials
'(("smtp.office365.com" 587 "chris@tfcconnection.org" nil))
smtpmail-default-smtp-server "smtp.office365.com"
smtpmail-smtp-server "smtp.office365.com"
smtpmail-smtp-service 587)
starttls-use-gnutls t
smtpmail-starttls-credentials '(("smtp.office365.com" 587 nil nil))
smtpmail-auth-credentials
'(("smtp.office365.com" 587 "chris@tfcconnection.org" nil))
smtpmail-default-smtp-server "smtp.office365.com"
smtpmail-smtp-server "smtp.office365.com"
smtpmail-smtp-service 587)
;; shortcuts in the jumplist by pressing "J" in the mu4e buffer
(setq mu4e-maildir-shortcuts
'((:maildir "/office/Archive" :key ?a)
(:maildir "/office/INBOX" :key ?i)
(:maildir "/outlook/INBOX" :key ?l)
(:maildir "/office/Junk Email" :key ?j)
(:maildir "/office/INBOX/Website Forms" :key ?f)
(:maildir "/gmail/INBOX" :key ?g)
(:maildir "/office/Sent Items" :key ?s)))
'((:maildir "/office/Archive" :key ?a)
(:maildir "/office/INBOX" :key ?i)
(:maildir "/outlook/INBOX" :key ?l)
(:maildir "/office/Junk Email" :key ?j)
(:maildir "/office/INBOX/Website Forms" :key ?f)
(:maildir "/gmail/INBOX" :key ?g)
(:maildir "/office/Sent Items" :key ?s)))
;; (add-to-list mu4e-headers-actions ("org capture message" . mu4e-org-store-and-capture))
(setq mu4e-bookmarks
'((:name "Unread messages"
:query "flag:unread AND NOT flag:trashed AND NOT maildir:\"/outlook/Junk\" AND NOT maildir:\"/office/Junk Email\" AND NOT maildir:\"/outlook/Deleted\" AND NOT maildir:\"/office/Deleted Items\""
:key 117)
(:name "Today's messages"
:query "date:today..now"
:key 116)
(:name "Last 7 days"
:query "date:7d..now"
:hide-unread t
:key 119)
(:name "Messages with images"
:query "mime:image/*"
:key 112)))
'((:name "Unread messages"
:query "flag:unread AND NOT flag:trashed AND NOT maildir:\"/outlook/Junk\" AND NOT maildir:\"/office/Junk Email\" AND NOT maildir:\"/outlook/Deleted\" AND NOT maildir:\"/office/Deleted Items\""
:key 117)
(:name "Today's messages"
:query "date:today..now"
:key 116)
(:name "Last 7 days"
:query "date:7d..now"
:hide-unread t
:key 119)
(:name "Messages with images"
:query "mime:image/*"
:key 112)))
(setq mu4e-mu-binary "/usr/bin/mu")
(setq mu4e-use-fancy-chars t
@ -1444,15 +1444,15 @@ If on a:
mu4e-headers-unread-mark '("u" . " "))
(setq mu4e-headers-fields
'((:human-date . 12)
(:flags . 6)
(:from . 22)
(:subject)))
'((:human-date . 12)
(:flags . 6)
(:from . 22)
(:subject)))
(setq mu4e-view-actions
'(("capture message" . mu4e-action-capture-message)
("view in browser" . mu4e-action-view-in-browser)
("show this thread" . mu4e-action-show-thread)))
'(("capture message" . mu4e-action-capture-message)
("view in browser" . mu4e-action-view-in-browser)
("show this thread" . mu4e-action-show-thread)))
(defun chris/setup-mu4e-headers ()
(toggle-truncate-lines +1)
@ -1620,9 +1620,9 @@ Let's add our own eshell prompt. and set the password cache to a significantly h
(unless pop-eshell
(setq pop-eshell (eshell 100))
(with-current-buffer pop-eshell
(eshell/clear-scrollback)
(rename-buffer "*eshell-pop*")
(display-buffer-in-side-window pop-eshell '((side . bottom))))))
(eshell/clear-scrollback)
(rename-buffer "*eshell-pop*")
(display-buffer-in-side-window pop-eshell '((side . bottom))))))
(setq eshell-banner-message "")
@ -1665,8 +1665,8 @@ Let's use pdf-tools for a lot better interaction with pdfs.
#+begin_src emacs-lisp
(use-package pdf-tools
:straight (:host github
:repo "flatwhatson/pdf-tools"
:branch "fix-macros")
:repo "flatwhatson/pdf-tools"
:branch "fix-macros")
:defer 1
:config
(pdf-tools-install))
@ -1699,33 +1699,33 @@ interfere with the default `bongo-playlist-buffer'."
(enclosure (elt (car (elfeed-entry-enclosures entry)) 0))
(url (if (string-prefix-p "https://thumbnails" enclosure)
link
enclosure))
(title (elfeed-entry-title entry))
(bongo-pl chris/elfeed-bongo-playlist)
(buffer (get-buffer-create bongo-pl)))
enclosure))
(title (elfeed-entry-title entry))
(bongo-pl chris/elfeed-bongo-playlist)
(buffer (get-buffer-create bongo-pl)))
(message "link is %s" link)
(message "enclosure is %s" enclosure)
(message "url is %s" url)
(message "title is %s" title)
(elfeed-search-untag-all-unread)
(unless (bongo-playlist-buffer)
(bongo-playlist-buffer))
(bongo-playlist-buffer))
(display-buffer buffer)
(with-current-buffer buffer
(when (not (bongo-playlist-buffer-p))
(when (not (bongo-playlist-buffer-p))
(bongo-playlist-mode)
(setq-local bongo-library-buffer (get-buffer "*elfeed-search*"))
(setq-local bongo-enabled-backends '(mpv))
(bongo-progressive-playback-mode))
(goto-char (point-max))
(bongo-insert-uri url (format "%s ==> %s" title url))
(let ((inhibit-read-only t))
(goto-char (point-max))
(bongo-insert-uri url (format "%s ==> %s" title url))
(let ((inhibit-read-only t))
(delete-duplicate-lines (point-min) (point-max)))
(bongo-recenter))
(bongo-recenter))
(message "Enqueued %s “%s” in %s"
(if enclosure "podcast" "video")
(propertize title 'face 'italic)
(propertize bongo-pl 'face 'bold))))
(if enclosure "podcast" "video")
(propertize title 'face 'italic)
(propertize bongo-pl 'face 'bold))))
(defun chris/elfeed-bongo-switch-to-playlist ()
(interactive)
@ -1733,7 +1733,7 @@ interfere with the default `bongo-playlist-buffer'."
(buffer (get-buffer bongo-pl)))
(if buffer
(switch-to-buffer buffer)
(message "No `bongo' playlist is associated with `elfeed'."))))
(message "No `bongo' playlist is associated with `elfeed'."))))
:general
@ -1768,14 +1768,14 @@ interfere with the default `bongo-playlist-buffer'."
:matcher '((local-file "file:" "http:" "ftp:" "lbry:")
"ogg" "flac" "mp3" "mka" "wav" "wma"
"mpg" "mpeg" "vob" "avi" "ogm" "opus" "mp4"
"mkv" "mov" "asf" "wmv" "rm" "rmvb" "ts")
"mkv" "mov" "asf" "wmv" "rm" "rmvb" "ts")
:matcher '(("mms:" "mmst:" "rtp:" "rtsp:" "udp:" "unsv:"
"dvd:" "vcd:" "tv:" "dvb:" "mf:" "cdda:" "cddb:"
"cue:" "sdp:" "mpst:" "tivo:") . t)
:matcher '(("http:" "https:" "lbry:") . t))
(setq bongo-enabled-backends '(mpv)
bongo-track-mark-icon-file-name "track-mark-icon.png")
bongo-track-mark-icon-file-name "track-mark-icon.png")
(defun chris/bongo-mark-line-forward ()
(interactive)
@ -1810,17 +1810,17 @@ I use transmission on a server to manage my torrents
(if (string-equal (system-name) "syl")
(setq transmission-host "home.cochrun.xyz"
transmission-rpc-path "/transmission/rpc"
transmission-refresh-modes '(transmission-mode
transmission-files-mode
transmission-info-mode
transmission-peers-mode))
transmission-rpc-path "/transmission/rpc"
transmission-refresh-modes '(transmission-mode
transmission-files-mode
transmission-info-mode
transmission-peers-mode))
(setq transmission-host "192.168.1.2"
transmission-rpc-path "/transmission/rpc"
transmission-refresh-modes '(transmission-mode
transmission-files-mode
transmission-info-mode
transmission-peers-mode)))
transmission-rpc-path "/transmission/rpc"
transmission-refresh-modes '(transmission-mode
transmission-files-mode
transmission-info-mode
transmission-peers-mode)))
:general
(chris/leader-keys
:states 'normal
@ -1910,8 +1910,8 @@ Let's also use an automatic garbage collector while idle to make better input.
(gcmh-mode)
:config
(setq gcmh-idle-delay 5
gcmh-high-cons-threshold (* 128 1024 1024) ; 128mb
gcmh-verbose t))
gcmh-high-cons-threshold (* 128 1024 1024) ; 128mb
gcmh-verbose t))
#+end_src
** Logging

537
init.el
View file

@ -17,6 +17,7 @@
(menu-bar-mode -1)
(blink-cursor-mode -1)
(column-number-mode +1)
(setq-default indent-tabs-mode nil)
(if (string-equal (system-name) "syl")
(defvar chris/default-font-size 120)
@ -31,7 +32,7 @@
:height chris/default-font-size)
(set-face-attribute 'variable-pitch nil :font "Cantarell"
:height (+ chris/default-font-size (/ chris/default-font-size 8))
:weight 'regular))
:weight 'regular))
(defun chris/set-transparency ()
"Set the frame to be transparent on Wayland compositors"
@ -41,10 +42,10 @@
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(with-selected-frame frame
(chris/set-font-faces)
(chris/set-transparency)))
(lambda (frame)
(with-selected-frame frame
(chris/set-font-faces)
(chris/set-transparency)))
(chris/set-font-faces))
(chris/set-transparency))
@ -96,8 +97,8 @@
(straight-use-package 'use-package)
(setq use-package-verbose t)
(use-package command-log-mode
:commands command-log-mode)
(use-package command-log-mode
:commands command-log-mode)
(use-package all-the-icons)
@ -110,9 +111,9 @@
all-the-icons-scale-factor 0.9)
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(with-selected-frame frame
(setq doom-modeline-icon t))))))
(lambda (frame)
(with-selected-frame frame
(setq doom-modeline-icon t))))))
(use-package doom-themes
:ensure t
@ -182,7 +183,7 @@
evil-want-C-u-scroll t
evil-respect-visual-line-mode t
evil-want-C-u-delete t
evil-undo-system 'undo-redo)
evil-undo-system 'undo-redo)
:config
(evil-mode +1))
@ -241,7 +242,7 @@
:init (evil-escape-mode +1)
:config
(setq evil-escape-key-sequence "fd"
evil-escape-delay 0.3))
evil-escape-delay 0.3))
(use-package evil-surround
:after evil
@ -268,7 +269,7 @@
:after org
:config
(setq visual-fill-column-width 100
visual-fill-column-center-text t))
visual-fill-column-center-text t))
(use-package toc-org
:after org)
@ -374,13 +375,13 @@ vertically."
(setq display-buffer-alist
'(("\\*e?shell\\*"
(display-buffer-pop-up-frame))
("*helpful*"
(display-buffer-pop-up-frame))
("*elfeed-entry*"
(display-buffer-pop-up-frame))
("*Bongo-Elfeed Queue*"
(display-buffer-pop-up-frame))))
(display-buffer-pop-up-frame))
("*helpful*"
(display-buffer-pop-up-frame))
("*elfeed-entry*"
(display-buffer-pop-up-frame))
("*Bongo-Elfeed Queue*"
(display-buffer-pop-up-frame))))
(defun chris/kill-buffer-frame ()
"Kills the active buffer and frame"
@ -405,7 +406,7 @@ vertically."
(use-package friar
:straight (:host github :repo "warreq/friar" :branch "master"
:files (:defaults "*.lua" "*.fnl"))
:files (:defaults "*.lua" "*.fnl"))
:after fennel-mode)
(use-package yaml-mode
@ -519,23 +520,25 @@ vertically."
(display-line-numbers-mode -1)
(variable-pitch-mode +1)
(setq visual-fill-column-width 100
visual-fill-column-center-text t))
visual-fill-column-center-text t))
(use-package org
:defer 1
:straight t
:config
(setq org-startup-indented t
org-edit-src-content-indentation 0
org-agenda-sticky t
org-fontify-quote-and-verse-blocks t)
org-edit-src-content-indentation 0
org-agenda-sticky t
org-fontify-quote-and-verse-blocks t
org-src-preserve-indentation t
org-src-window-setup 'other-frame)
(add-hook 'org-mode-hook 'chris/org-mode-setup)
(org-babel-do-load-languages 'org-babel-load-languages
'((emacs-lisp . t)
(python . t)
(ditaa . t)
(shell . t)))
'((emacs-lisp . t)
(python . t)
(ditaa . t)
(shell . t)))
(setq org-ditaa-jar-path "/usr/bin/ditaa")
@ -548,81 +551,65 @@ vertically."
(add-to-list 'org-structure-template-alist '("q" . "quote"))
(setq org-capture-templates
'(("t" "Personal todo" entry
(file+headline "todo.org" "Inbox")
(file ".templates/tasks.org") :prepend t)
("n" "Personal notes" entry
(file+headline "notes.org" "Inbox")
"* %u %?\n%i\n%a" :prepend t)
("j" "Journal" entry
(file+olp+datetree +org-capture-journal-file)
"* %U %?\n%i\n%a" :prepend t)
("p" "TFC Plan" entry
(function chris/org-roam-capture-lesson-file)
(file ".templates/tfcplantemplate.org")
:prepend nil
:jump-to-captured t
:empty-lines 1)
("P" "TFC Posts" entry
(file+headline "/home/chris/org/nvtfc_social_media.org" "Posts")
(file ".templates/posts.org")
:prepend t
:jump-to-captured t)
("r" "Templates for projects")
("rt" "Project-local todo" entry
(file+headline +org-capture-project-todo-file "Inbox")
"* TODO %?\n%i\n%a" :prepend t)
("rn" "Project-local notes" entry
(file+headline +org-capture-project-notes-file "Inbox")
"* %U %?\n%i\n%a" :prepend t)
("rc" "Project-local changelog" entry
(file+headline +org-capture-project-changelog-file "Unreleased")
"* %U %?\n%i\n%a" :prepend t)
("o" "Centralized templates for projects")
("ot" "Project todo" entry #'+org-capture-central-project-todo-file
"* TODO %?\n %i\n %a" :heading "Tasks" :prepend nil)
("on" "Project notes" entry #'+org-capture-central-project-notes-file
"* %U %?\n %i\n %a" :heading "Notes" :prepend t)
("oc" "Project changelog" entry #'+org-capture-central-project-changelog-file
"* %U %?\n %i\n %a" :heading "Changelog" :prepend t))
org-capture-use-agenda-date t
org-agenda-timegrid-use-ampm t)
'(("t" "Personal todo" entry
(file+headline "todo.org" "Inbox")
(file ".templates/tasks.org") :prepend t)
("n" "Personal notes" entry
(file+headline "notes.org" "Inbox")
"* %u %?\n%i\n%a" :prepend t)
("j" "Journal" entry
(file+olp+datetree +org-capture-journal-file)
"* %U %?\n%i\n%a" :prepend t)
("p" "TFC Plan" entry
(function chris/org-roam-capture-lesson-file)
(file ".templates/tfcplantemplate.org")
:prepend nil
:jump-to-captured t
:empty-lines 1)
("P" "TFC Posts" entry
(file+headline "/home/chris/org/nvtfc_social_media.org" "Posts")
(file ".templates/posts.org")
:prepend t
:jump-to-captured t)
("r" "Templates for projects")
("rt" "Project-local todo" entry
(file+headline +org-capture-project-todo-file "Inbox")
"* TODO %?\n%i\n%a" :prepend t)
("rn" "Project-local notes" entry
(file+headline +org-capture-project-notes-file "Inbox")
"* %U %?\n%i\n%a" :prepend t)
("rc" "Project-local changelog" entry
(file+headline +org-capture-project-changelog-file "Unreleased")
"* %U %?\n%i\n%a" :prepend t)
("o" "Centralized templates for projects")
("ot" "Project todo" entry #'+org-capture-central-project-todo-file
"* TODO %?\n %i\n %a" :heading "Tasks" :prepend nil)
("on" "Project notes" entry #'+org-capture-central-project-notes-file
"* %U %?\n %i\n %a" :heading "Notes" :prepend t)
("oc" "Project changelog" entry #'+org-capture-central-project-changelog-file
"* %U %?\n %i\n %a" :heading "Changelog" :prepend t))
org-capture-use-agenda-date t
org-agenda-timegrid-use-ampm t)
;;(setq org-superstar-headline-bullets-list '("◉" "◈" "▸" "✬" "◎" "◇" "❉" "✙" "❖"))
(setq org-imenu-depth 4)
(setq org-odt-styles-file "/home/chris/org/style.odt")
(setq org-export-with-toc nil)
(setq org-export-with-author nil)
(setq org-todo-keywords
'((sequence "TODO(t)" "PROJ(p)" "STRT(s)" "WAIT(w)" "HOLD(h)" "|" "DONE(d)" "CNCL(c)")
(sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)")))
(setq org-agenda-files
'("/home/chris/org/inbox.org"
"/home/chris/org/notes.org"
"/home/chris/org/repetition.org"
"/home/chris/org/tasks.org"
"/home/chris/org/tfc_plans.org"
"/home/chris/org/ministry_team.org"
"/home/chris/org/todo.org"
"/home/chris/org/newsletter.org"
"/home/chris/org/nvtfc_social_media.org"
"/home/chris/org/lessons/"))
;; (add-to-list '("/home/chris/org/inbox.org"
;; "/home/chris/org/notes.org"
;; "/home/chris/org/repetition.org"
;; "/home/chris/org/tasks.org"
;; "/home/chris/org/tfc_plans.org"
;; "/home/chris/org/ministry_team.org"
;; "/home/chris/org/todo.org"
;; "/home/chris/org/newsletter.org"
;; "/home/chris/org/lesson_*.org")
;; (expand-file-name ))
(setq org-id-method 'ts)
(setq org-imenu-depth 4
org-odt-styles-file "/home/chris/org/style.odt"
org-export-with-toc nil
org-export-with-author nil
org-todo-keywords
'((sequence "TODO(t)" "PROJ(p)" "STRT(s)" "WAIT(w)" "HOLD(h)" "|" "DONE(d)" "CNCL(c)")
(sequence "[ ](T)" "[-](S)" "[?](W)" "|" "[X](D)"))
org-agenda-files
'("/home/chris/org/inbox.org"
"/home/chris/org/notes.org"
"/home/chris/org/repetition.org"
"/home/chris/org/tasks.org"
"/home/chris/org/tfc_plans.org"
"/home/chris/org/ministry_team.org"
"/home/chris/org/todo.org"
"/home/chris/org/newsletter.org"
"/home/chris/org/nvtfc_social_media.org"
"/home/chris/org/lessons/")
org-id-method 'ts)
(defun chris/org-columns-view ()
"Turn on org-columns overlay and turn off olivetti-mode"
@ -642,16 +629,16 @@ vertically."
;;Let's make sure org-mode faces are inheriting fixed pitch faces.
(dolist (face '(org-block
org-block-begin-line
org-block-end-line
org-code
org-document-info-keyword
org-meta-line
org-table
org-date
org-verbatim))
org-block-begin-line
org-block-end-line
org-code
org-document-info-keyword
org-meta-line
org-table
org-date
org-verbatim))
(set-face-attribute `,face nil :inherit 'fixed-pitch))
(set-face-attribute 'org-block-end-line nil :inherit 'org-block-begin-line)
(set-face-attribute 'org-quote nil :background "#242631" :inherit 'fixed-pitch)
@ -668,18 +655,21 @@ vertically."
"rr" 'org-refile
"e" 'org-export-dispatch)
('normal org-agenda-mode-map
"q" 'org-agenda-quit
"r" 'org-agenda-redo
"d" 'org-agenda-deadline
"s" 'org-agenda-schedule
"t" 'org-agenda-todo)
"q" 'org-agenda-quit
"r" 'org-agenda-redo
"d" 'org-agenda-deadline
"s" 'org-agenda-schedule
"t" 'org-agenda-todo)
('normal org-columns-map
"j" 'outline-next-heading
"h" 'outline-previous-heading
"q" 'chris/org-columns-quit)
"j" 'outline-next-heading
"h" 'outline-previous-heading
"q" 'chris/org-columns-quit)
('normal org-mode-map
"RET" 'chris/org-dwim-at-point
"gC" 'chris/org-columns-view))
"RET" 'chris/org-dwim-at-point
"gC" 'chris/org-columns-view
"ge" 'org-edit-src-code)
('normal 'org-src-mode-map
"q" 'org-edit-src-abort))
(defun chris/org-roam-capture-lesson-file ()
"Function to return the lesson file that is needed for TFC plan capture and move to correct position for plan insertion"
@ -726,13 +716,17 @@ vertically."
(use-package org-roam
:after org
;; :ensure t
:commands (org-roam org-roam-find-file org-roam-insert)
:hook
(org-load . org-roam-mode)
:config
(setq org-roam-directory "~/org")
(setq org-roam-buffer-width 0.25)
(setq org-roam-file-exclude-regexp ".stversion.*\|.stfolder.*\|.*~.*\|.*sync.*")
(setq org-roam-db-location "~/.dotemacs/org-roam.db")
(setq org-roam-capture-templates
(setq org-roam-directory "~/org"
org-roam-buffer-width 0.25
org-roam-file-exclude-regexp ".stversion.*\|.stfolder.*\|.*~.*\|.*sync.*"
org-roam-db-location "~/.dotemacs/org-roam.db"
org-roam-completion-everywhere t
org-roam-capture-templates
'(("d" "default" plain (function org-roam--capture-get-point)
"%?"
:file-name "${slug}"
@ -744,9 +738,9 @@ vertically."
("l" "TFC Lesson" plain (function org-roam--capture-get-point)
(file ".templates/lessontemplate.org")
:file-name "lessons/${slug}"
:head "#+TITLE: ${title}\n#+AUTHOR: Chris Cochrun\n#+CREATED: %<%D - %I:%M %p>\n")))
:head "#+TITLE: ${title}\n#+AUTHOR: Chris Cochrun\n#+CREATED: %<%D - %I:%M %p>\n"))
(setq org-roam-dailies-capture-templates
org-roam-dailies-capture-templates
'(("d" "daily" plain #'org-roam-capture--get-point ""
:immediate-finish t
:file-name "%<%Y-%m-%d>"
@ -759,9 +753,9 @@ vertically."
(chris/leader-keys
:states 'normal
:keymaps 'override
"nf" '(org-roam-find-file :which-key "org roam ff")
"nr" 'org-roam
"ni" 'org-roam-insert))
"nf" '(org-roam-find-file :which-key "org roam ff")
"nr" 'org-roam
"ni" 'org-roam-insert))
(use-package org-roam-server
:config
@ -783,8 +777,8 @@ vertically."
(org-superstar-mode +1)
(setq org-superstar-headline-bullets-list '("\u25c9" "\u25c8" "" "\u25ce" "\u272c" "\u25c7" "\u2749" "\u2719" "\u2756"))
(setq org-superstar-item-bullet-alist '((?- . ?\u25b8)
(?+ . ?\u2749)
(?* . ?\u25c9)))
(?+ . ?\u2749)
(?* . ?\u25c9)))
(set-face-attribute 'org-superstar-item nil :inherit 'org-level-3)
(add-hook 'org-mode-hook 'org-superstar-mode))
@ -956,88 +950,88 @@ If on a:
:config
(setq mail-user-agent 'mu4e-user-agent)
(setq mu4e-maildir "~/Maildir"
user-full-name "Chris Cochrun"
mu4e-change-filenames-when-moving t
mu4e-get-mail-command "mbsync -a"
mu4e-update-interval (* 15 60)
mu4e-attachment-dir "/home/chris/Documents/PersonalImportant/attachments"
mu4e-completing-read-function #'completing-read)
user-full-name "Chris Cochrun"
mu4e-change-filenames-when-moving t
mu4e-get-mail-command "mbsync -a"
mu4e-update-interval (* 15 60)
mu4e-attachment-dir "/home/chris/Documents/PersonalImportant/attachments"
mu4e-completing-read-function #'completing-read)
(setq mu4e-contexts
(list
(make-mu4e-context
:name "office"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/office" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "chris@tfcconnection.org")
(mu4e-sent-folder . "/office/Sent Items/")
(mu4e-drafts-folder . "/office/Drafts")
(mu4e-trash-folder . "/office/Deleted Items")
(mu4e-refile-folder . "/office/Archive")
(smtpmail-smtp-user . "chris@tfcconnection.org")
(mu4e-compose-signature . "---\nChris Cochrun")))
(make-mu4e-context
:name "outlook"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/outlook" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "chris.cochrun@outlook.com")
(mu4e-sent-folder . "/outlook/Sent/")
(mu4e-drafts-folder . "/outlook/Drafts")
(mu4e-trash-folder . "/outlook/Deleted")
(mu4e-refile-folder . "/outlook/Archive")
(smtpmail-smtp-user . "chris.cochrun@outlook.com")
(mu4e-compose-signature . "---\nChris Cochrun")))
(make-mu4e-context
:name "gmail"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/gmail" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "ccochrun21@gmail.com")
(mu4e-sent-folder . "/gmail/[Gmail].Sent Mail/")
(smtpmail-smtp-user . "ccochrun21@gmail.com")
(mu4e-compose-signature . "---\nChris Cochrun")))))
(list
(make-mu4e-context
:name "office"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/office" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "chris@tfcconnection.org")
(mu4e-sent-folder . "/office/Sent Items/")
(mu4e-drafts-folder . "/office/Drafts")
(mu4e-trash-folder . "/office/Deleted Items")
(mu4e-refile-folder . "/office/Archive")
(smtpmail-smtp-user . "chris@tfcconnection.org")
(mu4e-compose-signature . "---\nChris Cochrun")))
(make-mu4e-context
:name "outlook"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/outlook" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "chris.cochrun@outlook.com")
(mu4e-sent-folder . "/outlook/Sent/")
(mu4e-drafts-folder . "/outlook/Drafts")
(mu4e-trash-folder . "/outlook/Deleted")
(mu4e-refile-folder . "/outlook/Archive")
(smtpmail-smtp-user . "chris.cochrun@outlook.com")
(mu4e-compose-signature . "---\nChris Cochrun")))
(make-mu4e-context
:name "gmail"
:match-func
(lambda (msg)
(when msg
(string-prefix-p "/gmail" (mu4e-message-field msg :maildir))))
:vars '((user-mail-address . "ccochrun21@gmail.com")
(mu4e-sent-folder . "/gmail/[Gmail].Sent Mail/")
(smtpmail-smtp-user . "ccochrun21@gmail.com")
(mu4e-compose-signature . "---\nChris Cochrun")))))
;; Add the ability to send email for o365
(setq message-send-mail-function 'smtpmail-send-it
starttls-use-gnutls t
smtpmail-starttls-credentials '(("smtp.office365.com" 587 nil nil))
smtpmail-auth-credentials
'(("smtp.office365.com" 587 "chris@tfcconnection.org" nil))
smtpmail-default-smtp-server "smtp.office365.com"
smtpmail-smtp-server "smtp.office365.com"
smtpmail-smtp-service 587)
starttls-use-gnutls t
smtpmail-starttls-credentials '(("smtp.office365.com" 587 nil nil))
smtpmail-auth-credentials
'(("smtp.office365.com" 587 "chris@tfcconnection.org" nil))
smtpmail-default-smtp-server "smtp.office365.com"
smtpmail-smtp-server "smtp.office365.com"
smtpmail-smtp-service 587)
;; shortcuts in the jumplist by pressing "J" in the mu4e buffer
(setq mu4e-maildir-shortcuts
'((:maildir "/office/Archive" :key ?a)
(:maildir "/office/INBOX" :key ?i)
(:maildir "/outlook/INBOX" :key ?l)
(:maildir "/office/Junk Email" :key ?j)
(:maildir "/office/INBOX/Website Forms" :key ?f)
(:maildir "/gmail/INBOX" :key ?g)
(:maildir "/office/Sent Items" :key ?s)))
'((:maildir "/office/Archive" :key ?a)
(:maildir "/office/INBOX" :key ?i)
(:maildir "/outlook/INBOX" :key ?l)
(:maildir "/office/Junk Email" :key ?j)
(:maildir "/office/INBOX/Website Forms" :key ?f)
(:maildir "/gmail/INBOX" :key ?g)
(:maildir "/office/Sent Items" :key ?s)))
;; (add-to-list mu4e-headers-actions ("org capture message" . mu4e-org-store-and-capture))
(setq mu4e-bookmarks
'((:name "Unread messages"
:query "flag:unread AND NOT flag:trashed AND NOT maildir:\"/outlook/Junk\" AND NOT maildir:\"/office/Junk Email\" AND NOT maildir:\"/outlook/Deleted\" AND NOT maildir:\"/office/Deleted Items\""
:key 117)
(:name "Today's messages"
:query "date:today..now"
:key 116)
(:name "Last 7 days"
:query "date:7d..now"
:hide-unread t
:key 119)
(:name "Messages with images"
:query "mime:image/*"
:key 112)))
'((:name "Unread messages"
:query "flag:unread AND NOT flag:trashed AND NOT maildir:\"/outlook/Junk\" AND NOT maildir:\"/office/Junk Email\" AND NOT maildir:\"/outlook/Deleted\" AND NOT maildir:\"/office/Deleted Items\""
:key 117)
(:name "Today's messages"
:query "date:today..now"
:key 116)
(:name "Last 7 days"
:query "date:7d..now"
:hide-unread t
:key 119)
(:name "Messages with images"
:query "mime:image/*"
:key 112)))
(setq mu4e-mu-binary "/usr/bin/mu")
(setq mu4e-use-fancy-chars t
@ -1054,15 +1048,15 @@ If on a:
mu4e-headers-unread-mark '("u" . ""))
(setq mu4e-headers-fields
'((:human-date . 12)
(:flags . 6)
(:from . 22)
(:subject)))
'((:human-date . 12)
(:flags . 6)
(:from . 22)
(:subject)))
(setq mu4e-view-actions
'(("capture message" . mu4e-action-capture-message)
("view in browser" . mu4e-action-view-in-browser)
("show this thread" . mu4e-action-show-thread)))
'(("capture message" . mu4e-action-capture-message)
("view in browser" . mu4e-action-view-in-browser)
("show this thread" . mu4e-action-show-thread)))
(defun chris/setup-mu4e-headers ()
(toggle-truncate-lines +1)
@ -1204,9 +1198,9 @@ If on a:
(unless pop-eshell
(setq pop-eshell (eshell 100))
(with-current-buffer pop-eshell
(eshell/clear-scrollback)
(rename-buffer "*eshell-pop*")
(display-buffer-in-side-window pop-eshell '((side . bottom))))))
(eshell/clear-scrollback)
(rename-buffer "*eshell-pop*")
(display-buffer-in-side-window pop-eshell '((side . bottom))))))
(setq eshell-banner-message "")
@ -1237,8 +1231,8 @@ If on a:
(use-package pdf-tools
:straight (:host github
:repo "flatwhatson/pdf-tools"
:branch "fix-macros")
:repo "flatwhatson/pdf-tools"
:branch "fix-macros")
:defer 1
:config
(pdf-tools-install))
@ -1265,33 +1259,33 @@ interfere with the default `bongo-playlist-buffer'."
(enclosure (elt (car (elfeed-entry-enclosures entry)) 0))
(url (if (string-prefix-p "https://thumbnails" enclosure)
link
enclosure))
(title (elfeed-entry-title entry))
(bongo-pl chris/elfeed-bongo-playlist)
(buffer (get-buffer-create bongo-pl)))
enclosure))
(title (elfeed-entry-title entry))
(bongo-pl chris/elfeed-bongo-playlist)
(buffer (get-buffer-create bongo-pl)))
(message "link is %s" link)
(message "enclosure is %s" enclosure)
(message "url is %s" url)
(message "title is %s" title)
(elfeed-search-untag-all-unread)
(unless (bongo-playlist-buffer)
(bongo-playlist-buffer))
(bongo-playlist-buffer))
(display-buffer buffer)
(with-current-buffer buffer
(when (not (bongo-playlist-buffer-p))
(when (not (bongo-playlist-buffer-p))
(bongo-playlist-mode)
(setq-local bongo-library-buffer (get-buffer "*elfeed-search*"))
(setq-local bongo-enabled-backends '(mpv))
(bongo-progressive-playback-mode))
(goto-char (point-max))
(bongo-insert-uri url (format "%s ==> %s" title url))
(let ((inhibit-read-only t))
(goto-char (point-max))
(bongo-insert-uri url (format "%s ==> %s" title url))
(let ((inhibit-read-only t))
(delete-duplicate-lines (point-min) (point-max)))
(bongo-recenter))
(bongo-recenter))
(message "Enqueued %s “%s” in %s"
(if enclosure "podcast" "video")
(propertize title 'face 'italic)
(propertize bongo-pl 'face 'bold))))
(if enclosure "podcast" "video")
(propertize title 'face 'italic)
(propertize bongo-pl 'face 'bold))))
(defun chris/elfeed-bongo-switch-to-playlist ()
(interactive)
@ -1299,7 +1293,7 @@ interfere with the default `bongo-playlist-buffer'."
(buffer (get-buffer bongo-pl)))
(if buffer
(switch-to-buffer buffer)
(message "No `bongo' playlist is associated with `elfeed'."))))
(message "No `bongo' playlist is associated with `elfeed'."))))
:general
@ -1329,14 +1323,14 @@ interfere with the default `bongo-playlist-buffer'."
:matcher '((local-file "file:" "http:" "ftp:" "lbry:")
"ogg" "flac" "mp3" "mka" "wav" "wma"
"mpg" "mpeg" "vob" "avi" "ogm" "opus" "mp4"
"mkv" "mov" "asf" "wmv" "rm" "rmvb" "ts")
"mkv" "mov" "asf" "wmv" "rm" "rmvb" "ts")
:matcher '(("mms:" "mmst:" "rtp:" "rtsp:" "udp:" "unsv:"
"dvd:" "vcd:" "tv:" "dvb:" "mf:" "cdda:" "cddb:"
"cue:" "sdp:" "mpst:" "tivo:") . t)
:matcher '(("http:" "https:" "lbry:") . t))
(setq bongo-enabled-backends '(mpv)
bongo-track-mark-icon-file-name "track-mark-icon.png")
bongo-track-mark-icon-file-name "track-mark-icon.png")
(defun chris/bongo-mark-line-forward ()
(interactive)
@ -1367,17 +1361,17 @@ interfere with the default `bongo-playlist-buffer'."
(if (string-equal (system-name) "syl")
(setq transmission-host "home.cochrun.xyz"
transmission-rpc-path "/transmission/rpc"
transmission-refresh-modes '(transmission-mode
transmission-files-mode
transmission-info-mode
transmission-peers-mode))
transmission-rpc-path "/transmission/rpc"
transmission-refresh-modes '(transmission-mode
transmission-files-mode
transmission-info-mode
transmission-peers-mode))
(setq transmission-host "192.168.1.2"
transmission-rpc-path "/transmission/rpc"
transmission-refresh-modes '(transmission-mode
transmission-files-mode
transmission-info-mode
transmission-peers-mode)))
transmission-rpc-path "/transmission/rpc"
transmission-refresh-modes '(transmission-mode
transmission-files-mode
transmission-info-mode
transmission-peers-mode)))
:general
(chris/leader-keys
:states 'normal
@ -1439,60 +1433,7 @@ interfere with the default `bongo-playlist-buffer'."
(gcmh-mode)
:config
(setq gcmh-idle-delay 5
gcmh-high-cons-threshold (* 128 1024 1024) ; 128mb
gcmh-verbose t))
gcmh-high-cons-threshold (* 128 1024 1024) ; 128mb
gcmh-verbose t))
(setq warning-suppress-types '((comp)))
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(ansi-color-faces-vector
[default default default italic underline success warning error])
'(awesome-tray-mode-line-active-color "#0031a9")
'(awesome-tray-mode-line-inactive-color "#d7d7d7")
'(custom-safe-themes
'("7b3d184d2955990e4df1162aeff6bfb4e1c3e822368f0359e15e2974235d9fa8" "ca70827910547eb99368db50ac94556bbd194b7e8311cfbdbdcad8da65e803be" "f4876796ef5ee9c82b125a096a590c9891cec31320569fc6ff602ff99ed73dca" "f2927d7d87e8207fa9a0a003c0f222d45c948845de162c885bf6ad2a255babfd" "fd22c8c803f2dac71db953b93df6560b6b058cb931ac12f688def67f08c10640" "c086fe46209696a2d01752c0216ed72fd6faeabaaaa40db9fc1518abebaf700d" "2c49d6ac8c0bf19648c9d2eabec9b246d46cb94d83713eaae4f26b49a8183fc4" "990e24b406787568c592db2b853aa65ecc2dcd08146c0d22293259d400174e37" "79278310dd6cacf2d2f491063c4ab8b129fee2a498e4c25912ddaa6c3c5b621e" "93ed23c504b202cf96ee591138b0012c295338f38046a1f3c14522d4a64d7308" "e3c64e88fec56f86b49dcdc5a831e96782baf14b09397d4057156b17062a8848" default))
'(exwm-floating-border-color "#888888")
'(flymake-error-bitmap '(flymake-double-exclamation-mark modus-themes-fringe-red))
'(flymake-note-bitmap '(exclamation-mark modus-themes-fringe-cyan))
'(flymake-warning-bitmap '(exclamation-mark modus-themes-fringe-yellow))
'(highlight-tail-colors '(("#aecf90" . 0) ("#c0efff" . 20)))
'(hl-sexp-background-color "#efebe9")
'(hl-todo-keyword-faces
'(("HOLD" . "#70480f")
("TODO" . "#721045")
("NEXT" . "#5317ac")
("THEM" . "#8f0075")
("PROG" . "#00538b")
("OKAY" . "#30517f")
("DONT" . "#315b00")
("FAIL" . "#a60000")
("BUG" . "#a60000")
("DONE" . "#005e00")
("NOTE" . "#863927")
("KLUDGE" . "#813e00")
("HACK" . "#813e00")
("TEMP" . "#5f0000")
("FIXME" . "#a0132f")
("XXX+" . "#972500")
("REVIEW" . "#005a5f")
("DEPRECATED" . "#201f55")))
'(ibuffer-deletion-face 'modus-themes-mark-del)
'(ibuffer-filter-group-name-face 'modus-themes-mark-symbol)
'(ibuffer-marked-face 'modus-themes-mark-sel)
'(ibuffer-title-face 'modus-themes-pseudo-header)
'(line-number-mode nil)
'(org-src-block-faces 'nil)
'(vc-annotate-background-mode nil)
'(xterm-color-names
["black" "#a60000" "#005e00" "#813e00" "#0031a9" "#721045" "#00538b" "gray65"])
'(xterm-color-names-bright
["gray35" "#972500" "#315b00" "#70480f" "#2544bb" "#8f0075" "#30517f" "white"]))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)