]> git.armaanb.net Git - config.org.git/blobdiff - config.org
Change HJKL bindings
[config.org.git] / config.org
index 784de355693a6c87b3c2daaa07f6814bca924d57..e2ff751a6c5b94487ff45804a1ece274ae011343 100644 (file)
@@ -1,5 +1,7 @@
 #+TITLE: System Configuration
-#+DESCRIPTION: Armaan's system configuration.
+#+DESCRIPTION: Personal system configuration in org-mode format.
+#+AUTHOR: Armaan Bhojwani
+#+EMAIL: me@armaanb.net
 
 * Welcome
 Welcome to my system configuration! This file contains my Emacs configuration, but also my config files for many of the other programs on my system!
@@ -68,17 +70,18 @@ Great programming font with ligatures.
     :config
     (ligature-set-ligatures
      '(prog-mode text-mode)
-     '("-|" "-~" "---" "-<<" "-<" "--" "->" "->>" "-->" "///" "/=" "/=="
+     '("-|" "-~" "---" "-<<" "-<" "--" "->" "->>" "-->" "/=" "/=="
        "/>" "//" "/*" "*>" "*/" "<-" "<<-" "<=>" "<=" "<|" "<||"
-       "<|||" "<|>" "<:" "<>" "<-<" "<<<" "<==" "<<=" "<=<" "<==>" "<-|"
-       "<<" "<~>" "<=|" "<~~" "<~" "<$>" "<$" "<+>" "<+" "</>" "</" "<*"
-       "<*>" "<->" "<!--" ":>" ":<" ":::" "::" ":?" ":?>" ":=" "::=" "=>>"
-       "==>" "=/=" "=!=" "=>" "===" "=:=" "==" "!==" "!!" "!=" ">]" ">:"
-       ">>-" ">>=" ">=>" ">>>" ">-" ">=" "&&&" "&&" "|||>" "||>" "|>" "|]"
-       "|}" "|=>" "|->" "|=" "||-" "|-" "||=" "||" ".." ".?" ".=" ".-" "..<"
-       "..." "+++" "+>" "++" "[||]" "[<" "[|" "{|" "??" "?." "?=" "?:" "##"
-       "###" "####" "#[" "#{" "#=" "#!" "#:" "#_(" "#_" "#?" "#(" ";;" "_|_"
-       "__" "~~" "~~>" "~>" "~-" "~@" "$>" "^=" "]#"))
+       "<|||" "<|>" "<:" "<>" "<-<" "<<<" "<==" "<<=" "<=<" "<==>"
+       "<-|" "<<" "<~>" "<=|" "<~~" "<~" "<$>" "<$" "<+>" "<+" "</>"
+       "</" "<*" "<*>" "<->" "<!--" ":>" ":<" ":::" "::" ":?" ":?>"
+       ":=" "::=" "=>>" "==>" "=/=" "=!=" "=>" "===" "=:=" "==" "!=="
+       "!!" "!=" ">]" ">:" ">>-" ">>=" ">=>" ">>>" ">-" ">=" "&&&"
+       "&&" "|||>" "||>" "|>" "|]" "|}" "|=>" "|->" "|=" "||-" "|-"
+       "||=" "||" ".." ".?" ".=" ".-" "..<" "..." "+++" "+>" "++"
+       "[||]" "[<" "[|" "{|" "??" "?." "?=" "?:" "##" "###" "####"
+       "#[" "#{" "#=" "#!" "#:" "#_(" "#_" "#?" "#(" ";;" "_|_" "__"
+       "~~" "~~>" "~>" "~-" "~@" "$>" "^=" "]#"))
     (global-ligature-mode t))
 #+end_src
 *** Emoji
@@ -129,6 +132,12 @@ Show current column and file size.
   (use-package minions
     :config (minions-mode))
 #+end_src
+** Word count
+#+begin_src emacs-lisp
+ (use-package wc-mode
+   :straight (wc-mode :type git :host github :repo "bnbeckwith/wc-mode")
+   :hook (text-mode-hook . wc-mode))
+#+end_src
 ** Ruler
 Show a ruler at a certain number of chars depending on mode.
 #+begin_src emacs-lisp
@@ -219,16 +228,10 @@ tpope prevails!
                 ("gc" . evilnc-comment-or-uncomment-lines))
     :custom (evilnc-invert-comment-line-by-line nil))
 #+end_src
-** Undo tree
-Fix the oopsies! Maybe replace with undo-fu or Emacs 28 built in undo-redo.
+** Undo redo
+Fix the oopsies!
 #+begin_src emacs-lisp
