]> git.armaanb.net Git - config.org.git/blobdiff - config.org
xmodmap: fix tangle
[config.org.git] / config.org
index 09c04d68f97619cc12a8ef06b00b7703aeffc6e5..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
 *** 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.
@@ -238,7 +255,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 +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,17 +658,32 @@ 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
 #+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
@@ -753,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
@@ -819,6 +891,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 +900,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 +932,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() {
@@ -874,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 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"
   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"
@@ -903,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"
@@ -919,7 +1011,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'
@@ -942,7 +1034,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
@@ -960,21 +1052,19 @@ 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
 #+begin_src shell :tangle ~/.config/ash/ashrc
           rm -f "$T"'
 #+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 \
@@ -983,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
@@ -1065,6 +1155,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
@@ -1147,28 +1242,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
-  max-cache-ttl 600
-  default-cache-ttl 600
+  pinentry-program /sbin/pinentry
+  max-cache-ttl 6000
+  default-cache-ttl 6000
   allow-emacs-pinentry
 #+end_src
 ** Xmodmap
   allow-emacs-pinentry
 #+end_src
 ** Xmodmap
-#+begin_src conf :tangle ~/.config/xmodmap
-  !
+#+begin_src conf :tangle (progn (if (string= (system-name) "frost.armaanb.net") "~/.config/xmodmap" "no"))
   ! 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