]> git.armaanb.net Git - config.org.git/blobdiff - config.org
Update mail setup
[config.org.git] / config.org
index 0fc8ebef8b1622a3189327160a594125792cf4cd..be4c70bbbb8ab80fd6a3ae63e623bdd98601b795 100644 (file)
@@ -76,7 +76,8 @@ JetBrains Mono is a great programming font with ligatures. The "NF" means that i
        "[||]" "[<" "[|" "{|" "?." "?=" "?:" "##" "###" "####" "#["
        "#{" "#=" "#!" "#:" "#_(" "#_" "#?" "#(" ";;" "_|_" "__" "~~"
        "~~>" "~>" "~-" "~@" "$>" "^=" "]#"))
-    (global-ligature-mode t))
+    ;; (global-ligature-mode t))
+    )
 #+end_src
 ** Line numbers
 Display relative line numbers except in certain modes.
@@ -258,18 +259,20 @@ Define templates for lots of common structure elements. Mostly just used within
     :after org
     :straight (:type built-in)
     :config
-    (dolist (addition '(("el" . "src emacs-lisp")
-                        ("el" . "src emacs-lisp")
-                        ("sp" . "src conf :tangle ~/.spectrwm.conf")
+    (dolist (addition '(
+                        ("ag" . "src conf :tangle ~/.gnupg/gpg-agent.conf")
                         ("ash" . "src shell :tangle ~/.config/ash/ashrc")
-                        ("pi" . "src conf :tangle ~/.config/picom/picom.conf")
+                        ("el" . "src emacs-lisp")
                         ("git" . "src conf :tangle ~/.gitconfig")
-                        ("za" . "src conf :tangle ~/.config/zathura/zathurarc")
-                        ("xr" . "src conf :tangle ~/.Xresources")
-                        ("tm" . "src conf :tangle ~/.tmux.conf")
                         ("gp" . "src conf :tangle ~/.gnupg/gpg.conf")
-                        ("ag" . "src conf :tangle ~/.gnupg/gpg-agent.conf")
-                        ("xm" . "src conf :tangle ~/.config/xmodmap")))
+                        ("mb" . "src conf :tangle ~/.mbsyncrc")
+                        ("pi" . "src conf :tangle ~/.config/picom/picom.conf")
+                        ("sp" . "src conf :tangle ~/.spectrwm.conf")
+                        ("tm" . "src conf :tangle ~/.tmux.conf")
+                        ("xm" . "src conf :tangle ~/.config/xmodmap")
+                        ("xr" . "src conf :tangle ~/.Xresources")
+                        ("za" . "src conf :tangle ~/.config/zathura/zathurarc")
+                        ))
       (add-to-list 'org-structure-template-alist addition)))
 #+end_src
 * Autocompletion
@@ -314,13 +317,59 @@ Use elfeed for reading RSS. I have another file with all the feeds in it that I'
     :bind (:map elfeed-search-mode-map ("C-c C-o" . 'elfeed-show-visit)))
 #+end_src
 ** Email
-Use mu4e for reading emails.
+Use mu4e and mbsync for reading emails.
+
 Contexts are a not very well known feature of mu4e that makes it super easy to manage multiple accounts. Much better than some of the hacky methods and external packages that I've seen.
-*** TODO Switch to mbsync
-=offlineimap= really crappy (slow and requires python2), and I need to replace it with =mbsync=.
-*** TODO Include mbsync/offlineimap config
-*** TODO Split up and document this config a bit
-*** Setup
+*** mbsync
+**** General
+#+begin_src conf :tangle ~/.mbsyncrc
+  Create Near
+  Expunge Both
+  SyncState *
+#+end_src
+**** Personal
+#+begin_src conf :tangle ~/.mbsyncrc
+  IMAPStore personal-remote
+  Host imap.mailbox.org
+  User me@armaanb.net
+  PassCmd "pash show login.mailbox.org/me@armaanb.net | head -n 1"
+
+  MaildirStore personal-local
+  Path ~/mail/personal/
+  Inbox ~/mail/personal/Inbox
+  Subfolders Verbatim
+
+  Channel personal-channel
+  Far :personal-remote:
+  Near :personal-local:
+  Patterns "INBOX*" "Drafts" "Archive" "Sent" "Trash"
+
+  Group personal
+  Channel personal-channel
+#+end_src
+**** School
+#+begin_src conf :tangle ~/.mbsyncrc
+  IMAPStore school-remote
+  SSLType IMAPS
+  Host imap.gmail.com
+  User abhojwani22@nobles.edu
+  PassCmd "pash show gmail-otp/abhojwani22@nobles.edu | head -n 1"
+
+  MaildirStore school-local
+  Path ~/mail/school/
+  Inbox ~/mail/school/Inbox
+  Subfolders Verbatim
+
+  Channel school-channel
+  Far :school-remote:
+  Near :school-local:
+  Patterns * ![Gmail]* "[Gmail]/Sent Mail" "[Gmail]/All Mail"
+
+  Group school
+  Channel school-channel
+#+end_src
+*** mu4e
+**** Setup
 #+begin_src emacs-lisp
   (use-package smtpmail
     :straight (:type built-in))
@@ -334,7 +383,7 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m
           smtpmail-stream-type 'ssl
           smtpmail-smtp-service '465
           mu4e-change-filenames-when-moving t
-          mu4e-get-mail-command "offlineimap -q"
+          mu4e-get-mail-command "mbsync -a"
           message-citation-line-format "On %a %d %b %Y at %R, %f wrote:\n"
           message-citation-line-function 'message-insert-formatted-citation-line
           mu4e-completing-read-function 'ivy-completing-read
@@ -376,13 +425,13 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m
                        (smtpmail-smtp-server . "smtp.mailbox.org")))))
     (add-to-list 'mu4e-bookmarks
                  '(:name "Unified inbox"
-                         :query "maildir:\"/personal/INBOX\" or maildir:\"/school/INBOX\""
+                         :query "maildir:\"/personal/Inbox\" or maildir:\"/school/Inbox\""
                          :key ?b))
     :hook ((mu4e-compose-mode . flyspell-mode)
            (message-send-hook . (lambda () (unless (yes-or-no-p "Ya sure 'bout that?")
                                              (signal 'quit nil))))))
 #+end_src
-*** Discourage Gnus from displaying HTML emails
+**** Discourage Gnus from displaying HTML emails
 #+begin_src emacs-lisp
   (with-eval-after-load "mm-decode"
     (add-to-list 'mm-discouraged-alternatives "text/html")
@@ -557,12 +606,8 @@ I never use this, but apparently its very powerful. Another item on my todo list
   (use-package projectile
     :config (projectile-mode)
     :custom ((projectile-completion-system 'ivy))
-    :bind-keymap
-    ("C-c p" . projectile-command-map)
-    :init
-    (when (file-directory-p "~/src")
-      (setq projectile-project-search-path '("~/src")))
-    (setq projectile-switch-project-action #'projectile-dired))
+    :bind-keymap ("C-c p" . projectile-command-map)
+    :init (setq projectile-switch-project-action #'projectile-dired))
 
   (use-package counsel-projectile
     :after projectile
@@ -606,13 +651,28 @@ A very good Git interface.
     :straight (git-email :repo "https://git.sr.ht/~yoctocell/git-email")
     :config (git-email-piem-mode))
 #+end_src
-* General text editing
-** Indentation
-Automatically indent after every change. I'm not sure how much I like this. It slows down the editor and code sometimes ends up in a half-indented state meaning I have to manually reformat using "==" anyways.
-#+begin_src emacs-lisp
-  (use-package aggressive-indent
-    :config (global-aggressive-indent-mode))
+** C
+Modified from https://eklitzke.org/smarter-emacs-clang-format.
+
+Style is basically ddevault's style guide but with 4 spaces instead of 8 char tabs.
+#+begin_src emacs-lisp
+  (use-package clang-format
+    :custom (clang-format-style "{
+        BasedOnStyle: llvm,
+        AlwaysBreakAfterReturnType: AllDefinitions,
+        IndentWidth: 4,
+        }"))
+
+  (defun clang-format-buffer-smart ()
+    "Reformat buffer if .clang-format exists in the projectile root."
+    (when (file-exists-p (expand-file-name ".clang-format" (projectile-project-root)))
+      (when (if (eq major-mode 'c-mode))
+        (message "Formatting with clang-format...")
+        (clang-format-buffer))))
+
+  (add-hook 'before-save-hook 'clang-format-buffer-smart nil)
 #+end_src
+* General text editing
 ** Spell checking
 Spell check in text mode, and in prog-mode comments.
 #+begin_src emacs-lisp
@@ -819,6 +879,8 @@ I'm not a huge fan of how spectrwm handles keybindings, probably my biggest grip
   program[calendar] = emacsclient -ce '(acheam-calendar)'
   program[calc] = emacsclient -ce '(progn (calc) (windmove-up) (delete-window))'
   program[emacs] = emacsclient -c
+  program[bookmarks] = /home/armaa/src/bin/bookmarks
+  program[browser] = chorizo
 
   bind[email] = MOD+Control+1
   bind[irc] = MOD+Control+2
@@ -826,6 +888,8 @@ I'm not a huge fan of how spectrwm handles keybindings, probably my biggest grip
   bind[calendar] = MOD+Control+4
   bind[calc] = MOD+Control+5
   bind[emacs] = MOD+Control+Return
+  bind[bookmarks] = MOD+Control+o
+  bind[browser] = MOD+Control+p
 #+end_src
 *** Quirks
 Float some specific programs by default.
@@ -856,7 +920,7 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac
   }
 
   _uup() {
-      rsync "$1" "root@armaanb.net:/var/ftp/pub/$2" --chmod 644
+      rsync "$1" "armaa@armaanb.net:/srv/ftp/pub/$2" --chmod 644 --progress
   }
 
   ufile() {
@@ -919,7 +983,7 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac
 *** Aliases
 **** SSH
 #+begin_src shell :tangle ~/.config/ash/ashrc
-  alias bhoji-drop='ssh -p 23 root@armaanb.net'
+  alias poki='ssh armaanb.net'
   alias irc='ssh root@armaanb.net -t abduco -A irc catgirl freenode'
   alias union='ssh 192.168.1.18'
   alias mine='ssh -p 23 root@pickupserver.cc'
@@ -942,7 +1006,7 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac
   alias ln='ln -v'
   alias grep='grep -in'
   alias mkdir='mkdir -pv'
-  alias lanex='java -jar ~/.local/share/lxc/lanxchange.jar'
+  alias lanex='java -jar ~/.local/share/lxc/lanxchange.jar && rm lxc*'
   emacs() { $EDITOR "$@" & }
   alias vim="emacs"
 #+end_src
@@ -960,14 +1024,14 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac
   alias gps='gpg --keyserver keyserver.ubuntu.com --search-keys'
   alias gpp='gpg --keyserver keyserver.ubuntu.com --recv-key'
   alias plan='T=$(mktemp) && \
-          rsync root@armaanb.net:/etc/finger/plan.txt "$T" && \
+          rsync armaanb.net:/home/armaa/plan.txt "$T" && \
           TT=$(mktemp) && \
           head -n -2 $T > $TT && \
           /bin/nvim $TT && \
           echo >> "$TT" && \
           echo "Last updated: $(date -R)" >> "$TT" && \
           fold -sw 72 "$TT" > "$T"| \
-          rsync "$T" root@armaanb.net:/etc/finger/plan.txt && \
+          rsync "$T" armaanb.net:/home/armaa/plan.txt && \
           rm -f "$T"'
 #+end_src
 **** Virtual machines, chroots
@@ -1065,6 +1129,11 @@ This file is used for any GNU Readline programs. I use Emacs editing mode mostly
   gpgsign = true
   verbose = true
 #+end_src
+*** Tag
+#+begin_src conf :tangle ~/.gitconfig
+  [tag]
+  gpgsign = true
+#+end_src
 ** Zathura
 The best document reader!
 *** Options