]> git.armaanb.net Git - config.org.git/blobdiff - config.org
Update mail setup
[config.org.git] / config.org
index d3ce9550b490d590b8a4f28e1f487383fcc9ece4..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.
 #+end_src
 ** Line numbers
 Display relative line numbers except in certain modes.
@@ -238,7 +239,7 @@ Add back C-a/C-x bindings.
     :custom
     (org-ellipsis " ▾")
     (org-agenda-start-with-log-mode t)
     :custom
     (org-ellipsis " ▾")
     (org-agenda-start-with-log-mode t)
-    (org-agenda-files (quote ("~/Org/tasks.org" "~/Org/break.org")))
+    (org-agenda-files (quote ("~/org/tasks.org")))
     (org-log-done 'time)
     (org-log-into-drawer t)
     (org-src-tab-acts-natively t)
     (org-log-done 'time)
     (org-log-into-drawer t)
     (org-src-tab-acts-natively t)
@@ -258,18 +259,20 @@ Define templates for lots of common structure elements. Mostly just used within
     :after org
     :straight (:type built-in)
     :config
     :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")
                         ("ash" . "src shell :tangle ~/.config/ash/ashrc")
-                        ("pi" . "src conf :tangle ~/.config/picom/picom.conf")
+                        ("el" . "src emacs-lisp")
                         ("git" . "src conf :tangle ~/.gitconfig")
                         ("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")
                         ("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
       (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
     :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.
 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))
 #+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
           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
           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"
                        (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
                          :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")
 #+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))
   (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
 
   (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
     :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
 #+end_src
+* General text editing
 ** Spell checking
 Spell check in text mode, and in prog-mode comments.
 #+begin_src emacs-lisp
 ** 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[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
 
   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[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.
 #+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() {
   }
 
   _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() {
   }
 
   ufile() {
@@ -901,7 +965,6 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac
   export KISS_PATH="$KISS_PATH:$HOME/repos/main/core"
   export KISS_PATH="$KISS_PATH:$HOME/repos/main/extra"
   export KISS_PATH="$KISS_PATH:$HOME/repos/main/xorg"
   export KISS_PATH="$KISS_PATH:$HOME/repos/main/core"
   export KISS_PATH="$KISS_PATH:$HOME/repos/main/extra"
   export KISS_PATH="$KISS_PATH:$HOME/repos/main/xorg"
-  export KISS_PATH="$KISS_PATH:$HOME/repos/main/xorg"
   export KISS_PATH="$KISS_PATH:$HOME/repos/community/community"
   export KISS_PATH="$KISS_PATH:$HOME/repos/mid/ports"
 
   export KISS_PATH="$KISS_PATH:$HOME/repos/community/community"
   export KISS_PATH="$KISS_PATH:$HOME/repos/mid/ports"
 
@@ -920,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
 *** 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'
   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'
@@ -943,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 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
   emacs() { $EDITOR "$@" & }
   alias vim="emacs"
 #+end_src
@@ -961,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) && \
   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"| \
           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
           rm -f "$T"'
 #+end_src
 **** Virtual machines, chroots
@@ -1066,6 +1129,11 @@ This file is used for any GNU Readline programs. I use Emacs editing mode mostly
   gpgsign = true
   verbose = true
 #+end_src
   gpgsign = true
   verbose = true
 #+end_src
+*** Tag
+#+begin_src conf :tangle ~/.gitconfig
+  [tag]
+  gpgsign = true
+#+end_src
 ** Zathura
 The best document reader!
 *** Options
 ** Zathura
 The best document reader!
 *** Options
@@ -1148,28 +1216,21 @@ I use tmux in order to keep my st build light. Still learning how it works.
 #+end_src
 *** Agent
 #+begin_src conf :tangle ~/.gnupg/gpg-agent.conf
 #+end_src
 *** Agent
 #+begin_src conf :tangle ~/.gnupg/gpg-agent.conf
-  pinentry-program /sbin/pinentry-fltk
+  pinentry-program /sbin/pinentry
   max-cache-ttl 600
   default-cache-ttl 600
   allow-emacs-pinentry
 #+end_src
 ** Xmodmap
   max-cache-ttl 600
   default-cache-ttl 600
   allow-emacs-pinentry
 #+end_src
 ** Xmodmap
-#+begin_src conf :tangle ~/.config/xmodmap
-  !
+#+begin_src conf (if (eq system-name "frost.armaanb.net") ":tangle ~/.config/xmodmap")
   ! Unmap left super
   ! Unmap left super
-  !
   clear mod4
 
   clear mod4
 
-  !
   ! Turn right alt into super
   ! Turn right alt into super
-  !
   remove mod1 = Alt_R
   add mod4 = Alt_R
   remove mod1 = Alt_R
   add mod4 = Alt_R
-#+end_src
-#+begin_src conf (if (eq system-name "frost.armaanb.net") ":tangle ~/.config/xmodmap")
-  !
+
   ! Swap caps and control
   ! Swap caps and control
-  !
   remove Lock = Caps_Lock
   remove Control = Control_L
   remove Lock = Control_L
   remove Lock = Caps_Lock
   remove Control = Control_L
   remove Lock = Control_L