141 lines
3.8 KiB
Bash
Raw Normal View History

2024-09-04 00:54:15 +06:00
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
export PATH="$HOME/.config/emacs/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
alias ls='ls --color=auto'
alias grep='grep --color=auto'
echo ""
# PS1="[\w] ($(git branch 2>/dev/null | grep '^*' | colrm 1 2)) \n-> "
2024-10-27 00:29:18 +06:00
# PS1='[\w]$(git rev-parse --is-inside-work-tree &>/dev/null && echo " ($(git branch 2>/dev/null | grep '\''^\*'\'' | colrm 1 2))") \n-> '
PS1='\w$(git rev-parse --is-inside-work-tree &>/dev/null && echo " ($(git branch 2>/dev/null | grep '\''^\*'\'' | colrm 1 2))") $ '
2024-09-04 00:54:15 +06:00
export VISUAL=nvim
2024-12-12 00:05:59 +06:00
export MANPAGER='nvim +Man!'
2024-09-04 00:54:15 +06:00
export EDITOR="$VISUAL"
function tmux_create_session_with_FZF() {
# tmux new session
DIR=$(find /home/fs/Desktop/pet /home/fs/Desktop/tmp /home/fs/Desktop/work -maxdepth 2 -type d ! -readable -prune -o -print | fzf)
if [ -z "$DIR" ]; then
return
fi
DIR_NAME=$(basename "$DIR")
CURRENT_DIR=$(echo "${DIR}" | awk -F'/' '{print $(NF-1)}')
SESSION_NAME="${CURRENT_DIR}/${DIR_NAME}"
if ! tmux has-session -t "$SESSION_NAME" 2>/dev/null; then
tmux new-session -s "$SESSION_NAME" -c "$DIR"
else
tmux attach-session -t "$SESSION_NAME"
fi
}
function tmux_attach_session_FZF() {
# tmux open exist session
SESSION_NAME=$(tmux ls | awk '{print $1}' | sed s/:// | fzf)
if [ -z "$SESSION_NAME" ]; then
return
fi
tmux attach-session -t "$SESSION_NAME"
}
function cd_with_FZF() {
cd $(find /home/fs/Desktop/pet /home/fs/Desktop/tmp /home/fs/Desktop/work -maxdepth 2 -type d ! -readable -prune -o -print | fzf)
}
function git_checkout_FZF() {
BRANCH_FZF_OUTPUT="$(git branch | fzf)"
BRANCH_NAME="$(echo "$BRANCH_FZF_OUTPUT" | sed 's/ //g')"
git checkout "$BRANCH_NAME"
}
function git_checkout_r_FZF() {
BRANCH_FZF_OUTPUT="$(git branch -r | fzf)"
BRANCH_NAME="$(echo "$BRANCH_FZF_OUTPUT" | sed 's/ //g')"
NEW_BRANCH_NAME="$(echo "$BRANCH_NAME" | sed 's/origin\///g')"
git checkout -b "$NEW_BRANCH_NAME" "$BRANCH_NAME"
}
function git_pull() {
BRANCH_NAME="$(git branch | grep "*" | sed s/*// | sed s/\ //)"
git pull origin "$BRANCH_NAME"
}
set -o vi
bind '"jk":"\e"'
# main
alias v='nvim'
alias s='exa -al --color=always --group-directories-first'
alias c='clear'
2024-10-27 00:29:18 +06:00
alias e='exit'
2024-09-04 00:54:15 +06:00
# pyenv
alias en='source ../../env/bin/activate'
alias end='source env/bin/activate'
# docker
alias dc='docker compose'
alias db='docker compose exec backend bash'
alias ds='docker compose exec backend sh'
# tmux
alias tw="if ! tmux has-session -t work 2>/dev/null; then tmux new-session -s work; else tmux attach-session -t work; fi"
alias some="if ! tmux has-session -t some 2>/dev/null; then tmux new-session -s some; else tmux attach-session -t some; fi"
alias tn="tmux new-session -s"
alias tl='tmux ls'
alias tf=tmux_create_session_with_FZF
alias ta=tmux_attach_session_FZF
alias f=cd_with_FZF
# daily features
alias fm="pcmanfm &"
alias moc='mocp -T tty'
alias ff3='/home/fs/Desktop/a79/env/bin/python3 /home/fs/Desktop/a79/ff3.py'
alias bg='feh --bg-fil'
alias em='emacsclient -t'
alias wifi='/home/fs/bin/wifi.py'
alias bgg='/home/fs/bin/gifwall.sh'
# git
alias gdel='f() { git branch -D $(git branch | grep "$1"); }; f'
alias gbl='git branch'
alias gnew='git checkout -b $1'
alias gs='git status'
alias gf="git fetch"
alias gc=git_checkout_FZF
alias gcr=git_checkout_r_FZF
alias gpu=git_pull
alias gsl='git stash list'
alias gss='git stash save'
alias gsp='git stash pop'
# ============ CHEAT SHEET ============
# Forward Tunnel: map port from remote machine/network on local machine
# ssh -L $LOCAL_PORT:$REMOTE_IP:$REMOTE_PORT $USER@$SERVER
# Reverse Tunnel: make local port accessable to remote machine
# ssh -R $REMOTE_PORT:$LOCAL_IP:$LOCAL_PORT $USER@$SERVER
#
[ -f "/home/fs/.ghcup/env" ] && . "/home/fs/.ghcup/env" # ghcup-env
2024-10-28 21:49:48 +06:00
# for latex
export PATH=/usr/local/texlive/2024/bin/x86_64-linux:$PATH