mirror of
https://github.com/anthonyoteri/dotfiles.git
synced 2026-06-05 23:56:52 -04:00
132 lines
3.9 KiB
Fish
132 lines
3.9 KiB
Fish
# Hide welcome message & ensure we are reporting fish as shell
|
|
set fish_greeting
|
|
set VIRTUAL_ENV_DISABLE_PROMPT "1"
|
|
set -x MANROFFOPT "-c"
|
|
set -x MANPAGER "sh -c 'col -bx | bat -pl man'"
|
|
set -x SHELL /usr/bin/fish
|
|
|
|
# Environment setup
|
|
# Apply .profile: use this to put fish compatible .profile stuff in
|
|
if test -f ~/.fish_profile
|
|
source ~/.fish_profile
|
|
end
|
|
|
|
# Add ~/.local/bin to PATH
|
|
if test -d ~/.local/bin
|
|
if not contains -- ~/.local/bin $PATH
|
|
set -p PATH ~/.local/bin
|
|
end
|
|
end
|
|
|
|
# Starship prompt
|
|
if status is-interactive
|
|
source ("/usr/bin/starship" init fish --print-full-init | psub)
|
|
end
|
|
|
|
# Advanced command-not-found hook
|
|
source /usr/share/doc/find-the-command/ftc.fish
|
|
|
|
## Functions
|
|
# Functions needed for !! and !$ https://github.com/oh-my-fish/plugin-bang-bang
|
|
function __history_previous_command
|
|
switch (commandline -t)
|
|
case "!"
|
|
commandline -t $history[1]; commandline -f repaint
|
|
case "*"
|
|
commandline -i !
|
|
end
|
|
end
|
|
|
|
function __history_previous_command_arguments
|
|
switch (commandline -t)
|
|
case "!"
|
|
commandline -t ""
|
|
commandline -f history-token-search-backward
|
|
case "*"
|
|
commandline -i '$'
|
|
end
|
|
end
|
|
|
|
# Fish command history
|
|
function history
|
|
builtin history --show-time='%F %T '
|
|
end
|
|
|
|
function backup --argument filename
|
|
cp $filename $filename.bak
|
|
end
|
|
|
|
# Cleanup local orphaned packages
|
|
function cleanup
|
|
while pacman -Qdtq
|
|
sudo pacman -R (pacman -Qdtq)
|
|
end
|
|
end
|
|
|
|
# Replace ls with eza
|
|
alias ls 'eza -al --color=always --group-directories-first --icons' # preferred listing
|
|
alias la 'eza -a --color=always --group-directories-first --icons' # all files and dirs
|
|
alias ll 'eza -l --color=always --group-directories-first --icons' # long format
|
|
alias lt 'eza -aT --color=always --group-directories-first --icons' # tree listing
|
|
alias l. 'eza -ald --color=always --group-directories-first --icons .*' # show only dotfiles
|
|
|
|
# Replace some more things with better alternatives
|
|
alias cat 'bat --style header --style snip --style changes --style header'
|
|
if not test -x /usr/bin/yay; and test -x /usr/bin/paru
|
|
alias yay 'paru'
|
|
end
|
|
|
|
|
|
# Common use
|
|
alias .. 'cd ..'
|
|
alias ... 'cd ../..'
|
|
alias .... 'cd ../../..'
|
|
alias ..... 'cd ../../../..'
|
|
alias ...... 'cd ../../../../..'
|
|
alias big 'expac -H M "%m\t%n" | sort -h | nl' # Sort installed packages according to size in MB (expac must be installed)
|
|
alias dir 'dir --color=auto'
|
|
alias egrep 'grep -E --color=auto'
|
|
alias fgrep 'grep -F --color=auto'
|
|
alias fixpacman 'sudo rm /var/lib/pacman/db.lck'
|
|
alias gitpkg 'pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages
|
|
alias grep 'grep --color=auto'
|
|
alias grubup 'sudo update-grub'
|
|
alias hw 'hwinfo --short' # Hardware Info
|
|
alias ip 'ip -color'
|
|
alias psmem 'ps auxf | sort -nr -k 4'
|
|
alias psmem10 'ps auxf | sort -nr -k 4 | head -10'
|
|
alias rmpkg 'sudo pacman -Rdd'
|
|
alias tarnow 'tar -acf '
|
|
alias untar 'tar -zxvf '
|
|
alias upd '/usr/bin/garuda-update'
|
|
alias vdir 'vdir --color=auto'
|
|
alias wget 'wget -c '
|
|
|
|
# Get fastest mirrors
|
|
alias mirror 'sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist'
|
|
alias mirrora 'sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist'
|
|
alias mirrord 'sudo reflector --latest 50 --number 20 --sort delay --save /etc/pacman.d/mirrorlist'
|
|
alias mirrors 'sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist'
|
|
|
|
# Help people new to Arch
|
|
alias apt 'man pacman'
|
|
alias apt-get 'man pacman'
|
|
alias please 'sudo'
|
|
alias tb 'nc termbin.com 9999'
|
|
alias helpme 'echo "To print basic information about a command use tldr <command>"'
|
|
alias pacdiff 'sudo -H DIFFPROG=meld pacdiff'
|
|
|
|
# Get the error messages from journalctl
|
|
alias jctl 'journalctl -p 3 -xb'
|
|
|
|
# Recent installed packages
|
|
alias rip 'expac --timefmt="%Y-%m-%d %T" "%l\t%n %v" | sort | tail -200 | nl'
|
|
|
|
## Run fastfetch if session is interactive
|
|
if status --is-interactive && type -q fastfetch
|
|
fastfetch --load-config neofetch
|
|
end
|
|
|
|
|
|
|