summaryrefslogtreecommitdiff
path: root/home/config/zsh/zshrc
blob: 29917c909e9ad9c9fb7fece7d378bec6cd345f62 (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# Zsh shell initalization file

# Export 'SHELL' to child processes
export SHELL

if [[ $- != *i* ]]
then
    # We are being invoked from a non-interactive shell.  If this
    # is an SSH session (as in "ssh host command"), source
    # /etc/profile so we get PATH and other essential variables.
    [[ -n "$SSH_CLIENT" ]] && source /etc/profile

    # Don't do anything else.
    return
fi

PATH=$PATH:$HOME/.cargo/bin

# vim mode >:)
# no ryan i am not copying you
set -o vi
set show-mode-in-prompt on

# Set shell prompt using starship
eval "$(starship init zsh)"

# Set guix reconfigure aliases
alias reconfigure-system="sudo -E guix system -L $HOME/.config/guix/modules reconfigure $HOME/.config/guix/systems/$(hostname).scm"
alias reconfigure-user="guix home -L $HOME/.config/guix/modules reconfigure $HOME/.config/guix/home/home.scm && home-manager switch"

# Set other usefull aliases
alias neo="pfetch"
alias rf="rm -fr" # remove le french hon hon hon
alias ls="ls --color=auto"
alias ip="ip --color=auto"
alias grep="grep --color=auto"
alias diff="diff --color=auto"
alias ccat="highlight --out-format=ansi"
alias vim="nvim"
alias show="kitten icat --align=left"
alias ssh="kitten ssh"

# Have manpages use colors
export LESS_TERMCAP_md=$'\e[1;36m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[1;92m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;35m'
export GROFF_NO_SGR=1

.reload() {
    # Enable zsh auto suggestions
    autoload compinit && compinit
    source $GUIX_PROFILE/share/zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
    source $GUIX_PROFILE/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
    ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#696e8a"
    ZSH_AUTOSUGGEST_STRATEGY=(completion history)
}

.reload

# Enable zsh keybinds for home, end, and other movement keybinds
bindkey "\e[1;5D" backward-word
bindkey "\e[1;5C" forward-word
bindkey "\e[3;5~" kill-word
bindkey "\C-_"    backward-kill-word
bindkey "\e[3~" delete-char
bindkey "\e[H"  beginning-of-line
bindkey "\e[F"  end-of-line
bindkey "\e\d"  undo

.ranger() {
    ranger --choosedir=$HOME/.rangerdir < $TTY
    LASTDIR=$(cat $HOME/.rangerdir)
    cd "$LASTDIR"
    zle reset-prompt
}

zle -N reload .reload
bindkey "^R" reload
zle -N ranger .ranger
bindkey "^F" range

# GPG SETUP FOR SSH
export GPG_TTY=$(tty)
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)

# ricing
export PF_CUSTOM_LOGOS="/home/freya/.config/zsh/pfetch_logos"

export WINEARCH=win32
export WINEPREFIX=/home/freya/.wine

pfetch