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.
"!!" "!=" ">]" ">:" ">>-" ">>=" ">=>" ">>>" ">-" ">=" "&&&"
"&&" "|||>" "||>" "|>" "|]" "|}" "|=>" "|->" "|=" "||-" "|-"
"||=" "||" ".." ".?" ".=" ".-" "..<" "..." "+++" "+>" "++"
- "[||]" "[<" "[|" "{|" "??" "?." "?=" "?:" "##" "###" "####"
- "#[" "#{" "#=" "#!" "#:" "#_(" "#_" "#?" "#(" ";;" "_|_" "__"
- "~~" "~~>" "~>" "~-" "~@" "$>" "^=" "]#"))
+ "[||]" "[<" "[|" "{|" "?." "?=" "?:" "##" "###" "####" "#["
+ "#{" "#=" "#!" "#:" "#_(" "#_" "#?" "#(" ";;" "_|_" "__" "~~"
+ "~~>" "~>" "~-" "~@" "$>" "^=" "]#"))
(global-ligature-mode t))
#+end_src
*** Emoji
: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
(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
(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
(lambda nil
(propertize (concat
"\n" (eshell/pwd) " ➤ ")
- 'face '(:foreground "cyan")))
+ 'face '(:foreground "cyan")))
eshell-highlight-prompt nil)
#+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.
-#+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))))
-#+end_src
** Code cleanup
#+begin_src emacs-lisp
(use-package blacken
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
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[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[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[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
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
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
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
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() {
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 -p 23 -t root@armaanb.net tmux attach-session -t catgirl'
+ 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'
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'
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 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
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
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
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 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"
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"
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
#+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
monitor = 0
sticky_history = yes
line_height = 0
- separator_height = 4
+ separator_height = 1
padding = 8
horizontal_padding = 8
max_icon_size = 32
*** Modes
#+begin_src conf :tangle ~/.config/dunst/dunstrc
[frame]
- width = 3
+ width = 1
color = "#ffffff"
[shortcuts]
#+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