]> git.armaanb.net Git - config.org.git/blobdiff - config.org
Update indentation
[config.org.git] / config.org
index 1592d2dd5bcf5df1a9d07161d72b6a29c9437a58..dd8e92df170e5bcc2a9e8ff056709c2080b47109 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
 *** 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
 #+end_src
 *** Ligatures
 #+begin_src emacs-lisp
@@ -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.
@@ -122,7 +123,7 @@ Highlight whitespace and other bad text practices.
     (add-hook hook (lambda () (whitespace-mode 1))))
 #+end_src
 ** Highlight todo items in comments
     (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))
   (use-package hl-todo
     :straight (hl-todo :type git :host github :repo "tarsius/hl-todo")
     :config (global-hl-todo-mode 1))
@@ -149,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
 ** Display number of matches in search
 #+begin_src emacs-lisp
   (use-package anzu
+    :after (evil)
     :config (global-anzu-mode)
     :bind
     :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
     ([remap query-replace] . anzu-query-replace)
     ([remap query-replace-regexp] . anzu-query-replace-regexp))
 #+end_src
@@ -163,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
         (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)
 * 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)
     :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.
 #+end_src
 ** Evil collection
 Evil bindings for tons of packages.
@@ -258,18 +275,15 @@ 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 '(
                         ("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")
+                        ("mb" . "src conf :tangle ~/.mbsyncrc")
+                        ("sp" . "src conf :tangle ~/.spectrwm.conf")
                         ("tm" . "src conf :tangle ~/.tmux.conf")
                         ("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")))
+                        ("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 +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
     :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]*
+
+  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 +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
           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 +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"
                        (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 +617,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
@@ -602,9 +658,9 @@ A very good Git interface.
 *** Email
 #+begin_src emacs-lisp
   (use-package piem)
 *** 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.
 #+end_src
 ** C
 Modified from https://eklitzke.org/smarter-emacs-clang-format.
@@ -768,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)
 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
 #+end_src
 * Tangles
 ** Spectrwm
@@ -893,27 +950,39 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac
   }
 #+end_src
 *** Exports
   }
 #+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
 #+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 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 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="$PATH:/usr/sbin"
   export PATH="$PATH:/usr/sbin"
-
+#+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"
   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"
   export KISS_PATH=""
   export KISS_PATH="$KISS_PATH:$HOME/repos/personal"
   export KISS_PATH="$KISS_PATH:$HOME/repos/bin/bin"
@@ -922,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"
   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"
   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"
   export XDG_DESKTOP_DIR="/dev/null"
   export XDG_DOCUMENTS_DIR="$HOME/documents"
   export XDG_DOWNLOAD_DIR="$HOME/downloads"
@@ -991,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
 #+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 \
     -smp 3 \
     -cpu host \
     -enable-kvm \
@@ -1002,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 \
     -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
 #+end_src
 **** Latin
 #+begin_src shell :tangle ~/.config/ash/ashrc
@@ -1172,8 +1243,8 @@ 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
 *** 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
   allow-emacs-pinentry
 #+end_src
 ** Xmodmap