# -*- mode: sh -*-
# shellcheck shell=bash

# NOTE: A trailing space makes an alias expand the next word as an alias!

alias open='xdg-open'
alias ls='LC_COLLATE=C ls -h --color=auto  --group-directories-first'
# Having -c set in $LESS (see: environment.d/90-misc.conf) breaks less when used
# as a pager by other tools.
alias less='less -c'
alias tree='tree --dirsfirst'
alias fd='fd -u'
alias ip='ip -c'
alias run0='run0 --shell-prompt-prefix= --background='
alias sudo='run0'
alias watch='watch -c ' # ← Expand aliases
alias tmux='direnv exec / tmux'
alias tm='tmux a || tmux'
alias ansible-local="env -u ANSIBLE_VAULT_PASSWORD_FILE \
                     ansible-playbook -i 'localhost,' -c local"
alias ansible-console-local="env -u ANSIBLE_VAULT_PASSWORD_FILE \
                             ansible-console -i 'localhost,' -c local"
alias wipehist='cat /dev/null > "${HISTFILE}" && history -c && exec "${SHELL}"'
alias units='units -H "$(xdg-mkdir cache units)/history"'
alias sqlite3='env SQLITE_HISTORY="$(xdg-mkdir cache sqlite)/history" sqlite3'
alias psql='env PSQL_HISTORY="$(xdg-mkdir state pg)/psql_history" psql'
alias ninja='ninja-build'
alias ema='emacsclient -c -s main'
alias emacs='emacsclient -c -s main'
alias minimacs='/usr/bin/emacs --init-directory=~/.config/minimacs/'
alias refresh='exec "${SHELL}"'
alias sys='systemctl'
alias session='systemctl --user'
alias journalctl='journalctl --no-hostname'
alias dmesg='journalctl --dmesg'
alias syslog='journalctl --system --no-hostname'
alias userlog='journalctl --user --no-hostname'
alias cmake='cmake -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=1'
alias cat-which='cmd-which cat'
alias less-which='cmd-which less'
alias emacs-which="cmd-which 'emacsclient -c -s main'"
alias flatpak-builder='flatpak-builder --ccache'
alias dns-flush='sudo resolvectl flush-caches'
alias stoneshard='$HOME/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/common/Stoneshard/StoneShard'
alias curl='curl -#'
alias pingsweep='nmap -sn'
alias gnome-console='kgx'
alias ptyxis='ptyxis --new-window'
alias tig='mkdir ~/.local/share/tig/ 2>/dev/null; /usr/bin/tig'
alias word-diff='git --no-pager diff --no-index --word-diff=color --word-diff-regex=.'
alias diff="diff -u --color=always"
alias delta="delta --features \"\$(gnome-color-scheme)\""
alias rg="rg --no-ignore --hidden 2> >( grep -v 'Permission denied')"

# duplicates <FILE-1> <FILE-2>
# List all lines in FILE-1 that is present in FILE-2.
alias file-duplicates='grep --color=never -Fxf'

alias adbsync='NO_COLOR=1 adbsync'

alias pip="pip --require-virtualenv"
alias uv="NO_COLOR=1 uv"
alias uvx="NO_COLOR=1 uvx"

alias wget="wget --hsts-file=~/.cache/wget-hsts"

# Remarshal
alias json2yaml="json2yaml --multiline 1 --width 80"
alias toml2yaml="toml2yaml --multiline 1 --width 80"
alias yaml2yaml="yaml2yaml --multiline 1 --width 80 --expand-alias"

## Containers

# CLIs
alias argo='container --rm docker.io/argoproj/argocli:latest'
alias groovysh='container --rm docker.io/groovy'
alias mc='container --rm docker.io/minio/mc:latest'
alias promtail='container --rm docker.io/grafana/promtail:latest'

# Pets
alias ubuntu-24.04='container docker.io/library/ubuntu:24.04'
alias ubuntu-25.04='container docker.io/library/ubuntu:25.04'
alias ubuntu-25.10='container docker.io/library/ubuntu:25.10'
alias ubuntu-26.04='container docker.io/library/ubuntu:26.04'
alias ubuntu='container docker.io/library/ubuntu:26.04'

alias fedora-43='container quay.io/fedora/fedora:43'
alias fedora-44='container quay.io/fedora/fedora:44'
alias fedora='fedora-44'

alias bash-3.2='container docker.io/library/bash:3.2'

alias alpine-3.24='container docker.io/library/alpine:3.24'
alias alpine='alpine-3.24'

alias mitmdump='NO_COLOR=1 mitmdump'
alias mitmproxy='NO_COLOR=1 mitmproxy'
alias mitmweb='NO_COLOR=1 mitmweb'
