#!/bin/bash # Binds bind '"\C-f": forward-search-history' bind '"\C-k": history-search-backward' bind '"\C-j": history-search-forward' # bind ctrl+; to enter bind '"\e[24;5~": accept-line' # ctrl+y to copy current command in line kitty_copy_line() { echo -n "$READLINE_LINE" | wl-copy } bind -x '"\C-y": kitty_copy_line' # Aliases # aliases aliases alias aliasm='alias |comm -13 <(grep -h ^alias ~/.bashrc ~/.bash_private | sort) -' alias aliasd='aliasm |diff -u --color ~/.bash_aliases -' alias aliasr='unalias -a; . ~/.bashrc' alias aliass='aliasm > ~/.bash_aliases' # ls aliases alias ll='ls -lah --color=auto' alias ls='ls --color=auto' alias sl='ls --color=auto' alias ks='ls --color=auto' alias l='ls --color=auto' alias s='ls --color=auto' # cd aliases alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias cr='cd ..' alias cdr='cd ..' alias cdp='cd ~/Programming' alias cds='cd ~/services' alias cdd='cd ~/Downloads' alias cdt='cd ~/tmp' alias cdtc='cd ~/Programming/test' alias cdn='cd ~/Documents/obsidian/Notes' alias cda='cd /run/media/$USER/' # rm aliases alias rmr='rm -rf' # grep aliases alias gr='grep --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' alias agrep='ps aux | grep --color=auto' # wm aliases alias shy='start-hyprland' alias hload='hyprctl reload && dunstctl reload' alias sudo-gtk='sudo WAYLAND_DISPLAY="$WAYLAND_DISPLAY" XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR"' # edit aliases alias cfgssh='(cd ~/.ssh && nvim .)' alias cfghypr='(cd ~/.config/hypr && nvim .)' alias cfgkitty='(cd ~/.config/kitty && nvim .)' alias cfgnvim='(cd ~/.config/nvim && nvim .)' alias cfgrofi='(cd ~/.config/rofi && nvim .)' alias cfgwaybar='(cd ~/.config/waybar && nvim .)' alias cfgdunst='(cd ~/.config/dunst && nvim .)' alias cfgyazi='(cd ~/.config/yazi && nvim .)' alias cfgfastfetch='(cd ~/.config/fastfetch && nvim .)' alias cfgbash='(cd ~/.config/bash && nvim .)' alias cfgtmux='(cd ~/.config/tmux && nvim .)' alias cfgopencode='(cd ~/.config/opencode && nvim .)' alias cfgscripts='(cd ~/config-scripts && nvim .)' alias cfgxfce='(cd ~/.config/xfce4 && nvim .)' alias script='(cd ~/scripts && nvim .)' alias scripts='(cd ~/scripts && nvim .)' alias notes='(cd ~/Documents/obsidian/Notes && nvim .)' # tmp handling aliases alias cleartmp='rm -rf ~/tmp && mkdir -p ~/tmp/daily' alias tmp='(cd ~/tmp/daily && nvim $(date +"%Y-%m-%d-%H").md)' alias tmpmd='(cd ~/tmp/daily && nvim $(date +"%Y-%m-%d-%H").md)' alias tmpraw='(cd ~/tmp/daily && nvim $(date +"%Y-%m-%d-%H"))' alias tmppy='(cd ~/tmp/daily && nvim $(date +"%Y-%m-%d-%H").py)' alias tmpyml='(cd ~/tmp/daily && nvim $(date +"%Y-%m-%d-%H").yml)' alias tmpyaml='(cd ~/tmp/daily && nvim $(date +"%Y-%m-%d-%H").yml)' alias tmpjson='(cd ~/tmp/daily && nvim $(date +"%Y-%m-%d-%H").json)' alias tmppy-run='(cd ~/tmp/daily && python ./$(date +"%Y-%m-%d-%H").py)' alias tmpsh='(cd ~/tmp/daily && nvim $(date +"%Y-%m-%d-%H").sh)' alias tmpsh-run='(cd ~/tmp/daily && chmod +x ./$(date +"%Y-%m-%d-%H").sh && ./$(date +"%Y-%m-%d-%H").sh)' # productivity aliases alias sudo='sudo ' alias s='sudo ' alias profile='source ~/.bash_profile' alias host='echo $HOSTNAME' alias pi='ping google.com' # modes # rewrite "modes" to scripts alias mode-local='cat ~/.config/nvim/lua/templates/clipboard/local-clipboard.lua > ~/.config/nvim/lua/config/clipboard.lua' alias mode-remote='cat ~/.config/nvim/lua/templates/clipboard/remote-clipboard.lua > ~/.config/nvim/lua/config/clipboard.lua' # wifi aliases alias wifi-reload='nmcli r wifi off && nmcli r wifi on' alias wifi-reload-off='nmcli r wifi off' alias wifi-reload-on='nmcli r wifi on' # kitty aliases alias ssh='kitty +kitten ssh' alias sshr='command ssh' alias edit-in-kitty='kitten edit-in-kitty' # yay/pacman aliases alias pzf='yay -Qq | fzf --preview '\''yay -Qil {}'\'' --layout reverse --bind '\''enter:execute(yay -Qil {} | less)'\'' --bind '\''ctrl-r:execute(yay -R {} | less)'\''' alias paclean='sudo pacman -Rs ' alias update='yay --noconfirm' alias yayc='yay --editmenu' # fastfetch aliases alias fastfetch='~/.config/fastfetch/detect_os.py' alias ff='~/.config/fastfetch/detect_os.py' alias ffr='command fastfetch' # curl aliases alias post='curl -X POST -H "Content-Type: application\json"' alias get='curl -X GET' # docker aliases alias docker-enable='sudo systemctl start docker.service' alias docker-disable='sudo systemctl stop docker.service && sudo systemctl stop docker.socket' alias docker-status='sudo systemctl status docker.service' alias dcd='sudo docker compose down' alias dcu='sudo docker compose up' alias dcp='sudo docker compose pull' alias swagger-docs='sudo host-docs' # git aliases alias g='git' alias ga='git add .' alias gc='git commit -m ' alias gp='git push' alias gs='git status' alias gsh='git show' # other utils aliases alias x='sudo chmod +x' alias y='yazi' alias n='nvim .' alias t='tmux' alias a='abduco' alias al='if [ -n "$A_SESSION_NAME" ]; then abduco -l | sed "s/.*$A_SESSION_NAME.*/\x1b[32m&\x1b[0m/"; else abduco -l; fi' alias py='python' alias pyv='python --version' alias clipclear='cliphist wipe' alias download='aria2c -x16 -s16' alias scrcpy-def='scrcpy -S --no-audio -K' alias share='python3 -m http.server' alias globalshare='(cd ~/Share && python3 -m http.server)' alias clearlock='faillock --user YOUR_USERNAME --reset' alias opencode-resume='opencode-restore' # fun aliases alias please='sudo ' alias mm='unimatrix -f -a -s 92 -l coo -c yellow' alias mmbee='unimatrix -f -a -s 86 -u '\''bee'\'' -c yellow' alias mmbeesquit='unimatrix -f -s 86 -u '\''beesquit'\'' -c yellow' alias mmsnow='unimatrix -u ❄❆❅᪥𑁍⭒*❄❆❅᪥* -c white -a' alias mute-light-disable='sudo sh -c "echo 0 > /sys/class/leds/platform::micmute/brightness"' alias quick-info='echo "Cores: $(lscpu | awk "/Core\(s\) per socket:/ {print \$4}") | Threads: $(nproc) | RAM: $(free -h | awk "/Mem:/ {print \$2}")"' # Functions scannet() { for net in "$@"; do sudo nmap -sn "$net/24" done } setos() { if [ -z "$1" ]; then echo "Error: Please provide a source file path." echo "Usage: setos " return 1 fi cp "$1" "$HOME/.os-release" } aa() { abduco -e ^d -a "$@" printf "\033[?1049l" } look-into-kitty() { KITTY_RAW_PID="$@" KITTY_PID="${KITTY_RAW_PID#kitty-}" ABDUCO_PID=$(ps -ef | grep abduco | grep -v grep | grep "$KITTY_PID" | awk '{print $2}' | head -n 1) pstree -p "$ABDUCO_PID" } opencode-save() { uuid="$1" echo "opencode -s $uuid" >.opencode-session echo 'Saved the command to continue opencode session to ".opencode-session"' } opencode-restore() { FILE_PATH=".opencode-session" if [ ! -f "$FILE_PATH" ]; then echo "Error: no such file '$FILE_PATH'" return 1 fi uuid=$(awk '/opencode -s/ {print $3}' "$FILE_PATH") if [ -z "$uuid" ]; then echo "Error: no sessionn saved" return 1 fi echo "Resuming Opencode session with ID: $uuid" opencode -s "$uuid" } # Imports if [ -f "$HOME/.bash_tools" ]; then . "$HOME/.bash_tools" fi if [ -f "$HOME/.bash_private" ]; then . "$HOME/.bash_private" fi if [ -f "$HOME/.bash_aliases" ]; then . "$HOME/.bash_aliases" fi if [ -f "$HOME/.bash_prompt" ]; then . "$HOME/.bash_prompt" fi if [ -f "$HOME/.multiplexer" ]; then . "$HOME/.multiplexer" fi