summaryrefslogtreecommitdiff
path: root/.config/shell
diff options
context:
space:
mode:
Diffstat (limited to '.config/shell')
-rw-r--r--.config/shell/aliasrc85
-rw-r--r--.config/shell/bm-dirs51
-rw-r--r--.config/shell/bm-files28
-rw-r--r--.config/shell/inputrc38
-rw-r--r--.config/shell/profile268
5 files changed, 470 insertions, 0 deletions
diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc
new file mode 100644
index 0000000..1c4c7fc
--- /dev/null
+++ b/.config/shell/aliasrc
@@ -0,0 +1,85 @@
+#!/bin/sh
+
+# Common operations
+alias xx='chmod u+x'
+alias x-='chmod -x'
+alias th='touch'
+alias md='mkdir'
+alias s='sudo'
+alias l='ls -A'
+alias ll='ls -al'
+# open
+alias o='${OPENER:-xdg-open}'
+alias e='${EDITOR:-vi}'
+alias se='sudoedit'
+alias lf='lfcd'
+alias rs='exec $SHELL'
+alias sr='e "$(ff -L ~/.config ~/.local/bin ~/bin)"'
+alias fh='fzf --tac < "${XDG_DATA_HOME:-$HOME/.local/share}/openhist"'
+
+alias uc='cd ~ && gitpush'
+
+lt() { tree -aC "$@" | less -rF; }
+dul() { du -ahd 1 "$@" | sort -h | less -FX; }
+v() { LESSOPEN="|preview %s" less -r -F "${1:-.}"; }
+ff() { find "$@" ! -wholename '*.git*' \( -type d -printf '%p/\n' , ! -type d -print \) |
+ FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS $fo" fzf -m; }
+senv() { source "${XDG_DATA_HOME:-$HOME/.local/share}/virtualenvs/${1:-main}/bin/activate"; }
+
+sudoedit() {
+ if command -V vim >/dev/null; then
+ [ -f "$HOME/.vim/vimrc" ] && VIMRC="$HOME/.vim/vimrc"
+ sudo vim -u "${VIMRC:-$HOME/.vimrc}" "$@"
+ elif command -V nvim >/dev/null; then
+ sudo nvim -u "${XDG_CONFIG_HOME:-$HOME/.config}/nvim/init.vim" "$@"
+ else
+ command sudoedit "$@"
+ fi
+}
+
+lfcd () {
+ [ $# -gt 0 ] && [ -z "$1" ] && return 2
+ # cd "$(command lf -print-last-dir "$@")"
+
+ tmp="$(mktemp)"
+ command lf -last-dir-path="$tmp" "$@"
+ if [ -f "$tmp" ]; then
+ dir="$(cat "$tmp")"
+ rm -f "$tmp"
+ [ -d "$dir" ] || return
+ [ "$dir" != "$PWD" ] || return
+ cd "$dir"
+ fi
+}
+
+# Dirs
+alias ..='cd ..'
+alias ...='cd ../..'
+alias ....='cd ../../..'
+alias .....='cd ../../../..'
+alias ......='cd ../../../../..'
+
+alias 1='pushd -1'
+alias 2='pushd -2'
+alias 3='pushd -3'
+alias 4='pushd -4'
+alias 5='pushd -5'
+alias 6='pushd -6'
+alias 7='pushd -7'
+alias 8='pushd -8'
+alias 9='pushd -9'
+
+## Default options
+alias rm='rm -Iv'
+alias cp='cp -iv'
+alias mv='mv -iv'
+alias du='du -h'
+alias mkdir='mkdir -pv'
+alias watch='watch -c -n 1 '
+alias wget='wget -c'
+alias fzf='fzf --ansi'
+alias diff='diff --color=auto'
+alias grep='grep --color=auto'
+alias tree='tree -C'
+alias ls='ls -h --group-directories-first --color=auto --classify=auto'
+alias info='info --vi-keys --init-file ~/.config/infokey'
diff --git a/.config/shell/bm-dirs b/.config/shell/bm-dirs
new file mode 100644
index 0000000..4918a18
--- /dev/null
+++ b/.config/shell/bm-dirs
@@ -0,0 +1,51 @@
+# You can add comments to these files with #
+cac ${XDG_CACHE_HOME:-$HOME/.cache}
+cg ${XDG_CONFIG_HOME:-$HOME/.config}
+lsh ${XDG_DATA_DIR:-$HOME/.local/share}
+vnv ${XDG_DATA_DIR:-$HOME/.local/share}/virtualenvs
+lsr ${XDG_DATA_DIR:-$HOME/.local/src}
+lst ${XDG_DATA_DIR:-$HOME/.local/state}
+dn ${XDG_DOWNLOAD_DIR:-$HOME/Downloads}
+dx ${XDG_DOCUMENTS_DIR:-$HOME/Documents}
+dl ${XDG_DOCUMENTS_DIR:-$HOME/Documents}/latex
+nt ${XDG_DOCUMENTS_DIR:-$HOME/Documents}/Notes
+ms ${XDG_MUSIC_DIR:-$HOME/Music}
+px ${XDG_PICTURES_DIR:-$HOME/Pictures}
+vd ${XDG_VIDEOS_DIR:-$HOME/Videos}
+
+lb ~/.local/bin
+bn ~/bin
+sd ~/sdcard
+rp ~/repos
+ap ~/Applications
+ad ~/Arduino
+dv ~/Dev
+cm ~/Dev/cloud-maker
+cs ~/Dev/sites/csstudent41.github.io
+vr ~/Dev/sites/vikas.rocks
+vrc ~/Dev/sites/vikas.rocks/content
+vrl ~/Dev/sites/vikas.rocks/layouts
+vrp ~/Dev/sites/vikas.rocks/public
+td ~/Dev/test
+gd ~/GDrive/vartak/CS
+gf ~/GDrive/vartak/CS/practical-files/sem5
+gp ~/GDrive/vartak/CS/practical-notes/sem5
+gz ~/GDrive/vartak/CS/practical-zip/sem5
+gn ~/GDrive/vartak/CS/notes/sem5
+rs ~/GDrive/vartak/results
+ph ~/Phone
+stv ~/Phone/.stversions
+pw ~/Phone/Android/media/com.whatsapp/WhatsApp/Media/WhatsApp\ Documents
+
+mn /mnt
+stg ${STORAGE:-/mnt/storage}
+lr ${STORAGE:-/mnt/storage}/Library
+med ${STORAGE:-/mnt/storage}/Media
+sts ${STORAGE:-/mnt/storage}/sites
+sd /sdcard
+mp /run/media/$USER/
+mtp /run/user/1000/gvfs
+usr ${PREFIX:-/usr}
+ush /usr/share
+usd /usr/share/doc
+usha /usr/share/applications
diff --git a/.config/shell/bm-files b/.config/shell/bm-files
new file mode 100644
index 0000000..46723a5
--- /dev/null
+++ b/.config/shell/bm-files
@@ -0,0 +1,28 @@
+# These files automatically update when edited/saved in vim:
+
+# keys filename description
+bf ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-files
+bd ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs
+
+pf ~/.profile
+zp ~/.zprofile
+xp ~/.xprofile
+gi ~/.gitignore
+zc ${XDG_CONFIG_HOME:-$HOME/.config}/zsh/.zshrc
+zh ${XDG_DATA_HOME:-$HOME/.config}/zsh/history
+za ${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc
+arc ${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc
+spf ${XDG_CONFIG_HOME:-$HOME/.config}/shell/server.profile
+lc ${XDG_CONFIG_HOME:-$HOME/.config}/lf/lfrc
+sx ${XDG_CONFIG_HOME:-$HOME/.config}/sxiv/exec/key-handler
+in ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/init.vim
+ac ${XDG_CONFIG_HOME:-$HOME/.config}/alacritty/alacritty.toml
+xr ${XDG_CONFIG_HOME:-$HOME/.config}/X11/Xresources
+xi ${XDG_CONFIG_HOME:-$HOME/.config}/X11/xinitrc
+mm ${XDG_CONFIG_HOME:-$HOME/.config}/mimeapps.list
+ssc ~/.ssh/config
+csh ~/Dev/csstudent41.github.io/layouts/_default/home.html
+qn ${XDG_DOCUMENTS_HOME:-$HOME/Documents}/Notes/QuickNote.md
+bm ${XDG_DOCUMENTS_HOME:-$HOME/Documents}/Notes/bookmarks.txt
+akn ${XDG_DOCUMENTS_HOME:-$HOME/Documents}/Notes/ak47.txt
+li ${XDG_DOCUMENTS_HOME:-$HOME/Documents}/latex/lorem-ipsum.txt
diff --git a/.config/shell/inputrc b/.config/shell/inputrc
new file mode 100644
index 0000000..4f7c652
--- /dev/null
+++ b/.config/shell/inputrc
@@ -0,0 +1,38 @@
+set editing-mode vi
+set keymap vi-insert
+RETURN: "\e\n"
+# set vi-ins-mode-string "+"
+# set vi-cmd-mode-string ":"
+# Add colorful command mode string
+# set vi-cmd-mode-string "\1\e[1;31m\2:\1\e[0m\2"
+# Change cursor bar -> insert mode block -> command mode
+set vi-ins-mode-string \1\e[6 q\2
+set vi-cmd-mode-string \1\e[2 q\2
+
+
+set show-mode-in-prompt on
+set show-all-if-ambiguous on
+set completion-ignore-case on
+set menu-complete-display-prefix on
+
+"\C-a": beginning-of-line
+"\C-b": backward-char
+"\C-d": delete-char
+"\C-e": end-of-line
+"\C-f": forward-char
+"\C-h": backward-delete-char
+"\C-k": kill-line
+"\C-l": clear-screen
+"\C-n": history-search-forward
+"\C-p": history-search-backward
+
+# "\e-b": backward-word
+# "\e-f": forward-word
+
+# "(": "\C-v()\C-b"
+# "[": "\C-v[]\C-b"
+# "{": "\C-v{}\C-b"
+# "\"": "\C-v\"\C-v\"\C-b"
+# Single quote (')
+# "\047": "\C-v\047\C-v\047\C-b"
+"jk": vi-movement-mode
diff --git a/.config/shell/profile b/.config/shell/profile
new file mode 100644
index 0000000..1393c45
--- /dev/null
+++ b/.config/shell/profile
@@ -0,0 +1,268 @@
+#!/bin/sh
+
+export OPENER="open"
+export PAGER="less"
+export EDITOR="nvim"
+export BROWSER="w3m"
+export FILES="lf"
+export TERMINAL="st"
+export PREVIEWER="preview"
+
+XDG_CONFIG_HOME="$HOME/.config"
+XDG_DATA_HOME="$HOME/.local/share"
+XDG_STATE_HOME="$HOME/.local/state"
+XDG_CACHE_HOME="$HOME/.cache"
+
+export MOUNTPATH="/run/media/$USER"
+export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME/jupyter"
+export W3M_DIR="$XDG_CONFIG_HOME/w3m"
+export NCFTPDIR="$XDG_DATA_HOME/ncftp"
+export PASSWORD_STORE_DIR="$HOME/Phone/Backup/pass"
+export ANDROID_USER_HOME="$XDG_DATA_HOME/android"
+export __GL_SHADER_DISK_CACHE_PATH="$HOME/.cache/nv"
+
+export XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
+export ZDOTDIR="$XDG_CONFIG_HOME/zsh"
+export INPUTRC="$XDG_CONFIG_HOME/shell/inputrc"
+export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
+export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc"
+export IPYTHONDIR="$XDG_CONFIG_HOME/ipython"
+export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch/config"
+export MBSYNCRC="$XDG_CONFIG_HOME/isyncrc"
+
+export LESSHISTFILE="$XDG_DATA_HOME/less/history"
+export FZF_HIST_FILE="$XDG_DATA_HOME/fzf/history"
+export SDCV_HISTFILE="$XDG_DATA_HOME/sdcv"
+export R_ENVIRON_USER="$XDG_DATA_HOME/R/.Renviron"
+export SSH_AUTH_SOCK="$HOME/.ssh/ssh_auth_sock"
+export GOPATH="$XDG_DATA_HOME/go"
+export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history"
+
+# program configuration
+export LESS='-Rf --mouse --use-color -Dd+r$Du+b$'
+export LESSOPEN='|lessopen.sh %s'
+export GROFF_NO_SGR=1
+export GTK_IM_MODULE='fcitx'
+export QT_IM_MODULE='fcitx'
+export SDL_IM_MODULE='fcitx'
+export XMODIFIERS='@im=fcitx'
+export QT_QPA_PLATFORMTHEME='qt5ct'
+export QT_FONT_DPI=112
+export SDCV_PAGER='less -R --quit-if-one-screen'
+export HTTP_HOME='https://www.duckduckgo.com'
+export CHROME_EXECUTABLE='chromium'
+export FZF_DEFAULT_COMMAND="find -L . ! -wholename '*.git*' \( -type d -printf '%p/\n' , ! -type d -print \)"
+export FZF_DEFAULT_OPTS="
+ --history='$XDG_DATA_HOME/fzf/history'
+ --preview='\$PREVIEWER {}' --preview-window=hidden
+ --bind 'ctrl-s:toggle-sort'
+ --bind 'ctrl-y:execute-silent(printf \"%s\\\n\" {+} | xsel --clipboard)'
+ --bind 'ctrl-v:toggle-preview,ctrl-space:toggle-preview'
+ --bind 'alt-space:toggle-preview,alt-w:toggle-preview-wrap'
+ --bind 'alt-enter:print-query'
+ --bind 'ctrl-alt-c:change-preview-window(up|left:50%|down|right:50%)'
+ --bind 'ctrl-alt-a:select-all,ctrl-alt-d:deselect-all'
+ --bind 'alt-n:half-page-down,alt-p:half-page-up'
+ --bind 'alt-N:page-down,alt-P:page-up'
+ --bind 'alt-<:first,alt->:last'
+ --bind 'alt-J:preview-down,alt-K:preview-up'
+ --bind 'alt-j:preview-half-page-down,alt-k:preview-half-page-up'
+ --bind 'alt-l:preview-page-down,alt-h:preview-page-up'
+ --bind 'alt-H:preview-top,alt-L:preview-bottom'
+ --bind 'alt-g:preview-top,alt-G:preview-bottom'
+ --bind 'alt-s:execute(dmenu-send {})'
+ --bind 'alt-0:change-preview(echo {})'
+ --bind 'alt-1:change-preview(highlight --out-format=ansi -- {} 2>/dev/null ||
+ ls -Als --group-directories-first --color=always --classify=always -- {})'
+ --bind 'alt-2:change-preview(\$PREVIEWER {})'
+ --bind 'alt-9:change-preview(printf \"%s\\\n\" {+})'
+ --bind 'alt-!:execute(less {})'
+ --bind 'alt-@:execute(\$PREVIEWER {} | less)'
+ --bind 'alt-v:execute(echo {q} >> \"$FZF_HIST_FILE\"; LESSOPEN=\"|preview %s\" less {})'
+ --bind 'alt-e:execute(echo {q} >> \"$FZF_HIST_FILE\"; eval \"\${EDITOR:-vi} {}\")'
+ --bind 'ctrl-o:execute(echo {q} >> \"$FZF_HIST_FILE\"; eval \"\${OPENER:-xdg-open} {}\")'
+ --bind 'alt-O:execute(echo {q} >> \"$FZF_HIST_FILE\"; mimeopen --ask {})'
+ --bind 'alt-o:execute(echo {q} >> \"$FZF_HIST_FILE\"; eval \"\${FILES:-lf} {}\")'
+ --bind 'alt-D:become(echo {q} >> \"$FZF_HIST_FILE\"; dirname {} )'
+ "
+
+## Custom themes for GTypist
+# export GTYPIST_OPTS="--color 3,0 --banner-color 0,1,2,3" # red-yellow
+# export GTYPIST_OPTS="--color 3,0 --banner-colors 0,2,4,1" # green-yellow
+export GTYPIST_OPTS="--color 6,0 --banner-color 0,4,5,1" # blue-cyan
+
+
+# # path
+# find -L ~/.local/share/gem/ruby/3.0.0/bin ~/.local/bin ~/bin \
+# -type d ! -wholename '*/.st*' |
+# while read -r dir; do
+# [ "$PATH" = "${PATH#*"$dir"}" ] && export PATH="$dir:$PATH"
+# done
+
+if [ "$PATH" = "${PATH#*"$HOME/.local/bin"}" ]; then
+ _build_path() { find -L "$@" -type d ! -wholename '*/.st*' ! -wholename '*.git*' -printf '%p:'; }
+ [ -d ~/bin ] && export PATH="$(_build_path ~/bin)$PATH"
+ [ -d ~/.local/bin ] && export PATH="$(_build_path ~/.local/bin)$PATH"
+ export PATH="$PATH:$XDG_DATA_HOME/gem/ruby/3.0.0/bin"
+ export PATH="$PATH:$HOME/Applications/flutter/bin"
+fi
+
+[ -n "$TERMUX_VERSION" ] && {
+ export STORAGE="$HOME/storage"
+}
+
+export BLOCK_COLOR_LEVEL1="#66FF99"
+export BLOCK_COLOR_LEVEL2="#AAEE66"
+export BLOCK_COLOR_LEVEL3="#CCCC33"
+export BLOCK_COLOR_LEVEL4="#FF7733"
+export BLOCK_COLOR_LEVEL5="#FF3333"
+
+LS_COLORS='rs=0:\
+di=01;34:\
+ln=01;36:\
+mh=00:\
+pi=40;33:\
+so=01;35:\
+do=01;35:\
+bd=40;33;01:\
+cd=40;33;01:\
+or=40;31;01:\
+mi=00:\
+su=37;41:\
+sg=30;43:\
+ca=00:\
+tw=30;42:\
+ow=34;42:\
+st=37;44:\
+ex=01;32:\
+*.tar=01;31:\
+*.tgz=01;31:\
+*.arc=01;31:\
+*.arj=01;31:\
+*.taz=01;31:\
+*.lha=01;31:\
+*.lz4=01;31:\
+*.lzh=01;31:\
+*.lzma=01;31:\
+*.tlz=01;31:\
+*.txz=01;31:\
+*.tzo=01;31:\
+*.t7z=01;31:\
+*.zip=01;31:\
+*.z=01;31:\
+*.dz=01;31:\
+*.gz=01;31:\
+*.lrz=01;31:\
+*.lz=01;31:\
+*.lzo=01;31:\
+*.xz=01;31:\
+*.zst=01;31:\
+*.tzst=01;31:\
+*.bz2=01;31:\
+*.bz=01;31:\
+*.tbz=01;31:\
+*.tbz2=01;31:\
+*.tz=01;31:\
+*.deb=01;31:\
+*.rpm=01;31:\
+*.jar=01;31:\
+*.war=01;31:\
+*.ear=01;31:\
+*.sar=01;31:\
+*.rar=01;31:\
+*.alz=01;31:\
+*.ace=01;31:\
+*.zoo=01;31:\
+*.cpio=01;31:\
+*.7z=01;31:\
+*.rz=01;31:\
+*.cab=01;31:\
+*.wim=01;31:\
+*.swm=01;31:\
+*.dwm=01;31:\
+*.esd=01;31:\
+*.avif=01;35:\
+*.jpg=01;35:\
+*.jpeg=01;35:\
+*.mjpg=01;35:\
+*.mjpeg=01;35:\
+*.gif=01;35:\
+*.bmp=01;35:\
+*.pbm=01;35:\
+*.pgm=01;35:\
+*.ppm=01;35:\
+*.tga=01;35:\
+*.xbm=01;35:\
+*.xpm=01;35:\
+*.tif=01;35:\
+*.tiff=01;35:\
+*.png=01;35:\
+*.svg=01;35:\
+*.svgz=01;35:\
+*.mng=01;35:\
+*.pcx=01;35:\
+*.mov=01;35:\
+*.mpg=01;35:\
+*.mpeg=01;35:\
+*.m2v=01;35:\
+*.mkv=01;35:\
+*.webm=01;35:\
+*.webp=01;35:\
+*.ogm=01;35:\
+*.mp4=01;35:\
+*.m4v=01;35:\
+*.mp4v=01;35:\
+*.vob=01;35:\
+*.qt=01;35:\
+*.nuv=01;35:\
+*.wmv=01;35:\
+*.asf=01;35:\
+*.rm=01;35:\
+*.rmvb=01;35:\
+*.flc=01;35:\
+*.avi=01;35:\
+*.fli=01;35:\
+*.flv=01;35:\
+*.gl=01;35:\
+*.dl=01;35:\
+*.xcf=01;35:\
+*.xwd=01;35:\
+*.yuv=01;35:\
+*.cgm=01;35:\
+*.emf=01;35:\
+*.ogv=01;35:\
+*.ogx=01;35:\
+*.aac=00;36:\
+*.au=00;36:\
+*.flac=00;36:\
+*.m4a=00;36:\
+*.mid=00;36:\
+*.midi=00;36:\
+*.mka=00;36:\
+*.mp3=00;36:\
+*.mpc=00;36:\
+*.ogg=00;36:\
+*.ra=00;36:\
+*.wav=00;36:\
+*.oga=00;36:\
+*.opus=00;36:\
+*.spx=00;36:\
+*.xspf=00;36:\
+*~=00;90:\
+*#=00;90:\
+*.bak=00;90:\
+*.old=00;90:\
+*.orig=00;90:\
+*.part=00;90:\
+*.rej=00;90:\
+*.swp=00;90:\
+*.tmp=00;90:\
+*.dpkg-dist=00;90:\
+*.dpkg-old=00;90:\
+*.ucf-dist=00;90:\
+*.ucf-new=00;90:\
+*.ucf-old=00;90:\
+*.rpmnew=00;90:\
+*.rpmorig=00;90:\
+*.rpmsave=00;90:\
+';