summaryrefslogtreecommitdiff
path: root/dot-config/fish/config.fish
blob: f8fcc91df52fca41177c9620d5e773de67204999 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Setup Homebrew
# Source of code: https://github.com/orgs/Homebrew/discussions/4412#discussioncomment-8651316
if test -d /home/linuxbrew/.linuxbrew # Linux
    set -gx HOMEBREW_PREFIX "/home/linuxbrew/.linuxbrew"
    set -gx HOMEBREW_CELLAR "$HOMEBREW_PREFIX/Cellar"
    set -gx HOMEBREW_REPOSITORY "$HOMEBREW_PREFIX/Homebrew"
else if test -d /opt/homebrew # MacOS
    set -gx HOMEBREW_PREFIX /opt/homebrew
    set -gx HOMEBREW_CELLAR "$HOMEBREW_PREFIX/Cellar"
    set -gx HOMEBREW_REPOSITORY "$HOMEBREW_PREFIX/homebrew"
    # Add SSH key to ssh-agent and store passphrase
    # see https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
    ssh-add --apple-use-keychain ~/.ssh/id_ed25519
end
fish_add_path -gP "$HOMEBREW_PREFIX/bin" "$HOMEBREW_PREFIX/sbin"
! set -q MANPATH; and set MANPATH ''
set -gx MANPATH "$HOMEBREW_PREFIX/share/man" $MANPATH
! set -q INFOPATH; and set INFOPATH ''
set -gx INFOPATH "$HOMEBREW_PREFIX/share/info" $INFOPATH

# Hook direnv
# Source: https://direnv.net/docs/hook.html
direnv hook fish | source

# the reverse of fish_remove_path
# fish doesn't provide this out of the box, so we provide our own
# see https://fishshell.com/docs/current/cmds/fish_add_path.html#index-8 for fish_add_path
# source: https://github.com/fish-shell/fish-shell/issues/8604#issuecomment-1169638533
function fish_remove_path
    if set -l index (contains -i "$argv" $fish_user_paths)
        set -e fish_user_paths[$index]
        echo "Removed $argv from the path"
    end
end

# Kitty shell alias
alias ks="kitten ssh"

# Nvim alias
alias v="nvim"

# Starship
starship init fish | source