at main 8.1 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 124alias nano=micro 125alias sudo="sudo TERMINFO=\"$TERMINFO\" " 126alias fd="fdfind" 127alias neofetch="hyfetch" 128alias fastfetch="hyfetch" 129alias bat="batcat" 130alias cat="bat --paging=never" 131alias iconsubfol="find . -mindepth 2 -type f -print -exec mv {} . \;" 132alias rced="micro ~/.bashrc && source ~/.bashrc" 133alias icat="kitty +kitten icat" 134alias ps="ps auxww" 135alias dd="ask dd" 136alias copy="xclip -sel clipboard" 137alias freeze="freeze -c user $1" 138alias glow="glow -p $1" 139alias qrcode="qrencode -t ansiutf8 $1" 140 141# lazy ass way for me to get my idol mp3s from youtube 142# usage: ytmp3 url 143alias ytmp3="yt-dlp -f ba -x --audio-format mp3" 144 145# weather stuff 146alias wttr="curl https://wttr.in/New+York?F0ASu" 147alias weather=wttr 148alias wttrlg="curl https://wttr.in/New+York?F1uq" 149alias weatherlg=wttrlg 150alias sun="daylight --short --timezone='America/New_York' | lolcat" 151 152# git 153alias gitall="git remote | xargs -L1 git push --all" 154alias gyolo="git add . && git commit -m 'yolo'" 155alias gitd="git diff --staged" 156alias gdiff="gitd" 157alias gits="git status" 158alias pusheu="git push bytes main && cd /home/kat/Documents/Git/-mine/eunoia-astro/src/utils && node git-changelog.js" 159 160# vpn split tunnel aliases based on a small script @ ~/.local/bin/mvpn 161alias mftp="mvpn filezilla" 162alias mterm="mvpn kitty" 163 164# cd bookmarks 165alias dotf="cd /home/kat/dotfiles" 166alias gmine="cd /home/kat/Documents/Git/-mine" 167 168# servers 169alias fujo="kitty +kitten ssh fujo" 170alias fujohost="kitty +kitten ssh fujohost" 171alias fujobuild="kitty +kitten ssh fujobuild" 172alias fujoat="kitty +kitten ssh fujoat" 173alias goldstar="kitty +kitten ssh goldstar" 174alias ncc="kitty +kitten ssh ncc1701" 175 176###################################### 177# variables 178###################################### 179 180export EDITOR=/usr/local/bin/micro 181export "MICRO_TRUECOLOR=1" 182 183# catppuccin colors for fzf 184export FZF_DEFAULT_OPTS=" \ 185--color=spinner:#F2D5CF,hl:#E78284 \ 186--color=fg:#C6D0F5,header:#E78284,info:#CA9EE6,pointer:#F2D5CF \ 187--color=marker:#BABBF1,fg+:#C6D0F5,prompt:#CA9EE6,hl+:#E78284 \ 188--color=border:#414559,label:#C6D0F5" 189 190# Created by `pipx` on 2025-08-05 03:36:48 191export PATH="$PATH:/home/kat/dotfiles/config/.local/bin" 192export PATH=$PATH:/usr/local/go/bin 193 194if [ -f ~/.privatevars ]; then 195 . ~/.privatevars 196fi 197 198export NVM_DIR="$HOME/.config/nvm" 199[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm 200[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion 201 202. "$HOME/.cargo/env" 203 204. "/home/kat/.deno/env" 205 206###################################### 207# functions 208###################################### 209 210cdmess() { 211 # from this blog post: 212 # https://blog.larah.me/mess-directory/ 213 today_tmpdir="${TMPDIR-/tmp}/${USER}_mess/$(date +%F)" 214 mkdir -p "$today_tmpdir" 215 cd "$(mktemp -d -p "${today_tmpdir}" XXXX)" 216} 217 218# get a random free port. this is useful for my 219# insane sysadmin website woman adventures 220portfree() { 221 while 222 port=$(shuf -n 1 -i 1024-65535) 223 netstat -atun | grep -q "$port" 224 do 225 continue 226 done 227 echo "$port" 228} 229 230# print internal & external IPs 231whatip() { 232 # internal 233 echo -n "internal IP: " | lolcat -p 0.7; hostname -I | awk '{print $1}' 234 # external 235 echo -n "external IP: " | lolcat -p 0.7; curl -4 icanhazip.com 236} 237 238# password generator. takes input for password length by number 239passgen() { 240 PASSLENGTH=$(gum input --placeholder "type a number") 241 date +%s | sha256sum | base64 | head -c $PASSLENGTH ; echo 242} 243 244# display random ASCII art from 245# custom dir of art in dotfiles 246# using arttime (github: poetaman/arttime) 247playart() { 248 ARTDIR="/home/kat/Documents/Code/Git/-mine/dotfiles/config/.local/share/arttime/textart" 249 ARTSHUF=$(find "$ARTDIR" -type f | shuf -n1) 250 251 for art in "$ARTSHUF"; do 252 arttime --nolearn -a ${art} --ac 5 253 done 254} 255 256# to get quick notifs 257# after long commands 258notif() { 259 notify-send "done!" 260 paplay /usr/share/sounds/sound-icons/start 261 spd-say -t female3 -r +25 "done!" 262} 263 264###################################### 265# misc 266###################################### 267 268eval "$(starship init bash)" 269eval "$(fzf --bash)" 270eval "$(batman --export-env)"