]> git.armaanb.net Git - config.org.git/blobdiff - config.org
xmodmap: fix tangle
[config.org.git] / config.org
index 158b209a6484ad9ade475f60781e75802957dd15..fa43e92b8bf22bcdc113dd26727e5b8f9853405f 100644 (file)
@@ -55,7 +55,7 @@ Use the Modus Operandi theme by Protesilaos Stavrou. Its the best theme for Emac
 *** Font
 JetBrains Mono is a great programming font with ligatures. The "NF" means that it has been patched with the [[https://www.nerdfonts.com/][Nerd Fonts]].
 #+begin_src emacs-lisp
-  (add-to-list 'default-frame-alist '(font . "JetBrainsMonoNF-12"))
+  (add-to-list 'default-frame-alist '(font . "JetBrainsMonoNF-11"))
 #+end_src
 *** Ligatures
 #+begin_src emacs-lisp
@@ -123,7 +123,7 @@ Highlight whitespace and other bad text practices.
     (add-hook hook (lambda () (whitespace-mode 1))))
 #+end_src
 ** Highlight todo items in comments
-+begin_src emacs-lisp
+#+begin_src emacs-lisp
   (use-package hl-todo
     :straight (hl-todo :type git :host github :repo "tarsius/hl-todo")
     :config (global-hl-todo-mode 1))
@@ -150,8 +150,12 @@ Soft wrap words and do operations by visual lines in some modes.
 ** Display number of matches in search
 #+begin_src emacs-lisp
   (use-package anzu
+    :after (evil)
     :config (global-anzu-mode)
     :bind
+    ([remap isearch-forward] . isearch-forward-regexp)
+    ([remap isearch-backward] . isearch-backward-regexp)
+    ([remap query-replace] . anzu-query-replace)
     ([remap query-replace] . anzu-query-replace)
     ([remap query-replace-regexp] . anzu-query-replace-regexp))
 #+end_src
@@ -164,18 +168,30 @@ Invert modeline color instead of audible bell or the standard visual bell.
         (lambda () (invert-face 'mode-line)
           (run-with-timer 0.1 nil #'invert-face 'mode-line)))
 #+end_src
+** GUI
+#+begin_src emacs-lisp
+  (scroll-bar-mode -1)
+  (tool-bar-mode -1)
+  (menu-bar-mode -1)
+#+end_src
 * Evil mode
 ** General
 #+begin_src emacs-lisp
   (use-package evil
     :custom (select-enable-clipboard nil)
+    :init (setq evil-want-keybinding nil
+                evil-want-minibuffer t
+                evil-want-C-d-scroll t
+                evil-want-C-u-scroll t)
     :config
     (evil-mode)
     (fset 'evil-visual-update-x-selection 'ignore) ;; Keep clipboard and register seperate
     ;; Use visual line motions even outside of visual-line-mode buffers
     (evil-global-set-key 'motion "j" 'evil-next-visual-line)
     (evil-global-set-key 'motion "k" 'evil-previous-visual-line)
-    (global-set-key (kbd "<escape>") 'keyboard-escape-quit))
+    :bind
+    ("<escape>" . keyboard-escape-quit)
+    ("C-M-u" . universal-argument))
 #+end_src
 ** Evil collection
 Evil bindings for tons of packages.
@@ -260,16 +276,12 @@ Define templates for lots of common structure elements. Mostly just used within
     :straight (:type built-in)
     :config
     (dolist (addition '(
-                        ("ag" . "src conf :tangle ~/.gnupg/gpg-agent.conf")
                         ("ash" . "src shell :tangle ~/.config/ash/ashrc")
                         ("el" . "src emacs-lisp")
                         ("git" . "src conf :tangle ~/.gitconfig")
-                        ("gp" . "src conf :tangle ~/.gnupg/gpg.conf")
-                        ("pi" . "src conf :tangle ~/.config/picom/picom.conf")
+                        ("mb" . "src conf :tangle ~/.mbsyncrc")
                         ("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)))
@@ -316,13 +328,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]*
+
+  Group school
+  Channel school-channel
+#+end_src
+*** mu4e
+**** Setup
 #+begin_src emacs-lisp
   (use-package smtpmail
     :straight (:type built-in))
@@ -336,7 +394,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
@@ -378,13 +436,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")
@@ -600,9 +658,9 @@ A very good Git interface.
 *** Email
 #+begin_src emacs-lisp
   (use-package piem)
-  (use-package git-email
-    :straight (git-email :repo "https://git.sr.ht/~yoctocell/git-email")
-    :config (git-email-piem-mode))
+  ;; (use-package git-email
+  ;;   :straight (git-email :repo "https://git.sr.ht/~yoctocell/git-email")
+  ;;   :config (git-email-piem-mode))
 #+end_src
 ** C
 Modified from https://eklitzke.org/smarter-emacs-clang-format.
@@ -766,9 +824,10 @@ Similar to the ufile alias in my ashrc
 Automatically close unused buffers (except those of Circe) at midnight.
 #+begin_src emacs-lisp
   (midnight-mode)
-  (add-to-list 'clean-buffer-list-kill-never-regexps (lambda (buffer-name)
-                                                       (with-current-buffer buffer-name
-                                                         (derived-mode-p 'lui-mode))))
+  (add-to-list 'clean-buffer-list-kill-never-regexps
+               (lambda (buffer-name)
+                 (with-current-buffer buffer-name
+                   (derived-mode-p 'lui-mode))))
 #+end_src
 * Tangles
 ** Spectrwm
@@ -891,27 +950,39 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac
   }
 #+end_src
 *** Exports
+**** Default programs
 #+begin_src shell :tangle ~/.config/ash/ashrc
   export EDITOR="emacsclient -c"
   export VISUAL="$EDITOR"
   export TERM=xterm-256color # for compatability
-
+  #+end_src
+**** General program configs
+#+begin_src shell :tangle ~/.config/ash/ashrc
   export GPG_TTY="$(tty)"
   export MANPAGER='nvim +Man!'
   export PAGER='less'
   export GTK_USE_PORTAL=1
   export CDPATH=:~
-
-  export PATH="/home/armaa/.local/bin:$PATH" # prioritize .local/bin
-  export PATH="/home/armaa/src/bin:$PATH" # prioritize my bin
-  export PATH="//home/armaa/src/bin/bin:$PATH" # prioritize my bins
-  export PATH="$PATH:/usr/sbin"
-
+  export LESSHISTFILE=/dev/null
+  export PASH_KEYID=me@armaanb.net
+  export PASH_LENGTH=20
+#+end_src
+**** PATH
+#+begin_src shell :tangle ~/.config/ash/ashrc
+  export PATH="/home/armaa/src/bin:$PATH"
+  export PATH="/home/armaa/src/bin/bin:$PATH"
+  export PATH="/home/armaa/.local/bin:$PATH"
+  export PATH="/usr/lib/ccache/bin:$PATH"
+#+end_src
+**** Locale
+#+begin_src shell :tangle ~/.config/ash/ashrc
   export LC_ALL="en_US.UTF-8"
   export LC_CTYPE="en_US.UTF-8"
   export LANGUAGE="en_US.UTF-8"
   export TZ="America/New_York"
-
+#+end_src
+**** KISS
+#+begin_src shell :tangle ~/.config/ash/ashrc
   export KISS_PATH=""
   export KISS_PATH="$KISS_PATH:$HOME/repos/personal"
   export KISS_PATH="$KISS_PATH:$HOME/repos/bin/bin"
@@ -920,12 +991,16 @@ 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/xorg"
   export KISS_PATH="$KISS_PATH:$HOME/repos/community/community"
   export KISS_PATH="$KISS_PATH:$HOME/repos/mid/ports"
-
+#+end_src
+**** Compilation flags
+#+begin_src shell :tangle ~/.config/ash/ashrc
   export CFLAGS="-O3 -pipe -march=native"
   export CXXFLAGS="$CFLAGS"
   export MAKEFLAGS="-j$(nproc)"
   export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig"
-
+#+end_src
+**** XDG desktop dirs
+#+begin_src shell :tangle ~/.config/ash/ashrc
   export XDG_DESKTOP_DIR="/dev/null"
   export XDG_DOCUMENTS_DIR="$HOME/documents"
   export XDG_DOWNLOAD_DIR="$HOME/downloads"
@@ -989,9 +1064,7 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac
 #+end_src
 **** Virtual machines, chroots
 #+begin_src shell :tangle ~/.config/ash/ashrc
-  alias ckiss="doas chrooter ~/Virtual/kiss"
-  alias cdebian="doas chrooter ~/Virtual/debian bash"
-  alias cwindows='devour qemu-system-x86_64 \
+  alias cwindows='qemu-system-x86_64 \
     -smp 3 \
     -cpu host \
     -enable-kvm \
@@ -1000,8 +1073,8 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac
     -device intel-hda \
     -device hda-duplex \
     -net nic \
-    -net user,smb=/home/armaa/Public \
-    -drive format=qcow2,file=/home/armaa/Virtual/windows.qcow2'
+    -net user,smb=/home/armaa/public \
+    -drive format=qcow2,file=/home/armaa/virtual/windows.qcow2'
 #+end_src
 **** Latin
 #+begin_src shell :tangle ~/.config/ash/ashrc
@@ -1170,12 +1243,12 @@ I use tmux in order to keep my st build light. Still learning how it works.
 *** Agent
 #+begin_src conf :tangle ~/.gnupg/gpg-agent.conf
   pinentry-program /sbin/pinentry
-  max-cache-ttl 600
-  default-cache-ttl 600
+  max-cache-ttl 6000
+  default-cache-ttl 6000
   allow-emacs-pinentry
 #+end_src
 ** Xmodmap
-#+begin_src conf (if (eq system-name "frost.armaanb.net") ":tangle ~/.config/xmodmap")
+#+begin_src conf :tangle (progn (if (string= (system-name) "frost.armaanb.net") "~/.config/xmodmap" "no"))
   ! Unmap left super
   clear mod4