Skip to content

Instantly share code, notes, and snippets.

@kkoziarski
Last active February 27, 2020 21:21
Show Gist options
  • Save kkoziarski/c6256936421c55b74bb3047e8b821638 to your computer and use it in GitHub Desktop.
Save kkoziarski/c6256936421c55b74bb3047e8b821638 to your computer and use it in GitHub Desktop.
WSL setup oh-my-zsh

setup WSL

wsl --set-default Ubuntu-18.04

Install oh-my-posh

sudo apt-get install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Install powerline-go

sudo apt install golang-go
go get -u github.com/justjanne/powerline-go

For bash

Add this to your ~/.bashrc

GOPATH=$HOME/go
function _update_ps1() {
    PS1="$($GOPATH/bin/powerline-go -error $?)"
}
if [ "$TERM" != "linux" ] && [ -f "$GOPATH/bin/powerline-go" ]; then
    PROMPT_COMMAND="_update_ps1; $PROMPT_COMMAND"
fi

For zsh

Add this to your ~/.zshrc

export GOPATH=$HOME/go

function powerline_precmd() {
    PS1="$($GOPATH/bin/powerline-go -error $? -shell zsh -modules venv,user,ssh,cwd,perms,git,hg,jobs,docker,exit)"
}

function install_powerline_precmd() {
  for s in "${precmd_functions[@]}"; do
    if [ "$s" = "powerline_precmd" ]; then
      return
    fi
  done
  precmd_functions+=(powerline_precmd)
}

if [ "$TERM" != "linux" ]; then
    install_powerline_precmd
fi

Disable theme

Update ~/.zshrc

nano ~/.zshrc

Update git config

git config --global -e
# This is Git's per-user configuration file.
[user]
name = Krzysztof Koziarski
email = krzyhook@gmail.com
[push]
default = tracking
[alias]
lgg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
lg = !git lgg -10
co = checkout
st = status
ci = commit
ciam = "!f() { git add -A && git commit -m \"$@\"; }; f"
cim = "!f() { git commit -m \"$@\"; }; f"
amend = commit --amend --no-edit
br = branch
pl = pull --ff-only
plr = pull --rebase
df = diff
dfs = diff --staged
dt = difftool
logg = log --graph --decorate --oneline --abbrev-commit --all
stats = log -10 --dirstat=files,1,cumulative --ignore-blank-lines --abbrev-commit --oneline --graph --decorate
prune = fetch --prune
undo = reset --soft HEAD~1
stash-all = stash save --include-untracked
syntax on
" pokazuje menu z lista plikow itp
set wildmenu
"sam zmienia katalogi na te w kotrych edytuje pliki
set autochdir
set autoindent
set history=1000
set title
set tabpagemax=50
set ruler
" autocmd FileType php set omnifunc=phpcomplete#CompletePHP
colorscheme jellybeans
"filetype plugin indent on
set t_Co=256
"for python developement
set tabstop=8
set expandtab
set shiftwidth=4
set softtabstop=4
set mouse=a
nmap <F7> gT
nmap <F9> gt
autocmd TabEnter,BufEnter *.php nmap <F8> :!php -l -d display_errors=on %<CR>
autocmd TabEnter,BufEnter *.pl,*.pm nmap <F8> :!perl -c %<cr>
autocmd TabEnter,BufEnter *.php nmap <F6> :!php %<CR>
autocmd TabEnter,BufEnter *.pl nmap <F6> :!perl %<CR>
autocmd TabEnter,BufEnter *.sh nmap <F6> :!./%<CR>
nmap <F2> :w!<CR>
set pastetoggle=<F10>
set cursorline
"if You serach for all lowercase, then it is case-insensitive
set ignorecase
" else: case sensitive :)
set smartcase
" higlight searches during typing
set incsearch
" get rid of stupid F1 key ;)
inoremap <F1> <ESC>
nnoremap <F1> <ESC>
vnoremap <F1> <ESC>
"select just pasted text
nmap gp `[v`]
set background=dark
noremap H ^
noremap L $
# If you come from bash you might have to change your $PATH.
export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH="/home/krzyhook/.oh-my-zsh"
export GOPATH=$HOME/go
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
# ZSH_THEME="agnoster"
ZSH_THEME=""
# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in ~/.oh-my-zsh/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion.
# Case-sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to automatically update without prompting.
# DISABLE_UPDATE_PROMPT="true"
# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13
# Uncomment the following line if pasting URLs and other text is messed up.
# DISABLE_MAGIC_FUNCTIONS=true
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# You can set one of the optional three formats:
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# or set a custom format using the strftime function format specifications,
# see 'man strftime' for details.
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load?
# Standard plugins can be found in ~/.oh-my-zsh/plugins/*
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
docker
docker-compose
kubectl
kube-ps1
zsh-interactive-cd
)
function powerline_precmd() {
#PS1="$($GOPATH/bin/powerline-go -error $? -shell zsh)"
#host
PS1="$($GOPATH/bin/powerline-go -error $? -shell zsh -modules venv,user,ssh,cwd,perms,git,hg,jobs,docker,exit)"
}
function install_powerline_precmd() {
for s in "${precmd_functions[@]}"; do
if [ "$s" = "powerline_precmd" ]; then
return
fi
done
precmd_functions+=(powerline_precmd)
}
if [ "$TERM" != "linux" ]; then
install_powerline_precmd
fi
source $ZSH/oh-my-zsh.sh
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
alias zshconfig="nano ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
alias docker.exe=docker
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment