summaryrefslogtreecommitdiff
path: root/.zshrc
blob: afb0b9ea51a8dbbd5422a060239d963bced17cb2 (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
# 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
PATH=$PATH:$HOME/.local/bin
PATH=$PATH:$HOME/.symfony5/bin
PATH=$PATH:$HOME/.local/share/yabridge

# 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 other usefull aliases
alias neo="pfetch"
alias rf="rm -fr" # remove le french hon hon hon
alias config="/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME"
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 $HOME/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
    source /usr/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" ranger

# 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/pfetch_logos"

_wine() {
    export WINEPREFIX="$HOME/.wine$1"
    export WINEARCH="win$1"
    /usr/bin/wine "${@:2}"
    unset WINEARCH
    unset WINEPREFIX
}

alias wine32="_wine 32"
alias wine64="_wine 64"

_winetricks() {
    export WINEPREFIX="$HOME/.wine$1"
    export WINEARCH="win$1"
    /usr/bin/winetricks "${@:2}"
    unset WINEARCH
    unset WINEPREFIX
}

alias winetricks32="_winetricks 32"
alias winetricks64="_winetricks 64"

proton() {
    if [ $# -lt 1 ]; then
        return
    fi
    export STEAM_TMP_DIR="$HOME/.local/share/Steam/steamapps/compatdata/$1"
    mkdir -p "$STEAM_TMP_DIR"
    export STEAM_COMPAT_DATA_PATH="$STEAM_TMP_DIR"
    export STEAM_COMPAT_CLIENT_INSTALL_PATH="$STEAM_TMP_DIR"
    protonenv "$1"
    $HOME/.local/share/Steam/steamapps/common/Proton\ -\ Experimental/proton run ${@:2}
}

protontricks() {
    if [ $# -lt 1 ]; then
        return
    fi
    export STEAM_TMP_DIR="$HOME/.local/share/Steam/steamapps/compatdata/$1"
    mkdir -p "$STEAM_TMP_DIR"
    export WINEPREFIX="$STEAM_TMP_DIR"
    winetricks ${@:2}
}

pfetch

PWD="$HOME"