mirror of
https://github.com/Xevion/dotfiles.git
synced 2026-01-31 00:24:06 -06:00
204 lines
6.2 KiB
Cheetah
204 lines
6.2 KiB
Cheetah
# Controlled by chezmoi
|
|
|
|
# System
|
|
alias sctl='systemctl'
|
|
alias sctlu='systemctl --user'
|
|
alias jctl='journalctl'
|
|
alias sup='sudo apt update'
|
|
alias sug='sudo apt upgrade'
|
|
alias supg='sudo apt update && sudo apt upgrade'
|
|
alias supgy='sudo apt update && sudo apt upgrade -y'
|
|
alias sai='sudo apt install'
|
|
alias saa='sudo apt autoremove'
|
|
alias sdr='sudo systemctl daemon-reload'
|
|
alias sn='sudo micro'
|
|
alias sv='sudo nvim'
|
|
|
|
# Core aliases
|
|
alias ll='ls -AlFh'
|
|
alias la='ls -Ah'
|
|
alias l='ls -CF'
|
|
alias nano='micro'
|
|
alias lg='lazygit'
|
|
alias vim='nvim'
|
|
alias chlg='lazygit --path ~/.local/share/chezmoi'
|
|
alias es='exec $SHELL'
|
|
|
|
# Chezmoi
|
|
alias cha='chezmoi apply'
|
|
alias chai='chezmoi apply --interactive'
|
|
alias ch='chezmoi'
|
|
alias cdc='chezmoi cd'
|
|
|
|
# Remote Management
|
|
alias romanlog="ssh roman 'tail -F /var/log/syslog' --lines 100"
|
|
|
|
# Other aliases
|
|
alias oc='opencode'
|
|
alias ocs='opencode --model anthropic/claude-sonnet-4-5'
|
|
alias oco='opencode --model anthropic/claude-opus-4-5'
|
|
alias och='opencode --model anthropic/claude-haiku-4-5'
|
|
alias cl='claude'
|
|
alias cope='claude --model opus'
|
|
alias copes='claude --model sonnet'
|
|
alias copeh='claude --model haiku'
|
|
alias hcope='claude --model haiku'
|
|
alias gpt='chatgpt'
|
|
alias copilot='gh copilot'
|
|
alias suggest='gh copilot suggest -t shell'
|
|
alias spt='spotify_player'
|
|
alias gitalias='alias | grep "git "'
|
|
alias mousefix='sudo udevadm trigger' # helped with mouse issues on laptop
|
|
alias rt='riptree'
|
|
alias tree='rt --compat'
|
|
|
|
# Clipboard aliases
|
|
{{ if not .wsl -}}
|
|
alias copy='xsel -ib'
|
|
alias paste='xsel -b'
|
|
alias cdp='cd $(xsel -b)'
|
|
{{- else -}}
|
|
alias copy='clip.exe'
|
|
alias paste='powershell.exe -noprofile Get-Clipboard'
|
|
alias cdp='cd $(xsel -b)'
|
|
{{- end }}
|
|
|
|
# fast chmod execute alias
|
|
function chfix() {
|
|
last_command=$(history | tail -n 1 | awk '{$1=""; sub(/^ /, ""); print $0}')
|
|
|
|
if [[ -f $last_command ]]; then
|
|
chmod +x $last_command
|
|
else
|
|
echo "Error: $last_command is not a valid file"
|
|
fi
|
|
}
|
|
|
|
# https://docs.gitignore.io/install/command-line
|
|
function gi() { curl -sL https://www.toptal.com/developers/gitignore/api/$@; }
|
|
|
|
function chcode() {
|
|
EDITOR="code --wait"
|
|
# If no arguments are provided, the chezmoi directory is opened
|
|
if [[ "$@" == *"--watch"* ]]; then
|
|
for arg in "$@"; do
|
|
if [[ ! $arg == -* ]]; then
|
|
chezmoi edit $@
|
|
return
|
|
fi
|
|
done
|
|
echo "--watch requires a file to be provided, directories aren't supported with watch mode"
|
|
fi
|
|
chezmoi edit $@
|
|
}
|
|
|
|
# Creates a temporary file with the given
|
|
function tempCode() {
|
|
if [ -z "$1" ]; then
|
|
echo "Must provide filetype argument (ex: py, .xml, html)"
|
|
else
|
|
# Remove preceding dot, then re-add to support both '.py' and 'py' as arguments
|
|
EXTENSION=$(echo $1 | sed 's/^\.//')
|
|
TEMP_FILE=$(mktemp "/tmp/XXXXXXXXXXXX_$(uuidgen).$EXTENSION")
|
|
echo "Temporary $1 file created at $TEMP_FILE"
|
|
code --file-uri "file://$TEMP_FILE"
|
|
fi
|
|
}
|
|
|
|
# Alias to disable/enable bluetooth connection to Galaxy Buds
|
|
budsAddress="60:3A:AF:75:61:80"
|
|
alias budsOff="bluetoothctl block $budsAddress"
|
|
alias budsOn="bluetoothctl unblock $budsAddress && bluetoothctl connect $budsAddress"
|
|
|
|
# Alias to disable/enable bluetooth connection to Bose QC45s
|
|
maestroAddress="AC:BF:71:66:FE:B2"
|
|
alias maestroOff="bluetoothctl block $maestroAddress"
|
|
alias maestroOn="bluetoothctl unblock $maestroAddress && bluetoothctl connect $maestroAddress"
|
|
|
|
function lastRuns() {
|
|
if [ -z "$1" ]; then RUNS=10; else RUNS=$1; fi
|
|
gh run list -L $RUNS --json name,url | jq -c '.[] | [.name, .url] | join(" ")' -r
|
|
}
|
|
|
|
# Touches a file while also creating the parent directory (and any other necessary directories) in order to do so.
|
|
mktouch() { mkdir -p $(dirname $1) && touch $1; }
|
|
|
|
# When in the appropriate KiTTy terminal, use the SSH kitten
|
|
[ "$TERM" = "xterm-kitty" ] && alias ssh="kitty +kitten ssh"
|
|
|
|
# Git aliases
|
|
alias ga='git add'
|
|
alias gaa='git add .'
|
|
alias gaaa='git add --all'
|
|
alias gau='git add --update'
|
|
alias gb='git branch'
|
|
alias gbd='git branch --delete '
|
|
alias gc='git commit'
|
|
alias gcm='git commit --message'
|
|
alias gcf='git commit --fixup'
|
|
alias gco='git checkout'
|
|
alias gcob='git checkout -b'
|
|
alias gcom='git checkout master'
|
|
alias gcos='git checkout staging'
|
|
alias gcod='git checkout develop'
|
|
alias gd='git diff'
|
|
alias gda='git diff HEAD'
|
|
# alias gi='git init'
|
|
alias glg='git log --graph --oneline --decorate --all'
|
|
alias gld='git log --pretty=format:"%h %ad %s" --date=short --all'
|
|
alias gm='git merge --no-ff'
|
|
alias gma='git merge --abort'
|
|
alias gmc='git merge --continue'
|
|
alias gp='git pull'
|
|
alias gpr='git pull --rebase'
|
|
alias gr='git rebase'
|
|
alias gs='git status'
|
|
alias gss='git status --short'
|
|
alias gst='git stash'
|
|
alias gsta='git stash apply'
|
|
alias gstd='git stash drop'
|
|
alias gstl='git stash list'
|
|
alias gstp='git stash pop'
|
|
alias gsts='git stash save'
|
|
|
|
# Git log find by commit message
|
|
function glf() { git log --all --grep="$1"; }
|
|
|
|
# fzf abbreviation/alias search
|
|
if command -v fzf-abbr-search.ts &> /dev/null && command -v fzf &> /dev/null; then
|
|
fzf_search_abbr() {
|
|
local result key selected
|
|
result=$(fzf-abbr-search.ts | fzf \
|
|
--ansi \
|
|
--height=50% \
|
|
--reverse \
|
|
--delimiter=$'\t' \
|
|
--with-nth=4 \
|
|
--nth=1,2 \
|
|
--prompt='Aliases > ' \
|
|
--preview='echo {2}' \
|
|
--preview-window=up:3:wrap \
|
|
--expect='tab' \
|
|
--header='Enter: insert name | Tab: insert expansion')
|
|
|
|
if [ -n "$result" ]; then
|
|
# First line is key, second line is selected
|
|
key=$(echo "$result" | head -n1)
|
|
selected=$(echo "$result" | tail -n1)
|
|
|
|
if [ -n "$selected" ]; then
|
|
if [ "$key" = "tab" ]; then
|
|
# Insert expansion (field 2)
|
|
READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}$(echo "$selected" | cut -f2)${READLINE_LINE:$READLINE_POINT}"
|
|
else
|
|
# Insert name (field 1)
|
|
READLINE_LINE="${READLINE_LINE:0:$READLINE_POINT}$(echo "$selected" | cut -f1)${READLINE_LINE:$READLINE_POINT}"
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# Bind to Alt+A
|
|
bind -x '"\ea": fzf_search_abbr'
|
|
fi
|