-  (use-package undo-tree
-    :custom
-    (undo-tree-auto-save-history t)
-    (undo-tree-history-directory-alist '(("." . "~/.emacs.d/undo-tree")))
-    :config
-    (global-undo-tree-mode)
-    (evil-set-undo-system 'undo-tree))
+  (evil-set-undo-system 'undo-redo)
 #+end_src
 ** Number incrementing
 Add back C-a/C-x
@@ -293,7 +296,14 @@ Add back C-a/C-x
     (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"))
-    (add-to-list 'org-structure-template-alist '("du" . "src conf :tangle ~/.config/dunst/dunstrc")))
+    (add-to-list 'org-structure-template-alist '("du" . "src conf :tangle ~/.config/dunst/dunstrc"))
+    (add-to-list 'org-structure-template-alist '("ro" . "src plain :tangle ~/.config/rofi/config.rasi"))
+    (add-to-list 'org-structure-template-alist '("za" . "src plain :tangle ~/.config/zathura/zathurarc")))
+#+end_src
+** Presentations
+#+begin_src emacs-lisp
+  (use-package org-present
+    :straight (org-present :type git :host github :repo "rlister/org-present"))
 #+end_src
 * Autocompletion
 ** Ivy
@@ -373,11 +383,12 @@ 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
-          message-kill-buffer-on-exit t
           mu4e-get-mail-command "offlineimap -q"
           message-citation-line-format "On %a %d %b %Y at %R, %f wrote:\n"
           message-citation-line-function 'message-insert-formatted-citation-line
-          mu4e-context-policy "pick-first"
+          mu4e-completing-read-function 'ivy-completing-read
+          mu4e-confirm-quit nil
+          mail-user-agent 'mu4e-user-agent
           mu4e-contexts
           `( ,(make-mu4e-context
                :name "school"
@@ -386,14 +397,14 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m
                :match-func (lambda (msg)
                              (when msg
                                (string-match-p "^/school" (mu4e-message-field msg :maildir))))
-               :vars '( (user-mail-address . "abhojwani22@nobles.edu")
-                        (mu4e-sent-folder . "/school/Sent")
-                        (mu4e-drafts-folder . "/school/Drafts")
-                        (mu4e-trash-folder . "/school/Trash")
-                        (mu4e-refile-folder . "/school/Archive")
-                        (user-mail-address . "abhojwani22@nobles.edu")
-                        (smtpmail-smtp-user . "abhojwani22@nobles.edu")
-                        (smtpmail-smtp-server . "smtp.gmail.com")))
+               :vars '((user-mail-address . "abhojwani22@nobles.edu")
+                       (mu4e-sent-folder . "/school/Sent")
+                       (mu4e-drafts-folder . "/school/Drafts")
+                       (mu4e-trash-folder . "/school/Trash")
+                       (mu4e-refile-folder . "/school/Archive")
+                       (user-mail-address . "abhojwani22@nobles.edu")
+                       (smtpmail-smtp-user . "abhojwani22@nobles.edu")
+                       (smtpmail-smtp-server . "smtp.gmail.com")))
              ,(make-mu4e-context
                :name "personal"
                :enter-func (lambda () (mu4e-message "Entering personal context"))
@@ -401,8 +412,7 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m
                :match-func (lambda (msg)
                              (when msg
                                (string-match-p "^/personal" (mu4e-message-field msg :maildir))))
-               :vars '(
-                       (mu4e-sent-folder . "/personal/Sent")
+               :vars '((mu4e-sent-folder . "/personal/Sent")
                        (mu4e-drafts-folder . "/personal/Drafts")
                        (mu4e-trash-folder . "/personal/Trash")
                        (mu4e-refile-folder . "/personal/Archive")
@@ -414,7 +424,9 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m
     (add-to-list 'mu4e-bookmarks
                  '(:name "Unified inbox"
                          :query "maildir:\"/personal/INBOX\" or maildir:\"/school/INBOX\""
-                         :key ?b)))
+                         :key ?b))
+    :hook ((mu4e-compose-mode . flyspell-mode)
+           (mu4e-view-mode-hook . turn-on-visual-line-mode)))
 #+end_src
 ** Calendar
 #+begin_src emacs-lisp
@@ -506,6 +518,15 @@ Use Emacs globally. Use the Emacs daemon and bind a key in your wm to
 #+begin_src emacs-lisp
   (use-package emacs-everywhere)
 #+end_src
+** Eshell
+#+begin_src emacs-lisp
+  (setq eshell-prompt-function
+        (lambda nil
+          (propertize (concat
+                       "\n" (eshell/pwd) " ➤ ")
+                       'face '(:foreground "cyan")))
+        eshell-highlight-prompt nil)
+#+end_src
 * Emacs IDE
 ** LSP
 *** General
@@ -680,6 +701,10 @@ Abbreviate things!
 #+begin_src emacs-lisp
   (setq tramp-default-method "ssh")
 #+end_src
+** Don't ask about following symlinks in vc
+#+begin_src emacs-lisp
+  (setq vc-follow-symlinks t)
+#+end_src
 * Functions
 ** Easily convert splits
 Converts splits from horizontal to vertical and vice versa. Lifted from EmacsWiki.
@@ -798,15 +823,13 @@ No more clogging up init.el.
   warp_pointer = 1
   modkey = Mod4
   border_width = 4
-  tile_gap = 10
   autorun = ws[1]:/home/armaa/Code/scripts/autostart
 #+end_src
-*** Apprearance
-Gruvbox colors
+*** Appearance
 #+begin_src conf :tangle ~/.spectrwm.conf
-  color_focus = rgb:83/a5/98
-  color_focus_maximized = rgb:d6/5d/0e
-  color_unfocus = rgb:58/58/58
+  color_focus = rgb:ff/ff/ff
+  color_focus_maximized = rgb:ee/cc/00
+  color_unfocus = rgb:55/55/55
 #+end_src
 *** Bar
 #+begin_src conf :tangle ~/.spectrwm.conf
@@ -853,28 +876,30 @@ Gruvbox colors
   program[k] = xdotool keyup k key --clearmodifiers Up
   program[l] = xdotool keyup l key --clearmodifiers Right
 
-  bind[h] = Mod1 + Tab + h
-  bind[j] = Mod1 + Tab + j
-  bind[k] = Mod1 + Tab + k
-  bind[l] = Mod1 + Tab + l
+  bind[h] = MOD + Control + h
+  bind[j] = MOD + Control + j
+  bind[k] = MOD + Control + k
+  bind[l] = MOD + Control + l
 #+end_src
 **** Programs
 #+begin_src conf :tangle ~/.spectrwm.conf
   program[aerc] = alacritty -e aerc
   program[weechat] = alacritty --hold -e sh -c "while : ; do ssh -p 23 -t root@armaanb.net tmux attach-session -t weechat; sleep 2; done"
+  program[catgirl] = alacritty --hold -e sh -c "while : ; do ssh -p 23 -t root@armaanb.net tmux attach-session -t catgirl; sleep 2; done"
   program[emacs] = emacsclient -c
   program[emacs-anywhere] = emacsclient --eval "(emacs-everywhere)"
   program[firefox] = firefox
   program[thunderbird] = thunderbird
   program[slack] = slack
 
-  bind[aerc] = MOD+Control+s
-  bind[weechat] = MOD+Control+d
+  bind[aerc] = MOD+Control+1
+  # bind[weechat] = MOD+Control+2
+  bind[catgirl] = MOD+Control+2
+  bind[emacs-anywhere] = MOD+Control+3
+  bind[firefox] = MOD+Control+4
+  bind[thunderbird] = MOD+Control+5
+  bind[slack] = MOD+Control+6
   bind[emacs] = MOD+Control+Return
-  bind[emacs-anywhere] = MOD+Control+f
-  bind[firefox] = MOD+Control+u
-  bind[thunderbird] = MOD+Control+i
-  bind[slack] = MOD+Control+o
 #+end_src
 ** Zsh
 *** Settings
@@ -1041,6 +1066,7 @@ I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
 #+begin_src shell :tangle ~/.config/zsh/zshrc
   alias bhoji-drop='ssh -p 23 root@armaanb.net'
   alias weechat='ssh -p 23 -t root@armaanb.net tmux attach-session -t weechat'
+  alias catgirl='ssh -p 23 -t root@armaanb.net tmux attach-session -t catgirl'
   alias tcf='ssh root@204.48.23.68'
   alias ngmun='ssh root@157.245.89.25'
   alias prox='ssh root@192.168.1.224'
@@ -1083,8 +1109,8 @@ I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
   alias jctl='journalctl -p 3 -xb'
   alias pkill='pkill -i'
   alias cx='chmod +x'
-  alias please='sudo $(fc -ln -1)'
-  alias sudo='sudo ' # allows aliases to be run with sudo
+  alias redoas='doas $(fc -ln -1)'
+  alias sudo='doas ' # allows aliases to be run with doas
 #+end_src
 **** Networking
 #+begin_src shell :tangle ~/.config/zsh/zshrc
@@ -1170,7 +1196,7 @@ I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
 *** Exports
 #+begin_src shell :tangle ~/.config/zsh/zshrc
   export EDITOR="emacsclient -c"
-  export VISUAL="$VISUAL"
+  export VISUAL="$EDITOR"
   export TERM=xterm-256color # for compatability
 
   export GPG_TTY="$(tty)"
@@ -1216,7 +1242,7 @@ window:
     x: 5
     y: 5
 
-background_opacity: 0.6
+background_opacity: 1
 #+end_src
 *** Keybindings
 Send <RET> + modifier through
@@ -1234,35 +1260,50 @@ key_bindings:
   }
 #+end_src
 *** Color scheme
-Gruvbox
+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: '#ebdbb2'
+    foreground: '#ffffff'
 
-  # Normal colors
+  cursor:
+    text: '#000000'
+    background: '#ffffff'
+
+  # Normal colors (except green it is from intense colors)
   normal:
-    black:   '#282828'
-    red:     '#cc241d'
-    green:   '#98971a'
-    yellow:  '#d79921'
-    blue:    '#458588'
-    magenta: '#b16286'
-    cyan:    '#689d6a'
-    white:   '#a89984'
+    black:   '#000000'
+    red:     '#ff8059'
+    green:   '#00fc50'
+    yellow:  '#eecc00'
+    blue:    '#29aeff'
+    magenta: '#feacd0'
+    cyan:    '#00d3d0'
+    white:   '#eeeeee'
 
-  # Bright colors
+  # Bright colors [all the faint colors in the modus theme]
   bright:
-    black:   '#928374'
-    red:     '#fb4934'
-    green:   '#b8bb26'
-    yellow:  '#fabd2f'
-    blue:    '#83a598'
-    magenta: '#d3869b'
-    cyan:    '#8ec07c'
-    white:   '#ebdbb2'
+    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'
 #+end_src
 ** IPython
 *** General
@@ -1355,9 +1396,10 @@ For any GNU Readline programs
 #+begin_src conf :tangle ~/.gitconfig
 [commit]
   gpgsign = true
+  verbose = true
 #+end_src
 ** Dunst
-Lightweight notification daemon. Gruvbox colors, based on https://github.com/a-schaefers/i3-wm-gruvbox-theme/
+Lightweight notification daemon.
 *** General
 #+begin_src conf :tangle ~/.config/dunst/dunstrc
   [global]
@@ -1371,7 +1413,7 @@ Lightweight notification daemon. Gruvbox colors, based on https://github.com/a-s
   show_age_threshold = 60
   word_wrap = yes
   ignore_newline = no
-  geometry = "400x5-20+20"
+  geometry = "400x5-10+10"
   transparency = 0
   idle_threshold = 120
   monitor = 0
@@ -1381,14 +1423,14 @@ Lightweight notification daemon. Gruvbox colors, based on https://github.com/a-s
   padding = 8
   horizontal_padding = 8
   max_icon_size = 32
-  separator_color = "#585858"
+  separator_color = "#ffffff"
   startup_notification = false
 #+end_src
 *** Modes
 #+begin_src conf :tangle ~/.config/dunst/dunstrc
   [frame]
-  width = 4
-  color = "#585858"
+  width = 3
+  color = "#ffffff"
 
   [shortcuts]
   close = mod4+c
@@ -1396,20 +1438,59 @@ Lightweight notification daemon. Gruvbox colors, based on https://github.com/a-s
   history = mod4+ctrl+c
 
   [urgency_low]
-  background = "#282828"
-  foreground = "#ebdbb2"
-  highlight = "#ebdbb2"
+  background = "#222222"
+  foreground = "#ffffff"
+  highlight = "#ffffff"
   timeout = 5
 
   [urgency_normal]
-  background = "#282828"
-  foreground = "#ebdbb2"
-  highlight = "#ebdbb2"
+  background = "#222222"
+  foreground = "#ffffff"
+  highlight = "#ffffff"
   timeout = 15
 
   [urgency_critical]
-  background = "#282828"
-  foreground = "#cc241d"
-  highlight = "#ebdbb2"
+  background = "#222222"
+  foreground = "#a60000"
+  highlight = "#ffffff"
   timeout = 0
 #+end_src
+** Rofi
+Modus vivendi theme that extends DarkBlue.
+#+begin_src plain :tangle ~/.config/rofi/config.rasi
+@import "/usr/share/rofi/themes/DarkBlue.rasi"
+ * {
+    white:                        rgba ( 255, 255, 255, 100 % );
+    foreground:                   @white;
+    selected-normal-background:   @white;
+    separatorcolor:               @white;
+    background:                   rgba ( 34, 34, 34, 100 % );
+}
+
+window {
+    border: 3;
+}
+#+end_src
+** Zathura
+*** Options
+#+begin_src plain :tangle ~/.config/zathura/zathurarc
+map <C-i> recolor
+map <A-b> toggle_statusbar
+set selection-clipboard clipboard
+set scroll-step 200
+
+set window-title-basename "true"
+set selection-clipboard "clipboard"
+#+end_src
+*** Colors
+#+begin_src plain :tangle ~/.config/zathura/zathurarc
+set default-bg         "#000000"
+set default-fg         "#ffffff"
+set render-loading     true
+set render-loading-bg  "#000000"
+set render-loading-fg  "#ffffff"
+
+set recolor-lightcolor "#000000" # bg
+set recolor-darkcolor  "#ffffff" # fg
+set recolor            "true"
+#+end_src