# # ~/.bashrc # # If not running interactively, don't do anything [[ $- != *i* ]] && return ####################################################### # Aliases ####################################################### alias ls='ls --color=auto' alias grep='grep --color=auto' PS1='[\u@\h \W]\$ ' alias l='ls -la' alias lg='lazygit' alias mkdir='mkdir -p' alias cd='z' # Edit this .bashrc file alias ebrc='nano ~/.bashrc' alias wgu='wg-quick up wg0' alias wgd='wg-quick down wg0' # Change directory aliases alias home='cd ~' alias cd..='cd ..' alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias .....='cd ../../../..' # aliases for multiple directory listing commands alias la='ls -Alh' # show hidden files alias ls='ls -aFh --color=always' # add colors and file type extensions alias lx='ls -lXBh' # sort by extension alias lk='ls -lSrh' # sort by size alias lc='ls -ltcrh' # sort by change time alias lu='ls -lturh' # sort by access time alias lr='ls -lRh' # recursive ls alias lt='ls -ltrh' # sort by date alias lm='ls -alh |more' # pipe through 'more' alias lw='ls -xAh' # wide listing format alias ll='ls -Fls' # long listing format alias labc='ls -lap' # alphabetical sort alias lf="ls -l | egrep -v '^d'" # files only alias ldir="ls -l | egrep '^d'" # directories only alias lla='ls -Al' # List and Hidden Files alias las='ls -A' # Hidden Files alias lls='ls -l' # List # Set the default editor if command -v nvim &> /dev/null; then export EDITOR=nvim export VISUAL=nvim alias vim='nvim' alias vi='nvim' alias svi='sudo nvim' alias vis='nvim "+set si"' else export EDITOR=vim export VISUAL=vim fi alias spico='sudo pico' alias snano='sudo nano' # Search files in the current folder alias f="find . | grep " # Search command line history alias h="history | grep " # Show open ports alias openports='netstat -nape --inet' # Search running processes alias p="ps aux | grep " alias topcpu="/bin/ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10" ####################################################### # VARIABL EXPORTS ####################################################### # Fix Electron scaling issues by forcing wayland export ELECTRON_ENABLE_OZONE=1 export OZONE_PLATFORM=wayland export GDK_SCALE=1 export GDK_DPI_SCALE=1 export QT_QPA_PLATFORM=wayland export QT_AUTO_SCREEN_SCALE_FACTOR=1 export QT_SCALE_FACTOR=1 # Force Wayland Anki export ANKI_WAYLAND=1 # Force Firefox to run in wayland export MOZ_ENABLE_WAYLAND=1 # Expand the history size export HISTFILESIZE=10000 export HISTSIZE=500 export HISTTIMEFORMAT="%F %T" # add timestamp to history # Don't put duplicate lines in the history and do not add lines that start with a space export HISTCONTROL=erasedups:ignoredups:ignorespace # Causes bash to append to history instead of overwriting it so if you start a new terminal, you have old session history shopt -s histappend PROMPT_COMMAND='history -a' # TeX Live 2025 paths export PATH="/usr/local/texlive/2025/bin/x86_64-linux:$PATH" export MANPATH="/usr/local/texlive/2025/texmf-dist/doc/man:$MANPATH" export INFOPATH="/usr/local/texlive/2025/texmf-dist/doc/info:$INFOPATH" ####################################################### # Launch on boot ####################################################### # Fastfetch if command -v fastfetch &> /dev/null; then # Only run fastfetch if we're in an interactive shell if [[ $- == *i* ]]; then fastfetch fi fi # Disable the bell if [[ $iatest -gt 0 ]]; then bind "set bell-style visible"; fi ## Use bash-completion, if available #[[ $PS1 && -f /usr/share/bash-completion/bash_completion ]] && \ # . /usr/share/bash-completion/bash_completion ####################################################### # Functions ####################################################### # Yazi function y() { local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd yazi "$@" --cwd-file="$tmp" if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then builtin cd -- "$cwd" fi rm -f -- "$tmp" } # Extracts any archive(s) (if unp isn't installed) extract() { for archive in "$@"; do if [ -f "$archive" ]; then case $archive in *.tar.bz2) tar xvjf $archive ;; *.tar.gz) tar xvzf $archive ;; *.bz2) bunzip2 $archive ;; *.rar) rar x $archive ;; *.gz) gunzip $archive ;; *.tar) tar xvf $archive ;; *.tbz2) tar xvjf $archive ;; *.tgz) tar xvzf $archive ;; *.zip) unzip $archive ;; *.Z) uncompress $archive ;; *.7z) 7z x $archive ;; *) echo "don't know how to extract '$archive'..." ;; esac else echo "'$archive' is not a valid file!" fi done } # Searches for text in all files in the current folder ftext() { # -i case-insensitive # -I ignore binary files # -H causes filename to be printed # -r recursive search # -n causes line number to be printed # optional: -F treat search term as a literal, not a regular expression # optional: -l only print filenames and not the matching lines ex. grep -irl "$1" * grep -iIHrn --color=always "$1" . | less -r } ####################################################### # Ricing ####################################################### # To have colors for ls and all grep commands such as grep, egrep and zgrep export CLICOLOR=1 export LS_COLORS='no=00:fi=00:di=00;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=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:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.ogg=01;35:*.mp3=01;35:*.wav=01;35:*.xml=00;31:' # HAS TO BE AT THE END!!!! # Starship bash prompt bar eval "$(starship init bash)" # Zoxide eval "$(zoxide init bash)" export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion