]> git.armaanb.net Git - config.org.git/blobdiff - config.org
build: update .build.yml
[config.org.git] / config.org
index 96cc2096bee11025d473a6d30cdb6e105bf0d9e4..372b6b07d2a087b5a262139c831fc6fedfe2e196 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!
@@ -55,6 +57,13 @@ Its fine to set this here because I run Emacs in daemon mode, but if I were not,
         modus-themes-diffs 'desaturated)
   (load-theme 'modus-vivendi t)
 #+end_src
+** Tree-sitter
+#+begin_src emacs-lisp
+  (use-package tree-sitter-langs)
+  (use-package tree-sitter
+    :config (global-tree-sitter-mode)
+    :hook (tree-sitter-after-on-hook . tree-sitter-hl-mode))
+#+end_src
 ** Typography
 *** Font
 Great programming font with ligatures.
@@ -70,15 +79,16 @@ Great programming font with ligatures.
      '(prog-mode text-mode)
      '("-|" "-~" "---" "-<<" "-<" "--" "->" "->>" "-->" "/=" "/=="
        "/>" "//" "/*" "*>" "*/" "<-" "<<-" "<=>" "<=" "<|" "<||"
-       "<|||" "<|>" "<:" "<>" "<-<" "<<<" "<==" "<<=" "<=<" "<==>" "<-|"
-       "<<" "<~>" "<=|" "<~~" "<~" "<$>" "<$" "<+>" "<+" "</>" "</" "<*"
-       "<*>" "<->" "<!--" ":>" ":<" ":::" "::" ":?" ":?>" ":=" "::=" "=>>"
-       "==>" "=/=" "=!=" "=>" "===" "=:=" "==" "!==" "!!" "!=" ">]" ">:"
-       ">>-" ">>=" ">=>" ">>>" ">-" ">=" "&&&" "&&" "|||>" "||>" "|>" "|]"
-       "|}" "|=>" "|->" "|=" "||-" "|-" "||=" "||" ".." ".?" ".=" ".-" "..<"
-       "..." "+++" "+>" "++" "[||]" "[<" "[|" "{|" "??" "?." "?=" "?:" "##"
-       "###" "####" "#[" "#{" "#=" "#!" "#:" "#_(" "#_" "#?" "#(" ";;" "_|_"
-       "__" "~~" "~~>" "~>" "~-" "~@" "$>" "^=" "]#"))
+       "<|||" "<|>" "<:" "<>" "<-<" "<<<" "<==" "<<=" "<=<" "<==>"
+       "<-|" "<<" "<~>" "<=|" "<~~" "<~" "<$>" "<$" "<+>" "<+" "</>"
+       "</" "<*" "<*>" "<->" "<!--" ":>" ":<" ":::" "::" ":?" ":?>"
+       ":=" "::=" "=>>" "==>" "=/=" "=!=" "=>" "===" "=:=" "==" "!=="
+       "!!" "!=" ">]" ">:" ">>-" ">>=" ">=>" ">>>" ">-" ">=" "&&&"
+       "&&" "|||>" "||>" "|>" "|]" "|}" "|=>" "|->" "|=" "||-" "|-"
+       "||=" "||" ".." ".?" ".=" ".-" "..<" "..." "+++" "+>" "++"
+       "[||]" "[<" "[|" "{|" "?." "?=" "?:" "##" "###" "####" "#["
+       "#{" "#=" "#!" "#:" "#_(" "#_" "#?" "#(" ";;" "_|_" "__" "~~"
+       "~~>" "~>" "~-" "~@" "$>" "^=" "]#"))
     (global-ligature-mode t))
 #+end_src
 *** Emoji
@@ -129,6 +139,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
@@ -141,13 +157,6 @@ Whenever starting a key chord, show possible future steps.
     :config (which-key-mode)
     :custom (which-key-idle-delay 0.3))
 #+end_src
