diff --git a/.config/fish/config.fish b/.config/fish/config.fish index d714361..cf52e32 100644 --- a/.config/fish/config.fish +++ b/.config/fish/config.fish @@ -1,3 +1,147 @@ -if status is-interactive - # Commands to run in interactive sessions can go here +## Set values +# Hide welcome message +set fish_greeting +set VIRTUAL_ENV_DISABLE_PROMPT "1" +set -x MANPAGER "sh -c 'col -bx | bat -l man -p'" + +## Export variable need for qt-theme +if type "qtile" >> /dev/null 2>&1 + set -x QT_QPA_PLATFORMTHEME "qt5ct" +end + +# 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 + + +## Starship prompt +if status --is-interactive + source ("/usr/bin/starship" init fish --print-full-init | psub) +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 exa +alias ls='exa -al --color=always --group-directories-first --icons' # preferred listing +alias la='exa -a --color=always --group-directories-first --icons' # all files and dirs +alias ll='exa -l --color=always --group-directories-first --icons' # long format +alias lt='exa -aT --color=always --group-directories-first --icons' # tree listing +alias l.="exa -a | egrep '^\.'" # show only dotfiles + +# Replace some more things with better alternatives +alias cat='bat --style header --style rules --style snip --style changes --style header' +[ ! -x /usr/bin/yay ] && [ -x /usr/bin/paru ] && alias yay='paru' + +# Common use +alias grubup="sudo update-grub" +alias fixpacman="sudo rm /var/lib/pacman/db.lck" +alias tarnow='tar -acf ' +alias untar='tar -zxvf ' +alias wget='wget -c ' +alias rmpkg="sudo pacman -Rdd" +alias psmem='ps auxf | sort -nr -k 4' +alias psmem10='ps auxf | sort -nr -k 4 | head -10' +alias upd='/usr/bin/update' +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 +alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages + +# Get fastest mirrors +alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --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" +alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist" + +# 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" + +## Run paleofetch if session is interactive +if status --is-interactive + neofetch end diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables index 1b4481a..2cd2698 100644 --- a/.config/fish/fish_variables +++ b/.config/fish/fish_variables @@ -1,5 +1,7 @@ # This file contains fish universal variable definitions. # VERSION: 3.0 +SETUVAR __done_min_cmd_duration:10000 +SETUVAR __done_notification_urgency_level:low SETUVAR __fish_initialized:3100 SETUVAR fish_color_autosuggestion:555\x1ebrblack SETUVAR fish_color_cancel:\x2dr diff --git a/.fish_profile b/.fish_profile new file mode 100644 index 0000000..71c66ea --- /dev/null +++ b/.fish_profile @@ -0,0 +1,16 @@ +set -gx GPG_TTY (tty) + +alias vim=/usr/bin/nvim +alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME' +alias ssh="kitty +kitten ssh" +# Edgeware Specific Environment +alias docker-run=$HOME/workspace/monorepo/docker.sh +#set -x PIP_INDEX_URL https://pypi.edgeware.tv/simple/ +set -x MONOREPO_ROOT $HOME/workspace/monorepo +set -x AWS_PROFILE streampilot-dev + +# Faster Docker Builds +set -x DOCKER_BUILDKIT 1 + +# Local Kubernetes Alias +alias k='kubectl --kubeconfig $HOME/.kube/config-k3s'