mirror of
https://github.com/Dichgrem/dotfiles.git
synced 2025-07-31 00:59:31 -04:00
129 lines
3.5 KiB
Fish
129 lines
3.5 KiB
Fish
## Source from conf.d before our fish config
|
|
source ~/.config/fish/conf.d/done.fish
|
|
atuin init fish | source
|
|
## Set values
|
|
## Run fastfetch as welcome message
|
|
function fish_greeting
|
|
fastfetch
|
|
end
|
|
|
|
# Format man pages
|
|
set -x MANROFFOPT -c
|
|
set -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
|
|
|
|
# Set settings for https://github.com/franciscolourenco/done
|
|
set -U __done_min_cmd_duration 10000
|
|
set -U __done_notification_urgency_level low
|
|
|
|
## 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
|
|
|
|
# Add depot_tools to PATH
|
|
if test -d ~/Applications/depot_tools
|
|
if not contains -- ~/Applications/depot_tools $PATH
|
|
set -p PATH ~/Applications/depot_tools
|
|
end
|
|
end
|
|
|
|
## 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
|
|
|
|
if [ "$fish_key_bindings" = fish_vi_key_bindings ]
|
|
|
|
bind -Minsert ! __history_previous_command
|
|
bind -Minsert '$' __history_previous_command_arguments
|
|
else
|
|
bind ! __history_previous_command
|
|
bind '$' __history_previous_command_arguments
|
|
end
|
|
|
|
# Fish command history
|
|
function history
|
|
builtin history --show-time='%F %T '
|
|
end
|
|
|
|
function backup --argument filename
|
|
cp $filename $filename.bak
|
|
end
|
|
|
|
# Copy DIR1 DIR2
|
|
function copy
|
|
set count (count $argv | tr -d \n)
|
|
if test "$count" = 2; and test -d "$argv[1]"
|
|
set from (echo $argv[1] | trim-right /)
|
|
set to (echo $argv[2])
|
|
command cp -r $from $to
|
|
else
|
|
command cp $argv
|
|
end
|
|
end
|
|
|
|
## Useful aliases
|
|
# 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 -a | grep -e '^\.'" # show only dotfiles
|
|
|
|
# Common use
|
|
alias grubup="sudo grub-mkconfig -o /boot/grub/grub.cfg"
|
|
alias tarnow='tar -acf '
|
|
alias untar='tar -zxvf '
|
|
alias wget='wget -c '
|
|
alias psmem='ps auxf | sort -nr -k 4'
|
|
alias psmem10='ps auxf | sort -nr -k 4 | head -10'
|
|
alias ..='cd ..'
|
|
alias ...='cd ../..'
|
|
alias ....='cd ../../..'
|
|
alias .....='cd ../../../..'
|
|
alias ......='cd ../../../../..'
|
|
alias dir='dir --color=auto'
|
|
alias vdir='vdir --color=auto'
|
|
alias grep='grep --color=auto'
|
|
alias fgrep='fgrep --color=auto'
|
|
alias egrep='egrep --color=auto'
|
|
alias hw='hwinfo --short' # Hardware Info
|
|
alias big="expac -H M '%m\t%n' | sort -h | nl" # Sort installed packages according to size in MB
|
|
|
|
# Get fastest mirrors
|
|
alias mirror="sudo cachyos-rate-mirrors"
|
|
|
|
# Cleanup orphaned packages
|
|
alias cleanup='sudo pacman -Rns (pacman -Qtdq)'
|
|
|
|
# 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"
|