204 lines
6.7 KiB
Bash
204 lines
6.7 KiB
Bash
#
|
|
# ~/.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
|