You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

156 lines
4.0 KiB

#
# Using Oh My ZSH
# https://github.com/robbyrussell/oh-my-zsh
#
export ZSH=$HOME/.oh-my-zsh
# Detect if we're running in cygwin
local cygwin="$(env | grep cygdrive &>/dev/null && echo $?)"
if [ -n "${cygwin}" ] && [[ "${cygwin}" == "0" ]]; then
export CSYSTEM="CSYS"
fi
# Best theme ever!
ZSH_THEME="ys"
# System variables for tmux configuration
export ZSH_TMUX_AUTOSTART=false
export ZSH_TMUX_AUTOSTART_ONCE=true
# Used zsh plugins
plugins=(
fedora
systemd
common-aliases
history
per-directory-history
screen
tmux
docker
docker-compose
wd
git
git-extras
mercurial
zsh-completions
)
# Let's update and do other goodness
source $ZSH/oh-my-zsh.sh
# Make sure we're in en_us UTF8
export LANG=en_US.UTF-8
# All Hail EMACS
export EDITOR='emacsclient -a vim'
# Make sure ~/,local/bin and ~/bin are on the path
export PATH="$$HOME/.local/bin:$HOME/bin:$PATH"
# Add something to something else
# $1 is the original value being appended to
# $2 is the seperator
# $3 is what we should add as long as it has some value
function append_if_exists() {
result="$1"
if [ ! -z "$1" ] && [ ! -z "$2" ] && [ ! -z "$3" ]; then
result="${result}${2}${3}"
fi
echo $result
}
alias fprobe="ffprobe -v quiet -print_format json -show_format -show_streams"
# Alias to emacsclient
# fall back on vim if emacs isn't started
alias ec="emacsclient -a vim"
# Don't use the embedded shell time. Use GNU time.
alias time="/usr/bin/time"
# Alias for GNU Time with pretty output.
alias ti="/usr/bin/time --format='Command:%C \nElapsed Time: %E\nUser Time: %U\nSystem Time: %S\nCPU: %P\nMax Memory: %MKb\nAverage Memory: %KKb\nAverage Unshared Memory: %DKb\nNumber of Swaps: %W\nNumber of Waits: %w\nExit Status: %x'"
if [ -d "$HOME/.linuxbrew" ]; then
export PATH="$HOME/.linuxbrew/bin:$PATH"
export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH"
export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH"
fi
# Go Setup
export GOPATH="$HOME/go"
export PATH="$PATH:$HOME/go/bin"
# Rust Setup
export CARGO_HOME="$HOME/.cargo"
export PATH="$PATH:$CARGO_HOME/bin"
# CL Setup
# if SBCL is installed point to that path
sbcl_bin="$(which sbcl 2> /dev/null | head -n 1)"
if [[ ${sbcl_bin:0:4} != "sbcl" ]]; then
# Handle a case where sbcl is not installed
CL_BIN=$sbcl_bin
fi
if [ -f "$HOME/.update_dotfiles.sh" ]; then
/usr/bin/env sh $HOME/.update_dotfiles.sh
fi
if [ -d "$HOME/.ansible" ]; then
export ANSIBLE_CONFIG="$HOME/.ansible/ansible.cfg"
fi
# rbenv setup
# # doesn't work under msys
if [ -d "$HOME/.rbenv" ] && [ -z "$MSYSTEM" ]; then
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
fi
# rust setup
if [ -d "$HOME/.cargo" ]; then
export PATH="$HOME/.cargo/bin:$PATH"
fi
if [ -d "$HOME/.ansible" ]; then
export ANSIBLE_CONFIG="$HOME/.ansible/ansible.cfg"
fi
# A function that does the automatic path translation for a windows emacs
cygwin_emacsclient(){
# Loop over all the input variables and convert their paths
declare -a args=()
for arg in $@
do
win_path="$(cygpath -p -w $arg)"
args=("${args[@]}" "${win_path}")
done
# Execute emacsclient with the correct paths
emacsclient -a vim $args[@]
}
# Cygwin Specific Configuration
if [ -n "${CSYSTEM}" ] && [[ "${CSYSTEM}" == "CSYS" ]]; then
# Configure emacsclient to get the correct paths
emacs_path="$(which emacs)"
if [[ $emacs_path == /cygdrive* ]]; then
alias ec=cygwin_emacsclient
fi
fi
# MSYS Specific Configuration
if [ -n "$MSYSTEM" ] && [[ "$MSYSTEM" == "MSYS" ]]; then
# Make sure msys has our CL on the path
export PATH=$(append_if_exists $PATH ":" $(dirname "$CL_BIN"))
fi
export PATH="/usr/share/haxe/lib:$PATH"
# opam configuration
test -r /home/sothr/.opam/opam-init/init.zsh && . /home/sothr/.opam/opam-init/init.zsh > /dev/null 2> /dev/null || true
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/home/sothr/.sdkman"
[[ -s "/home/sothr/.sdkman/bin/sdkman-init.sh" ]] && source "/home/sothr/.sdkman/bin/sdkman-init.sh"