]> git.armaanb.net Git - config.org.git/blobdiff - config.org
Add elfeed keybinding
[config.org.git] / config.org
index 10f4c501d50cfb4cde2eeeadccf55e6132ba3b1f..a6579af83b881682556696217778c501714739c8 100644 (file)
@@ -15,9 +15,7 @@ Another important choice has been to integrate Emacs into a large part of my com
 Lastly, I use Evil mode. I think modal keybindings are simple and more ergonomic than standard Emacs style, and Vim keybindings are what I'm comfortable with and are pervasive throughout computing.
 ** TODOs
 *** TODO Turn keybinding and hook declarations into use-package declarations where possible
-*** TODO Put configs with passwords in here with some kind of authentication
-- Offlineimap
-- irc.el
+*** TODO Include offlineimap config
 ** License
 Released under the [[https://opensource.org/licenses/MIT][MIT license]] by Armaan Bhojwani, 2021. Note that many snippets are taken from online, and other sources, who are credited for their work at the snippet.
 * Package management
@@ -262,7 +260,6 @@ Add back C-a/C-x
     (add-to-list 'org-structure-template-alist '("el" . "src emacs-lisp"))
     (add-to-list 'org-structure-template-alist '("sp" . "src conf :tangle ~/.spectrwm.conf"))
     (add-to-list 'org-structure-template-alist '("ash" . "src shell :tangle ~/.config/ash/ashrc"))
-    (add-to-list 'org-structure-template-alist '("al" . "src yml :tangle ~/.config/alacritty/alacritty.yml"))
     (add-to-list 'org-structure-template-alist '("ipy" . "src python :tangle ~/.ipython/"))
     (add-to-list 'org-structure-template-alist '("pi" . "src conf :tangle ~/.config/picom/picom.conf"))
     (add-to-list 'org-structure-template-alist '("git" . "src conf :tangle ~/.gitconfig"))
@@ -270,7 +267,10 @@ Add back C-a/C-x
     (add-to-list 'org-structure-template-alist '("za" . "src conf :tangle ~/.config/zathura/zathurarc"))
     (add-to-list 'org-structure-template-alist '("ff1" . "src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userChrome.css"))
     (add-to-list 'org-structure-template-alist '("ff2" . "src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userContent.css"))
-    (add-to-list 'org-structure-template-alist '("xr" . "src conf :tangle ~/.Xresources")))
+    (add-to-list 'org-structure-template-alist '("xr" . "src conf :tangle ~/.Xresources"))
+    (add-to-list 'org-structure-template-alist '("tm" . "src conf :tangle ~/.tmux.conf"))
+    (add-to-list 'org-structure-template-alist '("gp" . "src conf :tangle ~/.gnupg/gpg.conf"))
+    (add-to-list 'org-structure-template-alist '("ag" . "src conf :tangle ~/.gnupg/gpg-agent.conf")))
 #+end_src
 * Autocompletion
 ** Ivy
@@ -304,8 +304,7 @@ Ivy everywhere.
 #+begin_src emacs-lisp
   (use-package ivy-prescient
     :after counsel
-    :custom
-    (ivy-prescient-enable-filtering nil)
+    :custom (ivy-prescient-enable-filtering nil)
     :config
     (prescient-persist-mode)
     (ivy-prescient-mode))
@@ -356,6 +355,7 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m
           message-citation-line-function 'message-insert-formatted-citation-line
           mu4e-completing-read-function 'ivy-completing-read
           mu4e-confirm-quit nil
