at main 7.5 kB view raw
1# ~/.bashrc: executed by bash(1) for non-login shells. 2# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) 3# for examples 4 5# If not running interactively, don't do anything 6case $- in 7 *i*) ;; 8 *) return;; 9esac 10 11# don't put duplicate lines or lines starting with space in the history. 12# See bash(1) for more options 13HISTCONTROL=ignoreboth 14 15# append to the history file, don't overwrite it 16shopt -s histappend 17 18# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) 19HISTSIZE=1000 20HISTFILESIZE=2000 21 22# check the window size after each command and, if necessary, 23# update the values of LINES and COLUMNS. 24shopt -s checkwinsize 25 26# If set, the pattern "**" used in a pathname expansion context will 27# match all files and zero or more directories and subdirectories. 28#shopt -s globstar 29 30# make less more friendly for non-text input files, see lesspipe(1) 31[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" 32 33# set variable identifying the chroot you work in (used in the prompt below) 34if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then 35 debian_chroot=$(cat /etc/debian_chroot) 36fi 37 38# set a fancy prompt (non-color, unless we know we "want" color) 39case "$TERM" in 40 xterm-color|*-256color) color_prompt=yes;; 41esac 42 43# uncomment for a colored prompt, if the terminal has the capability; turned 44# off by default to not distract the user: the focus in a terminal window 45# should be on the output of commands, not on the prompt 46#force_color_prompt=yes 47 48if [ -n "$force_color_prompt" ]; then 49 if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then 50 # We have color support; assume it's compliant with Ecma-48 51 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such 52 # a case would tend to support setf rather than setaf.) 53 color_prompt=yes 54 else 55 color_prompt= 56 fi 57fi 58 59if [ "$color_prompt" = yes ]; then 60 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' 61else 62 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' 63fi 64unset color_prompt force_color_prompt 65 66# If this is an xterm set the title to user@host:dir 67case "$TERM" in 68xterm*|rxvt*) 69 PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" 70 ;; 71*) 72 ;; 73esac 74 75# enable color support of ls and also add handy aliases 76if [ -x /usr/bin/dircolors ]; then 77 test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" 78 alias ls='ls --color=auto' 79 #alias dir='dir --color=auto' 80 #alias vdir='vdir --color=auto' 81 82 alias grep='grep --color=auto' 83 alias fgrep='fgrep --color=auto' 84 alias egrep='egrep --color=auto' 85fi 86 87# colored GCC warnings and errors 88#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' 89 90# some more ls aliases 91alias ll='ls -alF' 92alias la='ls -A' 93alias l='ls -CF' 94 95# Add an "alert" alias for long running commands. Use like so: 96# sleep 10; alert 97alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' 98 99# Alias definitions. 100# You may want to put all your additions into a separate file like 101# ~/.bash_aliases, instead of adding them here directly. 102# See /usr/share/doc/bash-doc/examples in the bash-doc package. 103 104if [ -f ~/.bash_aliases ]; then 105 . ~/.bash_aliases 106fi 107 108# enable programmable completion features (you don't need to enable 109# this, if it's already enabled in /etc/bash.bashrc and /etc/profile 110# sources /etc/bash.bashrc). 111if ! shopt -oq posix; then 112 if [ -f /usr/share/bash-completion/bash_completion ]; then 113 . /usr/share/bash-completion/bash_completion 114 elif [ -f /etc/bash_completion ]; then 115 . /etc/bash_completion 116 fi 117fi 118 119###################################### 120# aliases 121###################################### 122 123# general 124 125alias nano=micro 126alias sudo="sudo " 127alias pick="pastel pick" 128alias icat="kitten icat" 129alias freeze="freeze -c user $1" 130alias fd="fdfind " 131alias neofetch="hyfetch" 132alias fastfetch="hyfetch" 133alias bat="batcat" 134alias cat="bat --paging=never" 135alias rced="micro ~/.bashrc && source ~/.bashrc" 136alias dd="askdd" 137alias copy="xclip -sel clipboard" 138alias calc="python3 -Sq" 139 140# lazy ass way for me to get my idol mp3s from youtube 141# usage: ytmp3 url 142alias ytmp3="yt-dlp -f ba -x --audio-format mp3" 143 144# some cd bookmarks 145alias dotf="cd /home/kat/dotfiles" 146alias gmine="cd /home/kat/Documents/Git/-mine" 147 148# weather stuff 149alias wttr="curl https://wttr.in/New+York?F0AS" 150alias weather=wttr 151alias wttrlg="curl https://wttr.in/New+York?F1uq" 152alias weatherlg=wttrlg 153alias sun="daylight --short --timezone='America/New_York' | lolcat" 154 155# git 156alias gitall="git remote | xargs -L1 git push --all" 157alias gyolo="git add . && git commit -m 'yolo'" 158alias gitd="git diff --staged" 159alias gdiff="gitd" 160alias gits="git status" 161alias pusheu="git push bytes main && cd /home/kat/Documents/Git/-mine/eunoia-astro/src/utils && node git-changelog.js" 162 163# vpn split tunnel aliases based on a small script @ ~/.local/bin/mvpn 164alias mftp="mvpn filezilla" 165alias mterm="mvpn kitty" 166 167# servers 168alias fujo="kitty +kitten ssh fujo" 169alias fujobuild="kitty +kitten ssh fujobuild" 170alias fujohost="kitty +kitten ssh fujohost" 171alias fujoat="kitty +kitten ssh fujoat" 172alias goldstar="kitty +kitten ssh goldstar" 173alias ncc="kitty +kitten ssh ncc1701" 174 175###################################### 176# variables 177###################################### 178 179export PATH=$PATH:/usr/local/go/bin 180 181export NVM_DIR="$HOME/.config/nvm" 182[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm 183[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion 184 185# set truecolor 186export COLORTERM=truecolor 187export MICRO_TRUECOLOR=1 188 189# catppuccin colors for fzf 190export FZF_DEFAULT_OPTS=" \ 191--color=spinner:#F2D5CF,hl:#E78284 \ 192--color=fg:#C6D0F5,header:#E78284,info:#CA9EE6,pointer:#F2D5CF \ 193--color=marker:#BABBF1,fg+:#C6D0F5,prompt:#CA9EE6,hl+:#E78284 \ 194--color=border:#414559,label:#C6D0F5" 195 196if [ -f ~/.privatevars ]; then 197 . ~/.privatevars 198fi 199 200###################################### 201# functions 202###################################### 203 204# get a random free port. this is useful for my 205# insane sysadmin website woman adventures 206portfree() { 207 while 208 port=$(shuf -n 1 -i 49152-65535) 209 netstat -atun | grep -q "$port" 210 do 211 continue 212 done 213 echo "$port" 214} 215 216# print internal & external IPs 217whatip() { 218 # internal 219 echo -n "internal IP: " | lolcat -p 0.7; hostname -I | awk '{print $1}' 220 # external 221 echo -n "external IP: " | lolcat -p 0.7; curl -4 icanhazip.com 222} 223 224# password generator. takes input for password length by number 225passgen() { 226 PASSLENGTH=$(gum input --placeholder "type a number") 227 date +%s | sha256sum | base64 | head -c $PASSLENGTH ; echo 228} 229 230cdmess() { 231 # from this blog post: 232 # https://blog.larah.me/mess-directory/ 233 today_tmpdir="${TMPDIR-/tmp}/${USER}_mess/$(date +%F)" 234 mkdir -p "$today_tmpdir" 235 cd "$(mktemp -d -p "${today_tmpdir}" XXXX)" 236} 237 238# to get quick notifs 239# after long commands 240notif() { 241 notify-send "done!" 242 aplay -q /usr/share/sounds/sound-icons/start 243 spd-say -t female3 -r +25 "done!" 244} 245 246###################################### 247# misc 248###################################### 249 250eval "$(starship init bash)" 251eval "$(fzf --bash)" 252eval "$(batman --export-env)" 253. "/home/kat/.deno/env"