X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=config.org;h=372b6b07d2a087b5a262139c831fc6fedfe2e196;hb=3ab07694d47c732757390dc2a2d1b40560f6b278;hp=48c659b36656dbc4012bc73af84ddea9daa254f5;hpb=c2fec8ceac54c9fb02929ac84eacbfbe8e83d605;p=config.org.git diff --git a/config.org b/config.org index 48c659b..372b6b0 100644 --- a/config.org +++ b/config.org @@ -57,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. @@ -79,9 +86,9 @@ Great programming font with ligatures. "!!" "!=" ">]" ">:" ">>-" ">>=" ">=>" ">>>" ">-" ">=" "&&&" "&&" "|||>" "||>" "|>" "|]" "|}" "|=>" "|->" "|=" "||-" "|-" "||=" "||" ".." ".?" ".=" ".-" "..<" "..." "+++" "+>" "++" - "[||]" "[<" "[|" "{|" "??" "?." "?=" "?:" "##" "###" "####" - "#[" "#{" "#=" "#!" "#:" "#_(" "#_" "#?" "#(" ";;" "_|_" "__" - "~~" "~~>" "~>" "~-" "~@" "$>" "^=" "]#")) + "[||]" "[<" "[|" "{|" "?." "?=" "?:" "##" "###" "####" "#[" + "#{" "#=" "#!" "#:" "#_(" "#_" "#?" "#(" ";;" "_|_" "__" "~~" + "~~>" "~>" "~-" "~@" "$>" "^=" "]#")) (global-ligature-mode t)) #+end_src *** Emoji @@ -150,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 @@ -297,8 +297,10 @@ 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 @@ -471,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 @@ -524,54 +529,10 @@ Use Emacs globally. Use the Emacs daemon and bind a key in your wm to (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 - ("" . company-complete-selection)) - (:map lsp-mode-map - ("" . 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 @@ -822,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 @@ -876,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 @@ -908,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 @@ -930,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 @@ -948,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 @@ -1019,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() { @@ -1051,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' @@ -1083,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' @@ -1106,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 @@ -1117,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 @@ -1137,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 @@ -1190,6 +1134,11 @@ 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" @@ -1203,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" @@ -1213,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" @@ -1241,21 +1191,6 @@ window: background_opacity: 1 #+end_src -*** Keybindings -Send + 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 @@ -1340,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 @@ -1393,6 +1328,7 @@ For any GNU Readline programs #+begin_src conf :tangle ~/.gitconfig [commit] gpgsign = true + verbose = true #+end_src ** Dunst Lightweight notification daemon. @@ -1415,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 @@ -1425,7 +1361,7 @@ Lightweight notification daemon. *** Modes #+begin_src conf :tangle ~/.config/dunst/dunstrc [frame] - width = 3 + width = 1 color = "#ffffff" [shortcuts] @@ -1453,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 recolor -map toggle_statusbar -set selection-clipboard clipboard -set scroll-step 200 +#+begin_src conf :tangle ~/.config/zathura/zathurarc + map recolor + map 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