+          mu4e-view-use-gnus t
           mail-user-agent 'mu4e-user-agent
           mu4e-contexts
           `( ,(make-mu4e-context
@@ -370,6 +370,7 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m
                        (mu4e-drafts-folder . "/school/Drafts")
                        (mu4e-trash-folder . "/school/Trash")
                        (mu4e-refile-folder . "/school/Archive")
+                       (message-cite-reply-position . above)
                        (user-mail-address . "abhojwani22@nobles.edu")
                        (smtpmail-smtp-user . "abhojwani22@nobles.edu")
                        (smtpmail-smtp-server . "smtp.gmail.com")))
@@ -385,16 +386,23 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m
                        (mu4e-trash-folder . "/personal/Trash")
                        (mu4e-refile-folder . "/personal/Archive")
                        (user-mail-address . "me@armaanb.net")
+                       (message-cite-reply-position . below)
                        (smtpmail-smtp-user . "me@armaanb.net")
-                       (smtpmail-smtp-server "smtp.mailbox.org")
-                       (mu4e-drafts-folder . "/school/Drafts")
-                       (mu4e-trash-folder . "/school/Trash")))))
+                       (smtpmail-smtp-server . "smtp.mailbox.org")))))
     (add-to-list 'mu4e-bookmarks
                  '(:name "Unified inbox"
                          :query "maildir:\"/personal/INBOX\" or maildir:\"/school/INBOX\""
                          :key ?b))
     :hook ((mu4e-compose-mode . flyspell-mode)
+           (mu4e-compose-mode . auto-fill-mode)
            (mu4e-view-mode-hook . turn-on-visual-line-mode)))
+
+#+end_src
+Discourage Gnus from displaying HTML emails
+#+begin_src emacs-lisp
+  (with-eval-after-load "mm-decode"
+    (add-to-list 'mm-discouraged-alternatives "text/html")
+    (add-to-list 'mm-discouraged-alternatives "text/richtext"))
 #+end_src
 ** Default browser
 Set EWW as default browser except for videos.
@@ -430,46 +438,39 @@ Some EWW enhancements.
     :bind (("C-c w" . eww))
     :hook (eww-after-render-hook prot-eww--rename-buffer))
 #+end_src
-*** Better entrypoint
+*** Keybinding
 #+begin_src emacs-lisp
-  ;; From https://protesilaos.com/dotemacs/
-  (defun prot-eww-browse-dwim (url &optional arg)
-    "Visit a URL, maybe from `eww-prompt-history', with completion.
-
-  With optional prefix ARG (\\[universal-argument]) open URL in a
-  new eww buffer.
-
-  If URL does not look like a valid link, run a web query using
-  `eww-search-prefix'.
-
-  When called from an eww buffer, provide the current link as
-  initial input."
-    (interactive
-     (list
-      (completing-read "Query:" eww-prompt-history
-                       nil nil (plist-get eww-data :url) 'eww-prompt-history)
-      current-prefix-arg))
-    (eww url (if arg 4 nil)))
-
-  (global-set-key (kbd "C-c w") 'prot-eww-browse-dwim)
+  (global-set-key (kbd "C-c w") 'eww)
 #+end_src
 ** IRC
 #+begin_src emacs-lisp
-  (use-package erc
-    :straight (:type built-in)
+  (use-package circe
     :config
-    (load "~/.emacs.d/irc.el")
-    (acheam-irc)
-    (erc-notifications-enable)
-    (erc-smiley-disable))
+    (enable-lui-track)
+    (enable-circe-color-nicks))
 
-  (use-package erc-hl-nicks
-    :config (erc-hl-nicks-mode 1))
-#+end_src
-** Emacs Anywhere
-Use Emacs globally. Use the Emacs daemon and bind a key in your wm to =emacsclient --eval "(emacs-everywhere)"=.
-#+begin_src emacs-lisp
-  (use-package emacs-everywhere)
+  (defun fetch-password (&rest params)
+    (require 'auth-source)
+    (let ((match (car (apply 'auth-source-search params))))
+      (if match
+          (let ((secret (plist-get match :secret)))
+            (if (functionp secret)
+                (funcall secret)
+              secret))
+        (error "Password not found for %S" params))))
+
+  (setq circe-network-options
+        '(("pounce"
+           :host "irc.armaanb.net"
+           :nick "emacs"
+           :use-tls t
+           :port "6697"
+           :pass (lambda (fetch-password
+                          :login "emacs"
+                          :machine "irc.armaanb.net"
+                          :port 6697))))
+
+        (circe "pounce")
 #+end_src
 * Emacs IDE
 ** Code cleanup
@@ -541,6 +542,32 @@ Use Emacs globally. Use the Emacs daemon and bind a key in your wm to =emacsclie
            (magit-post-refresh-hook . diff-hl-magit-post-refresh))
     :config (global-diff-hl-mode))
 #+end_src
+*** 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))
+#+end_src
+** Java
+*** Evaluate current buffer
+Stolen from https://stackoverflow.com/questions/19953924/how-do-you-run-java-codes-in-emacs
+#+begin_src emacs-lisp
+  (defun java-eval-buffer ()
+    "run current program (that requires no input)"
+    (interactive)
+    (let* ((source (file-name-nondirectory buffer-file-name))
+           (out    (file-name-sans-extension source))
+           (class  (concat out ".class")))
+      (save-buffer)
+      (shell-command (format "rm -f %s && javac %s" class source))
+      (if (file-exists-p class)
+          (shell-command (format "java %s" out) "*scratch*")
+        (progn
+          (set (make-local-variable 'compile-command)
+               (format "javac %s" source))
+          (command-execute 'compile)))))
+#+end_src
 * General text editing
 ** Indentation
 Indent after every change.
@@ -600,6 +627,24 @@ Abbreviate things!
 #+begin_src emacs-lisp
   (setq ispell-silently-savep t)
 #+end_src
+** Open file as root
+#+begin_src emacs-lisp
+  (defun doas-edit (&optional arg)
+    "Edit currently visited file as root.
+
+    With a prefix ARG prompt for a file to visit.
+    Will also prompt for a file to visit if current
+    buffer is not visiting a file.
+
+    Modified from Emacs Redux."
+    (interactive "P")
+    (if (or arg (not buffer-file-name))
+        (find-file (concat "/doas:root@localhost:"
+                           (ido-read-file-name "Find file(as root): ")))
+      (find-alternate-file (concat "/doas:root@localhost:" buffer-file-name))))
+
+    (global-set-key (kbd "C-x C-r") #'doas-edit)
+#+end_src
 * Keybindings
 ** Switch windows
 #+begin_src emacs-lisp
@@ -685,7 +730,7 @@ No more clogging up init.el.
 *** Keybindings
 **** WM actions
 #+begin_src conf :tangle ~/.spectrwm.conf
-  program[term] = alacritty
+  program[term] = st -e tmux
   program[screenshot_all] = flameshot gui
   program[notif] = /home/armaa/Code/scripts/setter status
   program[pass] = /home/armaa/Code/scripts/passmenu
@@ -727,17 +772,17 @@ No more clogging up init.el.
 #+end_src
 **** Programs
 #+begin_src conf :tangle ~/.spectrwm.conf
-  program[aerc] = alacritty -e aerc
-  program[catgirl] = alacritty --hold -e sh -c "while : ; do ssh root@armaanb.net -t abduco -A irc catgirl freenode; sleep 2; done"
+  program[email] = emacsclient -c --eval "(mu4e)"
+  program[irc] = emacsclient -c --eval '(switch-to-buffer "irc.armaanb.net:6697")'
+  program[rss] = emacsclient -c --eval '(elfeed)'
   program[emacs] = emacsclient -c
   program[firefox] = firefox
-  program[calc] = alacritty -e because -l
-  program[emacs-anywhere] = emacsclient --eval "(emacs-everywhere)"
+  program[calc] = st -e because -l
 
-  bind[aerc] = MOD+Control+1
-  bind[catgirl] = MOD+Control+2
-  bind[firefox] = MOD+Control+3
-  bind[emacs-anywhere] = MOD+Control+4
+  bind[email] = MOD+Control+1
+  bind[irc] = MOD+Control+2
+  bind[rss] = MOD+Control+3
+  bind[firefox] = MOD+Control+4
   bind[calc] = MOD+Control+5
   bind[emacs] = MOD+Control+Return
 #+end_src
@@ -758,18 +803,15 @@ No more clogging up init.el.
   reset=$(tput sgr0)
 
   apu() {
-      sudo echo "${color}== upgrading with yay ==${reset}"
+      doas echo "${color}== upgrading with yay ==${reset}"
       yay
       echo ""
       echo "${color}== checking for pacnew files ==${reset}"
-      sudo pacdiff
+      doas pacdiff
       echo
       echo "${color}== upgrading flatpaks ==${reset}"
       flatpak update
       echo ""
-      echo "${color}== upgrading zsh plugins ==${reset}"
-      zpe-pull
-      echo ""
       echo "${color}== updating nvim plugins ==${reset}"
       nvim +PlugUpdate +PlugUpgrade +qall
       echo "Updated nvim plugins"
@@ -780,15 +822,12 @@ No more clogging up init.el.
 **** Clean all packages
 #+begin_src shell :tangle ~/.config/ash/ashrc
   apap() {
-      sudo echo "${color}== cleaning pacman orphans ==${reset}"
-      (pacman -Qtdq | sudo pacman -Rns - 2> /dev/null) || echo "No orphans"
+      doas echo "${color}== cleaning pacman orphans ==${reset}"
+      (pacman -Qtdq | doas pacman -Rns - 2> /dev/null) || echo "No orphans"
       echo ""
       echo "${color}== cleaning flatpaks ==${reset}"
       flatpak remove --unused
       echo ""
-      echo "${color}== cleaning zsh plugins ==${reset}"
-      zpe-clean
-      echo ""
       echo "${color}== cleaning nvim plugins ==${reset}"
       nvim +PlugClean +qall
       echo "Cleaned nvim plugins"
@@ -810,7 +849,7 @@ No more clogging up init.el.
   finger() {
       user=$(echo "$1" | cut -f 1 -d '@')
       host=$(echo "$1" | cut -f 2 -d '@')
-      echo $user | nc "$host" 79 -N
+      echo $user | nc "$host" 79
   }
 #+end_src
 **** Upload to ftp.armaanb.net
@@ -820,6 +859,37 @@ No more clogging up init.el.
       echo "https://ftp.armaanb.net/pub/"$(basename "$1") | tee /dev/tty | xclip -sel c
   }
 #+end_src
+*** Exports
+#+begin_src shell :tangle ~/.config/ash/ashrc
+  export EDITOR="emacsclient -c"
+  export VISUAL="$EDITOR"
+  export TERM=xterm-256color # for compatability
+
+  export GPG_TTY="$(tty)"
+  export MANPAGER='nvim +Man!'
+  export PAGER='less'
+
+  export GTK_USE_PORTAL=1
+
+  export PATH="/home/armaa/.local/bin:$PATH" # prioritize .local/bin
+  export PATH="/home/armaa/Code/scripts:$PATH" # prioritize my scripts
+  export PATH="/home/armaa/Code/scripts/bin:$PATH" # prioritize my bins
+  export PATH="$PATH:/home/armaa/.cargo/bin"
+  export PATH="$PATH:/home/armaa/.local/share/gem/ruby/2.7.0/bin"
+  export PATH="$PATH:/usr/sbin"
+  export PATH="$PATH:/opt/FreeTube/freetube"
+
+  export LC_ALL="en_US.UTF-8"
+  export LC_CTYPE="en_US.UTF-8"
+  export LANGUAGE="en_US.UTF-8"
+
+  export KISS_PATH="/home/armaa/Virtual/kiss/home/armaa/kiss-repo"
+  export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/core"
+  export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/extra"
+  export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/xorg"
+  export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/testing"
+  export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-community/community"
+#+end_src
 *** Aliases
 **** SSH
 #+begin_src shell :tangle ~/.config/ash/ashrc
@@ -835,31 +905,26 @@ No more clogging up init.el.
 #+end_src
 **** File management
 #+begin_src shell :tangle ~/.config/ash/ashrc
-  alias ls='exa -lh --icons --git --group-directories-first'
-  alias la='exa -lha --icons --git --group-directories-first'
+  alias ls='ls -lh --group-directories-first'
+  alias la='ls -A'
   alias df='df -h / /boot'
   alias du='du -h'
   alias free='free -h'
   alias cp='cp -riv'
   alias rm='rm -iv'
   alias mv='mv -iv'
-  alias ln='ln -iv'
-  alias grep='grep -in --exclude-dir=.git --color=auto'
-  alias fname='find -name'
+  alias ln='ln -v'
+  alias grep='grep -in --color=auto'
   alias mkdir='mkdir -pv'
-  alias unar='atool -x'
-  alias wget='wget -e robots=off'
-  alias lanex='~/.local/share/lxc/lxc'
-  alias vim='nvim'
+  alias lanex='java -jar ~/.local/share/lxc/lanxchange.jar'
+  alias vim=$EDITOR
+  alias emacs=$EDITOR
 #+end_src
 **** System management
 #+begin_src shell :tangle ~/.config/ash/ashrc
-  alias jctl='journalctl -p 3 -xb'
   alias pkill='pkill -i'
-  alias cx='chmod +x'
-  alias redoas='doas $(fc -ln -1)'
   alias crontab='crontab-argh'
-  alias sudo='doas ' # allows aliases to be run with doas
+  alias sudo='doas'
   alias pasu='git -C ~/.password-store push'
   alias yadu='yadm add -u && yadm commit -m "Updated `date -Iseconds`" && \
     yadm push'
@@ -867,9 +932,6 @@ No more clogging up init.el.
 **** Networking
 #+begin_src shell :tangle ~/.config/ash/ashrc
   alias ping='ping -c 10'
-  alias speed='speedtest-cli'
-  alias ip='ip --color=auto'
-  alias cip='curl https://armaanb.net/ip'
   alias gps='gpg --keyserver keyserver.ubuntu.com --search-keys'
   alias gpp='gpg --keyserver keyserver.ubuntu.com --recv-key'
   alias plan='T=$(mktemp) && \
@@ -880,28 +942,11 @@ No more clogging up init.el.
         echo "\nLast updated: $(date -R)" >> "$TT" && \
         fold -sw 72 "$TT" > "$T"| \
         rsync "$T" root@armaanb.net:/etc/finger/plan.txt'
-  alias wttr='curl -s "wttr.in/02445?n" | head -n -3'
-#+end_src
-**** Other
-#+begin_src shell :tangle ~/.config/ash/ashrc
-  alias bigrandomfile='dd if=/dev/urandom of=1GB-urandom bs=1M count=1024 \
-    iflag=fullblock status=progress'
-  alias bigboringfile='dd if=/dev/zero of=1GB-zero bs=1M count=1024 \
-    iflag=fullblock status=progress'
-  alias ts='gen-shell -c task'
-  alias ts='gen-shell -c task'
-  alias tetris='autoload -Uz tetriscurses && tetriscurses'
-  alias news='newsboat'
-  alias tilderadio="\mpv https://radio.tildeverse.org/radio/8000/radio.ogg"
-  alias ytmusic="youtube-dl -x --add-metadata  --audio-format aac \
-    --restrict-filenames -o '%(title)s.%(ext)s'"
-  alias cal="cal -3 --color=auto"
-  alias bc='bc -l'
 #+end_src
 **** Virtual machines, chroots
 #+begin_src shell :tangle ~/.config/ash/ashrc
-  alias ckiss="sudo chrooter ~/Virtual/kiss"
-  alias cdebian="sudo chrooter ~/Virtual/debian bash"
+  alias ckiss="doas chrooter ~/Virtual/kiss"
+  alias cdebian="doas chrooter ~/Virtual/debian bash"
   alias cwindows='devour qemu-system-x86_64 \
     -smp 3 \
     -cpu host \
@@ -916,10 +961,6 @@ No more clogging up init.el.
 #+end_src
 **** Python
 #+begin_src shell :tangle ~/.config/ash/ashrc
-  alias ipy="ipython"
-  alias zpy="zconda && ipython"
-  alias math="ipython --profile=math"
-  alias pypi="python setup.py sdist && twine upload dist/*"
   alias pip="python -m pip"
   alias black="black -l 79"
 #+end_src
@@ -931,158 +972,35 @@ No more clogging up init.el.
 **** Devour
 #+begin_src shell :tangle ~/.config/ash/ashrc
   alias zathura='devour zathura'
-  alias mpv='devour mpv'
-  alias sql='devour sqlitebrowser'
   alias cad='devour openscad'
   alias feh='devour feh'
 #+end_src
-**** Package management (Pacman)
+**** Pacman
 #+begin_src shell :tangle ~/.config/ash/ashrc
   alias aps='yay -Ss'
   alias api='yay -Syu'
-  alias apii='sudo pacman -S'
+  alias apii='doas pacman -S'
   alias app='yay -Rns'
-  alias apc='yay -Sc'
-  alias apo='yay -Qttd'
   alias azf='pacman -Q | fzf'
   alias favorites='pacman -Qe | cut -d " " -f 1 > ~/Documents/favorites'
-  alias ufetch='ufetch-arch'
-  alias reflect='reflector --verbose --sort rate --save \
-     ~/.local/etc/pacman.d/mirrorlist --download-timeout 60' # Takes ~45m to run
 #+end_src
-**** Package management (KISS)
-#+begin_src shell :tangle ~/.config/ash/ashrc
-  alias kzf="kiss s \* | xargs -l basename | \
-    fzf --preview 'kiss search {} | xargs -l dirname'"
-#+end_src
-*** Exports
+**** Other
 #+begin_src shell :tangle ~/.config/ash/ashrc
-  export EDITOR="emacsclient -c"
-  export VISUAL="$EDITOR"
-  export TERM=xterm-256color # for compatability
-
-  export GPG_TTY="$(tty)"
-  export MANPAGER='nvim +Man!'
-  export PAGER='less'
-
-  export GTK_USE_PORTAL=1
-
-  export PATH="/home/armaa/.local/bin:$PATH" # prioritize .local/bin
-  export PATH="/home/armaa/Code/scripts:$PATH" # prioritize my scripts
-  export PATH="/home/armaa/Code/scripts/bin:$PATH" # prioritize my bins
-  export PATH="$PATH:/home/armaa/.cargo/bin"
-  export PATH="$PATH:/home/armaa/.local/share/gem/ruby/2.7.0/bin"
-  export PATH="$PATH:/usr/sbin"
-  export PATH="$PATH:/opt/FreeTube/freetube"
-
-  export LC_ALL="en_US.UTF-8"
-  export LC_CTYPE="en_US.UTF-8"
-  export LANGUAGE="en_US.UTF-8"
-
-  export KISS_PATH="/home/armaa/Virtual/kiss/home/armaa/kiss-repo"
-  export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/core"
-  export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/extra"
-  export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/xorg"
-  export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/testing"
-  export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-community/community"
-#+end_src
-** Alacritty
-*** Appearance
-#+begin_src yml :tangle ~/.config/alacritty/alacritty.yml
-font:
-  normal:
-    family: JetBrains Mono Nerd Font
-    style: Medium
-  italic:
-    style: Italic
-  Bold:
-    style: Bold
-  size: 7
-  ligatures: true # Requires ligature patch
-
-window:
-  padding:
-    x: 5
-    y: 5
-
-background_opacity: 1
-#+end_src
-*** Color scheme
-Modus vivendi. Source: https://github.com/ishan9299/Nixos/blob/d4bbb7536be95b59466bb9cca4d671be46e04e81/user/alacritty/alacritty.yml#L30-L118
-#+begin_src yml :tangle ~/.config/alacritty/alacritty.yml
-colors:
-  # Default colors
-  primary:
-    background: '#000000'
-    foreground: '#ffffff'
-
-  cursor:
-    text: '#000000'
-    background: '#ffffff'
-
-  # Normal colors (except green it is from intense colors)
-  normal:
-    black:   '#000000'
-    red:     '#ff8059'
-    green:   '#00fc50'
-    yellow:  '#eecc00'
-    blue:    '#29aeff'
-    magenta: '#feacd0'
-    cyan:    '#00d3d0'
-    white:   '#eeeeee'
-
-  # Bright colors [all the faint colors in the modus theme]
-  bright:
-    black:   '#555555'
-    red:     '#ffa0a0'
-    green:   '#88cf88'
-    yellow:  '#d2b580'
-    blue:    '#92baff'
-    magenta: '#e0b2d6'
-    cyan:    '#a0bfdf'
-    white:   '#ffffff'
-
-  # dim [all the intense colors in modus theme]
-  dim:
-    black:   '#222222'
-    red:     '#fb6859'
-    green:   '#00fc50'
-    yellow:  '#ffdd00'
-    blue:    '#00a2ff'
-    magenta: '#ff8bd4'
-    cyan:    '#30ffc0'
-    white:   '#dddddd'
+  alias bigrandomfile='dd if=/dev/urandom of=1GB-urandom bs=1M count=1024 \
+    iflag=fullblock status=progress'
+  alias bigboringfile='dd if=/dev/zero of=1GB-zero bs=1M count=1024 \
+    iflag=fullblock status=progress'
+  alias ytmusic="youtube-dl -x --add-metadata  --audio-format aac \
+    --restrict-filenames -o '%(title)s.%(ext)s'"
+  alias cal="cal -3 --color=auto"
+  alias bc='bc -l'
 #+end_src
 ** IPython
-*** General
-Symlink profile_default/ipython_config.py to profile_math/ipython_config.py
 #+begin_src python :tangle ~/.ipython/profile_default/ipython_config.py
   c.TerminalInteractiveShell.editing_mode = 'vi'
   c.InteractiveShell.colors = 'linux'
   c.TerminalInteractiveShell.confirm_exit = False
 #+end_src
-*** Math
-#+begin_src python :tangle ~/.ipython/profile_math/startup.py
-  from math import *
-
-  def deg(x):
-      return x * (180 /  pi)
-
-  def rad(x):
-      return x * (pi / 180)
-
-  def rad(x, unit):
-      return (x * (pi / 180)) / unit
-
-  def csc(x):
-      return 1 / sin(x)
-
-  def sec(x):
-      return 1 / cos(x)
-
-  def cot(x):
-      return 1 / tan(x)
-#+end_src
 ** MPV
 Make MPV play a little bit smoother.
 #+begin_src conf :tangle ~/.config/mpv/mpv.conf
@@ -1092,7 +1010,7 @@ Make MPV play a little bit smoother.
 ** Inputrc
 For any GNU Readline programs
 #+begin_src conf :tangle ~/.inputrc
-  set editing-mode vi
+  set editing-mode emacs
 #+end_src
 ** Git
 *** User
@@ -1252,7 +1170,8 @@ Lightweight notification daemon.
       transition: 0.1s margin-top ease-out;
   }
 #+end_src
-** Black screen by default
+*** Black screen by default
+userChrome.css:
 #+begin_src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userChrome.css
   #main-window,
   #browser,
@@ -1267,6 +1186,8 @@ Lightweight notification daemon.
       color: #fff !important;
   }
 #+end_src
+
+userContent.css:
 #+begin_src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userContent.css
   @-moz-document url("about:home"), url("about:blank"), url("about:newtab") {
       body {
@@ -1275,8 +1196,7 @@ Lightweight notification daemon.
   }
 #+end_src
 ** Xresources
-*** Color scheme
-Modus operandi.
+Modus operandi theme.
 #+begin_src conf :tangle ~/.Xresources
   ! special
   ,*.foreground:   #ffffff
@@ -1315,20 +1235,22 @@ Modus operandi.
   ,*.color7:       #eeeeee
   ,*.color15:      #dddddd
 #+end_src
-*** Copy paste
-#+begin_src conf :tangle ~/.Xresources
-  xterm*VT100.Translations: #override \
-  Shift <KeyPress> Insert: insert-selection(CLIPBOARD) \n\
-  Ctrl Shift <Key>V:    insert-selection(CLIPBOARD) \n\
-  Ctrl Shift <Key>C:    copy-selection(CLIPBOARD) \n\
-  Ctrl <Btn1Up>: exec-formatted("xdg-open '%t'", PRIMARY)
-#+end_src
-*** Blink cursor
-#+begin_src conf :tangle ~/.Xresources
-  xterm*cursorBlink: true
+** Tmux
+#+begin_src conf :tangle ~/.tmux.conf
+  set -g status off
+  set -g mouse on
+  set-window-option -g mode-keys vi
 #+end_src
-*** Alt keys
-#+begin_src conf :tangle ~/.Xresources
-  XTerm*eightBitInput:   false
-  XTerm*eightBitOutput:  true
+** GPG
+*** Config
+#+begin_src conf :tangle ~/.gnupg/gpg.conf
+  default-key 3C9ED82FFE788E4A
+  use-agent
+#+end_src
+*** Agent
+#+begin_src conf :tangle ~/.gnupg/gpg-agent.conf
+  pinentry-program /sbin/pinentry-gnome3
+  max-cache-ttl 600
+  default-cache-ttl 600
+  allow-emacs-pinentry
 #+end_src