# File system if command -v eza &> /dev/null; then alias ls='eza -lh --group-directories-first --icons=auto' alias lsa='ls -a' alias lt='eza --tree --level=2 --long --icons --git' alias lta='lt -a' fi if [[ "$TERM" == "xterm-kitty" ]]; then alias ff="fzf --preview 'case \$(file --mime-type -b {}) in image/*) kitty icat --clear --transfer-mode=memory --stdin=no --place=\${FZF_PREVIEW_COLUMNS}x\${FZF_PREVIEW_LINES}@0x0 {} ;; *) bat --style=numbers --color=always {} ;; esac'" else alias ff="fzf --preview 'bat --style=numbers --color=always {}'" fi alias eff='$EDITOR "$(ff)"' sff() { if [ $# -eq 0 ]; then echo "Usage: sff (e.g. sff host:/tmp/)"; return 1; fi; local file; file=$(find . -type f -printf '%T@\t%p\n' | sort -rn | cut -f2- | ff) && [ -n "$file" ] && scp "$file" "$1"; } if command -v zoxide &> /dev/null; then alias cd="zd" zd() { if (( $# == 0 )); then builtin cd ~ || return elif [[ -d $1 ]]; then builtin cd "$1" || return else if ! z "$@"; then echo "Error: Directory not found" return 1 fi printf "\U000F17A9 " pwd fi } fi open() ( xdg-open "$@" >/dev/null 2>&1 & ) # Directories alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' # Tools alias c='opencode' alias cx='printf "\033[2J\033[3J\033[H" && claude --allow-dangerously-skip-permissions' alias d='docker' alias r='rails' alias t='tmux attach || tmux new -s Work' n() { if [ "$#" -eq 0 ]; then command nvim . ; else command nvim "$@"; fi; } # Git alias g='git' alias gcm='git commit -m' alias gcam='git commit -a -m' alias gcad='git commit -a --amend'