-** Visual highlights of changes
-Highlight when changes are made.
-#+begin_src emacs-lisp
-  (use-package evil-goggles
-    :config (evil-goggles-mode)
-    (evil-goggles-use-diff-faces))
-#+end_src
 ** Highlight TODOs in comments
 #+begin_src emacs-lisp
   (use-package hl-todo
@@ -288,8 +297,15 @@ Add back C-a/C-x
     (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 '("ro" . "src plain :tangle ~/.config/rofi/config.rasi"))
-    (add-to-list 'org-structure-template-alist '("za" . "src plain :tangle ~/.config/zathura/zathurarc")))
+    (add-to-list 'org-structure-template-alist '("ro" . "src javascript :tangle ~/.config/rofi/config.rasi"))
+    (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")))
+#+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
@@ -457,6 +473,9 @@ Set EWW as default browser except for videos.
   (setq browse-url-handlers
         (quote
          (("youtu\\.?be" . browse-url-mpv)
+          ("peertube.*" . browse-url-mpv)
+          ("vid.*" . browse-url-mpv)
+          ("vid.*" . browse-url-mpv)
           ("." . eww-browse-url)
           )))
 #+end_src
@@ -504,51 +523,16 @@ 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
-* Emacs IDE
-** LSP
-*** General
-#+begin_src emacs-lisp
-  (use-package lsp-mode
-    :commands (lsp lsp-deferred)
-    :custom (lsp-keymap-prefix "C-c l")
-    :hook ((lsp-mode . lsp-enable-which-key-integration)))
-
-  (use-package lsp-ivy)
-
-  (use-package lsp-ui
-    :commands lsp-ui-mode
-    :custom (lsp-ui-doc-position 'bottom))
-  (use-package lsp-ui-flycheck
-    :after lsp-ui
-    :straight (:type built-in))
-#+end_src
-*** Company
-Company-box adds icons.
+** Eshell
 #+begin_src emacs-lisp
-  (use-package company
-    :after lsp-mode
-    :hook (lsp-mode . company-mode)
-    :bind (:map company-active-map
-                ("<tab>" . company-complete-selection))
-    (:map lsp-mode-map
-          ("<tab>" . company-indent-or-complete-common))
-    :custom
-    (company-minimum-prefix-length 1)
-    (setq company-dabbrev-downcase 0)
-    (company-idle-delay 0.0))
-
-  (use-package company-box
-    :hook (company-mode . company-box-mode))
-#+end_src
-*** Language servers
-**** Python
-#+begin_src emacs-lisp
-  (use-package lsp-pyright
-    :hook (python-mode . (lambda ()
-                           (use-package lsp-pyright
-                             :straight (:type built-in))
-                           (lsp-deferred))))
+  (setq eshell-prompt-function
+        (lambda nil
+          (propertize (concat
+                       "\n" (eshell/pwd) " ➤ ")
+                      'face '(:foreground "cyan")))
+        eshell-highlight-prompt nil)
 #+end_src
+* Emacs IDE
 ** Code cleanup
 #+begin_src emacs-lisp
   (use-package blacken
@@ -799,15 +783,8 @@ No more clogging up init.el.
   workspace_limit = 5
   warp_pointer = 1
   modkey = Mod4
-  border_width = 4
   autorun = ws[1]:/home/armaa/Code/scripts/autostart
 #+end_src
-*** Appearance
-#+begin_src conf :tangle ~/.spectrwm.conf
-  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
   bar_enabled = 0
@@ -853,28 +830,28 @@ No more clogging up init.el.
   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 root@armaanb.net -t abduco -A irc catgirl freenode; sleep 2; done"
   program[emacs] = emacsclient -c
-  program[emacs-anywhere] = emacsclient --eval "(emacs-everywhere)"
   program[firefox] = firefox
-  program[thunderbird] = thunderbird
-  program[slack] = slack
+  program[calc] = alacritty -e bc
+  program[emacs-anywhere] = emacsclient --eval "(emacs-everywhere)"
+  program[pass] = rofi-pass
 
   bind[aerc] = MOD+Control+1
-  bind[weechat] = 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[catgirl] = MOD+Control+2
+  bind[firefox] = MOD+Control+3
+  bind[emacs-anywhere] = MOD+Control+4
+  bind[calc] = MOD+Control+5
   bind[emacs] = MOD+Control+Return
+  bind[pass] = MOD+Shift+P
 #+end_src
 ** Zsh
 *** Settings
@@ -885,6 +862,16 @@ No more clogging up init.el.
 
   setopt no_case_glob
   unsetopt glob_complete
+
+  # Fragment completions
+  zstyle ':completion:*' list-suffixes
zstyle ':completion:*' expand prefix suffix
+
+  # Menu completions
+  zstyle ':completion:*' menu select
+  zmodload zsh/complist
+  bindkey -M menuselect '^n' expand-or-complete
+  bindkey -M menuselect '^p' reverse-menu-complete
+
 #+end_src
 **** Vim bindings
 #+begin_src shell :tangle ~/.config/zsh/zshrc
@@ -907,17 +894,17 @@ No more clogging up init.el.
   setopt hist_ignore_dups
   setopt hist_reduce_blanks
 
-  HISTSIZE=10000
-  SAVEHIST=10000
+  HISTSIZE=100000
+  SAVEHIST=100000
   HISTFILE=~/.local/share/zsh/history
 #+end_src
 *** Plugins
 I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
+
+Right now, I'm only using fast-syntax-highlighting. It's a really nice visual addition.
 **** ZPE
-#+begin_src plain :tangle ~/.config/zpe/repositories
-    https://github.com/Aloxaf/fzf-tab
-    https://github.com/zdharma/fast-syntax-highlighting
-    https://github.com/rupa/z
+#+begin_src conf :tangle ~/.config/zpe/repositories
+  https://github.com/zdharma/fast-syntax-highlighting
 #+end_src
 **** Zshrc
 #+begin_src shell :tangle ~/.config/zsh/zshrc
@@ -925,31 +912,13 @@ I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
   source ~/Code/admone/admone.zsh
   source ~/.config/zsh/fzf-bindings.zsh
 
-  zpe-source fzf-tab/fzf-tab.zsh
-  zstyle ':completion:*:descriptions' format '[%d]'
-  zstyle ':fzf-tab:complete:cd:*' fzf-preview 'exa -1 --color=always $realpath'
-  zstyle ':completion:*' completer _complete
-  zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' \
-         'm:{a-zA-Z}={A-Za-z} l:|=* r:|=*'
-  enable-fzf-tab
   zpe-source fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh
-  export _Z_DATA="/home/armaa/.local/share/z"
-  zpe-source z/z.sh
 #+end_src
 *** Functions
-**** Alert after long command
-#+begin_src shell :tangle ~/.config/zsh/zshrc
-  alert() {
-      notify-send --urgency=low -i ${(%):-%(?.terminal.error)} \
-                  ${history[$HISTCMD]%[;&|][[:space:]]##alert}
-  }
-#+end_src
 **** Time Zsh startup
 #+begin_src shell :tangle ~/.config/zsh/zshrc
-  timezsh() {
-      for i in $(seq 1 10); do
-          time "zsh" -i -c exit;
-      done
+  timer() {
+      for i in $(seq 1 10); do time "$1" -i -c exit; done
   }
 #+end_src
 **** Update all packages
@@ -996,13 +965,6 @@ I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
       echo "${color}All orphans cleaned!${reset}"
   }
 #+end_src
-**** ls every cd
-#+begin_src shell :tangle ~/.config/zsh/zshrc
-  chpwd() {
-      emulate -L zsh
-      exa -lh --icons --git --group-directories-first
-  }
-#+end_src
 **** Setup anaconda
 #+begin_src shell :tangle ~/.config/zsh/zshrc
   zconda() {
@@ -1028,22 +990,25 @@ I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
   0short() { curl -F"shorten=$1" "$zxz" ; }
   0clip() { xclip -out | curl -F"file=@-;" "$zxz" ; }
 #+end_src
-**** Swap two files
+**** Finger
 #+begin_src shell :tangle ~/.config/zsh/zshrc
-  sw() {
-      mv $1 $1.tmp
-      mv $2 $1
-      mv $1.tmp $2
+  finger() {
+      user=$(echo "$1" | cut -f 1 -d '@')
+      host=$(echo "$1" | cut -f 2 -d '@')
+      echo $user | nc "$host" 79 -N
   }
 #+end_src
 *** Aliases
 **** SSH
 #+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 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 tcf='ssh root@204.48.23.68'
   alias ngmun='ssh root@157.245.89.25'
   alias prox='ssh root@192.168.1.224'
+  alias ncq='ssh root@143.198.123.17'
   alias dock='ssh root@192.168.1.225'
   alias jenkins='ssh root@192.168.1.226'
   alias envs='ssh acheam@envs.net'
@@ -1060,18 +1025,11 @@ I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
   alias mv='mv -iv'
   alias ln='ln -iv'
   alias grep='grep -in --exclude-dir=.git --color=auto'
+  alias fname='find -name'
   alias mkdir='mkdir -pv'
   alias unar='atool -x'
   alias wget='wget -e robots=off'
   alias lanex='~/.local/share/lxc/lxc'
-#+end_src
-**** Dotfiles
-#+begin_src shell :tangle ~/.config/zsh/zshrc
-  alias padm='yadm --yadm-repo ~/Code/dotfiles/repo.git'
-  alias yadu='yadm add -u && yadm commit -m "Updated `date -Iseconds`" && \
-    yadm push'
-  alias padu='padm add -u && padm commit && padm push && yadu'
-#+end_src
 **** Editing
 #+begin_src shell :tangle ~/.config/zsh/zshrc
   alias v='nvim'
@@ -1083,8 +1041,13 @@ 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 crontab='crontab-argh'
+  alias sudo='doas ' # allows aliases to be run with doas
+  alias pasc='pass -c'
+  alias pasu='\pass git push'
+  alias yadu='yadm add -u && yadm commit -m "Updated `date -Iseconds`" && \
+    yadm push'
 #+end_src
 **** Networking
 #+begin_src shell :tangle ~/.config/zsh/zshrc
@@ -1094,11 +1057,14 @@ I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
   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'
-#+end_src
-**** Docker
-#+begin_src shell :tangle ~/.config/zsh/zshrc
-  alias dc='docker-compose'
-  alias dcdu='docker-compose down && docker-compose up -d'
+  alias plan='T=$(mktemp) && \
+        rsync root@armaanb.net:/etc/finger/plan.txt "$T" && \
+        TT=$(mktemp) && \
+        head -n -2 $T > $TT && \
+        vim $TT && \
+        echo "\nLast updated: $(date -R)" >> "$TT" && \
+        rsync "$TT" 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/zsh/zshrc
@@ -1114,6 +1080,7 @@ I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
   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/zsh/zshrc
@@ -1167,10 +1134,15 @@ I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
   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/zsh/zshrc
+  alias kzf="kiss s \* | xargs -l basename | \
+    fzf --preview 'kiss search {} | xargs -l dirname'"
+#+end_src
 *** 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)"
@@ -1180,7 +1152,8 @@ I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
   export GTK_USE_PORTAL=1
 
   export PATH="/home/armaa/.local/bin:$PATH" # prioritize .local/bin
-  export PATH="$PATH:/home/armaa/Code/scripts"
+  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"
@@ -1190,7 +1163,7 @@ I manage plugins using my own plugin manager, ZPE. https://git.sr.ht/~armaan/zpe
   export LC_CTYPE="en_US.UTF-8"
   export LANGUAGE="en_US.UTF-8"
 
-  export KISS_PATH="/home/armaa/kiss/home/armaa/kiss-repo"
+  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"
@@ -1218,21 +1191,6 @@ window:
 
 background_opacity: 1
 #+end_src
-*** Keybindings
-Send <RET> + modifier through
-#+begin_src yml :tangle ~/.config/alacritty/alacritty.yml
-key_bindings:
-  - {
-    key: Return,
-    mods: Shift,
-    chars: "\x1b[13;2u"
-  }
-  - {
-    key: Return,
-    mods: Control,
-    chars: "\x1b[13;5u"
-  }
-#+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
@@ -1317,7 +1275,7 @@ Make MPV play a little bit smoother.
 #+end_src
 ** Inputrc
 For any GNU Readline programs
-#+begin_src plain :tangle ~/.inputrc
+#+begin_src conf :tangle ~/.inputrc
   set editing-mode vi
 #+end_src
 ** Git
@@ -1370,6 +1328,7 @@ For any GNU Readline programs
 #+begin_src conf :tangle ~/.gitconfig
 [commit]
   gpgsign = true
+  verbose = true
 #+end_src
 ** Dunst
 Lightweight notification daemon.
@@ -1392,7 +1351,7 @@ Lightweight notification daemon.
   monitor = 0
   sticky_history = yes
   line_height = 0
-  separator_height = 4
+  separator_height = 1
   padding = 8
   horizontal_padding = 8
   max_icon_size = 32
@@ -1402,7 +1361,7 @@ Lightweight notification daemon.
 *** Modes
 #+begin_src conf :tangle ~/.config/dunst/dunstrc
   [frame]
-  width = 3
+  width = 1
   color = "#ffffff"
 
   [shortcuts]
@@ -1430,40 +1389,83 @@ Lightweight notification daemon.
 #+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;
-}
+#+begin_src javascript :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 % );
+      }
 #+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
+#+begin_src conf :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"
+  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"
+#+begin_src conf :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
+** Firefox
+*** Swap tab and URL bars
+#+begin_src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userChrome.css
+  #nav-bar {
+      -moz-box-ordinal-group: 1 !important;
+  }
+
+  #PersonalToolbar {
+      -moz-box-ordinal-group: 2 !important;
+  }
+
+  #titlebar {
+      -moz-box-ordinal-group: 3 !important;
+  }
+#+end_src
+*** Hide URL bar when not focused.
+#+begin_src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userChrome.css
+  #navigator-toolbox:not(:focus-within):not(:hover) {
+      margin-top: -30px;
+  }
+
+  #navigator-toolbox {
+      transition: 0.1s margin-top ease-out;
+  }
+#+end_src
+** Black screen by default
+#+begin_src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userChrome.css
+  #main-window,
+  #browser,
+  #browser vbox#appcontent tabbrowser,
+  #content,
+  #tabbrowser-tabpanels,
+  #tabbrowser-tabbox,
+  browser[type="content-primary"],
+  browser[type="content"] > html,
+  .browserContainer {
+      background: black !important;
+      color: #fff !important;
+  }
+#+end_src
+#+begin_src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userContent.css
+  @-moz-document url("about:home"), url("about:blank"), url("about:newtab") {
+      body {
+          background: black !important;
+      }
+  }
 #+end_src