-
-
Save prabirshrestha/279d8b179d9353fe8694 to your computer and use it in GitHub Desktop.
| # curl -Lk https://gist.githubusercontent.com/prabirshrestha/279d8b179d9353fe8694/raw/.bash_profile -o ~/.bash_profile | |
| [[ -s ~/.nvm/nvm.sh ]] && . ~/.nvm/nvm.sh # This loads NVM | |
| export PATH="$HOME/.cargo/bin:$HOME/go/bin:$HOME/Library/Python/3.7/bin:$PATH" | |
| export PATH="$HOME/.config/nvim/plugins/vim-themis/bin:$PATH" | |
| stty -ixon | |
| alias pbcopy='xsel --clipboard --input' | |
| alias pbpaste='xsel --clipboard --output' | |
| # alias | |
| alias ls='ls -Gp' | |
| alias vi='nvim' | |
| alias v='vim' | |
| # git alias | |
| alias g='git' | |
| alias ga='git add' | |
| alias gb='git branch' | |
| alias gba='git branch -a' | |
| alias gca='git commit -a' | |
| alias gclean='git clean -xdf' | |
| alias gcm='git checkout master' | |
| alias gco='git checkout' | |
| alias gcp='git cherry-pick' | |
| alias gf='git fetch' | |
| alias gl='git log --oneline --graph --decorate' | |
| alias gm='git merge' | |
| alias gmt='git mergetool' | |
| alias gp='git push origin HEAD' | |
| alias gs='git status' | |
| alias gup='git fetch && git rebase' | |
| gpr() { | |
| git fetch origin pull/${1}/head:pr${1} | |
| git checkout pr${1} | |
| } | |
| # fe [FUZZY PATTERN] - Open the selected file with the default editor | |
| # - Bypass fuzzy finder if there's only one match (--select-1) | |
| # - Exit if there's no match (--exit-0) | |
| fe() { | |
| local files | |
| IFS=$'\n' files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0)) | |
| [[ -n "$files" ]] && ${EDITOR:-vim} "${files[@]}" | |
| } | |
| # fd - cd to selected directory | |
| fd() { | |
| local dir | |
| dir=$(find ${1:-.} -path '*/\.*' -prune \ | |
| -o -type d -print 2> /dev/null | fzf +m) && | |
| cd "$dir" | |
| } | |
| # fcs - get git commit sha | |
| # example usage: git rebase -i `fcs` | |
| fcs() { | |
| local commits commit | |
| commits=$(git log --color=always --pretty=oneline --abbrev-commit --reverse) && | |
| commit=$(echo "$commits" | fzf --tac +s +m -e --ansi --reverse) && | |
| echo -n $(echo "$commit" | sed "s/ .*//") | |
| } | |
| # fstash - easier way to deal with stashes | |
| # type fstash to get a list of your stashes | |
| # enter shows you the contents of the stash | |
| # ctrl-d shows a diff of the stash against your current HEAD | |
| # ctrl-b checks the stash out as a branch, for easier merging | |
| fstash() { | |
| local out q k sha | |
| while out=$( | |
| git stash list --pretty="%C(yellow)%h %>(14)%Cgreen%cr %C(blue)%gs" | | |
| fzf --ansi --no-sort --query="$q" --print-query \ | |
| --expect=ctrl-d,ctrl-b); | |
| do | |
| mapfile -t out <<< "$out" | |
| q="${out[0]}" | |
| k="${out[1]}" | |
| sha="${out[-1]}" | |
| sha="${sha%% *}" | |
| [[ -z "$sha" ]] && continue | |
| if [[ "$k" == 'ctrl-d' ]]; then | |
| git diff $sha | |
| elif [[ "$k" == 'ctrl-b' ]]; then | |
| git stash branch "stash-$sha" $sha | |
| break; | |
| else | |
| git stash show -p $sha | |
| fi | |
| done | |
| } |
| [core] | |
| # git config --global core.commentchar ; | |
| editor = vim | |
| [diff] | |
| tool = kdiff3 | |
| [difftool "kdiff3"] | |
| path = c:/Program Files/KDiff3/kdiff3.exe | |
| #path = /Applications/kdiff3.app/Contents/MacOS/kdiff3 | |
| [merge] | |
| tool = kdiff3 | |
| [mergetool "kdiff3"] | |
| path = c:/Program Files/KDiff3/kdiff3.exe | |
| #path = /Applications/kdiff3.app/Contents/MacOS/kdiff3 | |
| keepBackup = false | |
| trustExitCode = false |
| Font=Powerline Consolas | |
| ForegroundColour=131,148,150 | |
| BackgroundColour=0,43,54 | |
| CursorColour=220,50,47 | |
| Black=7,54,66 | |
| BoldBlack=0,43,54 | |
| Red=220,50,47 | |
| BoldRed=203,75,22 | |
| Green=133,153,0 | |
| BoldGreen=88,110,117 | |
| Yellow=181,137,0 | |
| BoldYellow=101,123,131 | |
| Blue=38,139,210 | |
| BoldBlue=131,148,150 | |
| Magenta=211,54,130 | |
| BoldMagenta=108,113,196 | |
| Cyan=42,161,152 | |
| BoldCyan=147,161,161 | |
| White=238,232,213 | |
| BoldWhite=253,246,227 | |
| Transparency=low | |
| FontHeight=12 | |
| Scrollbar=none |
| # curl https://gist.githubusercontent.com/prabirshrestha/279d8b179d9353fe8694/raw/.tmux.conf -o ~/.tmux.conf | |
| bind r source-file ~/.tmux.conf \; display "Reloaded!" | |
| # Change the prefix to Ctrl+a | |
| unbind C-b | |
| set -g prefix C-a | |
| bind C-a send-prefix | |
| bind-key -n C-Space send-keys C-Space | |
| # enable pretty colors | |
| set-option -ga terminal-overrides ",xterm-256color:Tc" | |
| # increase scroll-back history | |
| set -g history-limit 5000 | |
| # use vim key bindings | |
| setw -g mode-keys vi | |
| # start window index at 1 | |
| set -g base-index 1 | |
| # start pane index at 1 | |
| set -g pane-base-index 1 | |
| # change the default delay to make it more responsive | |
| set -sg escape-time 1 | |
| # Splitting panes | |
| bind \\ split-window -h | |
| bind - split-window -v | |
| # pane movements | |
| bind h select-pane -L | |
| bind j select-pane -D | |
| bind k select-pane -U | |
| bind l select-pane -R | |
| # pane resizing | |
| bind H resize-pane -L 5 | |
| bind J resize-pane -D 5 | |
| bind K resize-pane -U 5 | |
| bind L resize-pane -R 5 | |
| # pane resizing | |
| bind -r H resize-pane -L 5 | |
| bind -r J resize-pane -D 5 | |
| bind -r K resize-pane -U 5 | |
| bind -r L resize-pane -R 5 | |
| # window movement | |
| bind -r C-h select-window -t:- | |
| bind -r C-l select-window -t:+ | |
| # remapping copy paste to vim | |
| # unbind [ | |
| bind Escape copy-mode | |
| unbind p | |
| bind p paste-buffer | |
| # bind -t vi-copy 'v' begin-selection | |
| # bind -t vi-copy 'y' copy-selection | |
| # setw -g monitory-activity on | |
| set -g visual-activity on | |
| # Enable mouse support in ~/.tmux.conf | |
| set -g mouse on | |
| set-option -g renumber-windows on | |
| setw -g aggressive-resize on | |
| # Status bar design | |
| # status line | |
| set -g status-justify left | |
| set -g status-bg default | |
| set -g status-fg colour12 | |
| set -g status-interval 2 | |
| # window status | |
| setw -g window-status-format " #F#I:#W#F " | |
| setw -g window-status-current-format " #F#I:#W#F " | |
| setw -g window-status-format "#[fg=magenta]#[bg=black] #I #[bg=cyan]#[fg=colour8] #W " | |
| setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W " | |
| # Info on left (I don't have a session display for now) | |
| set -g status-left '' | |
| # loud or quiet? | |
| set-option -g visual-activity off | |
| set-option -g visual-bell off | |
| set-option -g visual-silence off | |
| set-window-option -g monitor-activity off | |
| set-option -g bell-action none | |
| set -g default-terminal "screen-256color" | |
| # The modes { | |
| setw -g clock-mode-colour colour135 | |
| # } | |
| # The statusbar { | |
| set -g status-position bottom | |
| set -g status-left '' | |
| set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m #[fg=colour233,bg=colour245,bold] %H:%M:%S ' | |
| set -g status-right-length 50 | |
| set -g status-left-length 20 | |
| setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F ' | |
| setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F ' | |
| # } |
| " curl -Lk https://bit.ly/prabir-vimrc -o ~/.vimrc | |
| " to use existing vim configuration as neovim configuration | |
| " ln -s ~/.vimrc ~/.config/nvim/init.vim | |
| " For windows download lua binaries from https://sourceforge.net/projects/luabinaries/files/5.3.3/Windows%20Libraries/Dynamic/lua-5.3.3_Win64_dll11_lib.zip/download | |
| " Fro mac: brew install vim --HEAD --with-override-system-vi --with-luajit --with-python3 --with-tcl --with-gettext --enable-gui --with-client-server | |
| set nocompatible | |
| set encoding=utf-8 | |
| scriptencoding utf-8 | |
| set fileformats=unix,mac,dos | |
| set termencoding=utf-8 | |
| syntax on | |
| filetype plugin indent on | |
| set backspace=indent,eol,start | |
| set nobackup noswapfile | |
| let mapleader = ' ' | |
| nnoremap ; : | |
| " vimrc {{{ | |
| nnoremap <leader>ev :e $MYVIMRC<cr> | |
| nnoremap <leader>sv :source $MYVIMRC<cr> | |
| " }}} | |
| let s:settings = { | |
| \ 'data_dir': expand('~/.config/nvim/data'), | |
| \ 'plugins_dir': expand('~/.config/nvim/plugins'), | |
| \ 'vim_plug_script_path': expand('~/.config/nvim/plug.vim'), | |
| \ 'auto_install_plugins': 0, | |
| \ } | |
| let s:settings['vim_plug_script_path'] = expand('~/.config/nvim/plug.vim') | |
| let s:settings['plugins_dir'] = expand('~/.config/nvim/plugins') | |
| if !filereadable(s:settings['vim_plug_script_path']) | |
| if !executable('curl') | echom 'curl required to download vim-plug' | endif | |
| if has('win32') && &shellslash | |
| let s:settings['vim_plug_script_path'] = substitute(s:settings['vim_plug_script_path'], '/', '\\', 'g') | |
| endif | |
| execute 'silent !curl -fkLo "' . s:settings['vim_plug_script_path'] . '" --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' | |
| let s:settings['auto_install_plugins'] = 1 | |
| endif | |
| execute 'source ' . s:settings['vim_plug_script_path'] | |
| call plug#begin(s:settings['plugins_dir']) | |
| Plug 'iCyMind/NeoSolarized' | |
| Plug 'lifepillar/vim-solarized8' | |
| Plug 'luochen1990/rainbow' | |
| Plug 'thinca/vim-themis', { 'on': [] } | |
| Plug 'sheerun/vim-polyglot' | |
| Plug 'DataWraith/auto_mkdir' | |
| Plug 'Lokaltog/vim-easymotion', { 'on': ['<Plug>(easymotion-s)'] } | |
| Plug 'airblade/vim-rooter' | |
| Plug 'cohama/lexima.vim' | |
| Plug 'justinmk/vim-gtfo' | |
| Plug 'lambdalisue/gina.vim' | |
| Plug 'cohama/agit.vim', { 'on': ['Agit', 'AgitFile'] } | |
| Plug 'mattn/emmet-vim' | |
| Plug 'sgur/vim-editorconfig' | |
| Plug 'tpope/vim-commentary' | |
| Plug 'scrooloose/nerdtree', { 'on': ['NERDTreeFind', 'NERDTreeToggle'] } | |
| Plug 'diepm/vim-rest-console' | |
| Plug 'mhinz/vim-grepper', { 'on': ['Grepper', '<plug>(GrepperOperator)'] } | |
| Plug 'prabirshrestha/callbag.vim' | |
| Plug 'prabirshrestha/async.vim' | |
| Plug 'prabirshrestha/vim-lsp' | |
| Plug 'mattn/vim-lsp-settings' | |
| Plug 'mattn/vim-lsp-icons' | |
| Plug 'prabirshrestha/asyncomplete.vim' | |
| Plug 'prabirshrestha/asyncomplete-lsp.vim' | |
| Plug 'prabirshrestha/asyncomplete-file.vim' | |
| Plug 'yami-beta/asyncomplete-omni.vim' | |
| Plug 'prabirshrestha/asyncomplete-buffer.vim' | |
| Plug 'Shougo/neco-syntax' | Plug 'prabirshrestha/asyncomplete-necosyntax.vim' | |
| Plug 'Shougo/neco-vim' | Plug 'prabirshrestha/asyncomplete-necovim.vim' | |
| Plug 'hrsh7th/vim-vsnip' | |
| Plug 'hrsh7th/vim-vsnip-integ' | |
| Plug 'prabirshrestha/vsnip-snippets' | |
| Plug 'prabirshrestha/quickpick.vim' | |
| Plug 'prabirshrestha/quickpick-colorschemes.vim' | |
| Plug 'prabirshrestha/quickpick-filetypes.vim' | |
| Plug 'prabirshrestha/quickpick-npm.vim' | |
| Plug 'liuchengxu/vim-clap', { 'do': ':Clap install-binary' } | |
| Plug 'ctrlpvim/ctrlp.vim' | |
| Plug 'dbeecham/ctrlp-commandpalette.vim', { 'on': ['CtrlPCommandPalette'] } | |
| Plug 'okcompute/vim-ctrlp-session' | |
| if has('python') || has('python3') | Plug 'FelikZ/ctrlp-py-matcher' | endif | |
| Plug 'mattn/vim-fz' | |
| Plug 'm-pilia/vim-yggdrasil' | |
| Plug 'mhinz/vim-lookup', { 'for': 'vim' } | |
| Plug 'tpope/vim-markdown' | |
| Plug 'markonm/traces.vim' | |
| Plug 'troydm/zoomwintab.vim' | |
| Plug 'prabirshrestha/split-term.vim', { 'branch': 'vim8', 'on': ['Term', 'VTerm', 'TTerm'] } | |
| if has('nvim') | Plug 'equalsraf/neovim-gui-shim' | endif | |
| call plug#end() | |
| if s:settings['auto_install_plugins'] | |
| autocmd VimEnter * PlugClean! | PlugUpdate --sync | |
| endif | |
| " ui | |
| let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum" | |
| let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum" | |
| if has('termguicolors') | set termguicolors | endif | |
| set background=dark | |
| silent! colorscheme solarized8 | |
| if has('directx') | set renderoptions=type:directx | endif | |
| if has('gui_running') | set guioptions=Mc! | endif | |
| if exists('g:neovide') | |
| set guifont=Fira\ Code\ Retina:h18 | |
| else | |
| set guifont=Fira\ Code\ Retina:h12 | |
| endif | |
| set mouse=a " automatically enable mouse usage | |
| set noerrorbells visualbell t_vb= " no annoying sound on errors | |
| set shortmess+=OI | |
| set nu " set line numbers on | |
| set completeopt+=noinsert,noselect | |
| set completeopt-=popup | |
| set wildmenu " show list instead of just completing | |
| set nowrap " Do not wrap long lines | |
| set autoindent " Indent at the same level of the previous line | |
| set shiftwidth=4 " Use indents of 4 spaces | |
| set expandtab " Tabs are spaces, not tabs | |
| set tabstop=4 " An indentation every four columns | |
| set softtabstop=4 " Let backspace delete indent | |
| set nojoinspaces " Prevents inserting two spaces after punctuation on a join (J) | |
| set splitright " Puts new vertical split windows to the right of the current | |
| set splitbelow " Puts new split windows to the bottom of the current | |
| set pastetoggle=<F12> " paste toggle (sane indentation pastes) | |
| set signcolumn=no " always disable signcoumn | |
| set cmdheight=2 | |
| " Move up and down in autocomplete with <c-j> and <c-k> | |
| inoremap <expr> <C-j> ("\<C-n>") | |
| inoremap <expr> <C-k> ("\<C-p>") | |
| " Highlight problematic whitespace | |
| set listchars=tab:›\ ,trail:•,extends:#,nbsp:. | |
| set showbreak=··· | |
| set incsearch " find as you type | |
| set hlsearch " highlight search terms | |
| set ignorecase " case in-sensitive search | |
| set smartcase " case sensitive when upper case present | |
| " Clear current search highlighting by fast // | |
| nmap <silent> // :nohlsearch<CR> | |
| set clipboard+=unnamedplus " always use system clipboard | |
| " Visual shifting (does not exit Visual mode) | |
| vnoremap < <gv | |
| vnoremap > >gv | |
| " Quit | |
| inoremap <C-Q> <esc>:q<cr> | |
| nnoremap <C-Q> :q<cr> | |
| vnoremap <C-Q> <esc> | |
| nnoremap <Leader>q :q<cr> | |
| nnoremap <Leader>Q :qa!<cr> | |
| nnoremap <c-s> :w<CR> | |
| inoremap <c-s> <esc>:w<CR>i | |
| nnoremap <silent> <leader>t2 :setl shiftwidth=2 softtabstop=2<CR> | |
| nnoremap <silent> <leader>t4 :setl shiftwidth=4 softtabstop=4<CR> | |
| nnoremap <silent> <leader>t8 :setl shiftwidth=8 softtabstop=8<CR> | |
| " Insert mode: | |
| inoremap <M-h> <Esc><c-w>h | |
| inoremap <M-j> <Esc><c-w>j | |
| inoremap <M-k> <Esc><c-w>k | |
| inoremap <M-l> <Esc><c-w>l | |
| " Visual mode: | |
| vnoremap <M-h> <Esc><c-w>h | |
| vnoremap <M-j> <Esc><c-w>j | |
| vnoremap <M-k> <Esc><c-w>k | |
| vnoremap <M-l> <Esc><c-w>l | |
| " Normal mode: | |
| nnoremap <M-h> <c-w>h | |
| nnoremap <M-j> <c-w>j | |
| nnoremap <M-k> <c-w>k | |
| nnoremap <M-l> <c-w>l | |
| " vim-grepper {{{ | |
| nnoremap <Leader>s :Grepper -cword -highlight<CR> | |
| " }}} | |
| " vim-easymotion {{{ | |
| let g:EasyMotion_keys='hklyuiopnm,qwertzxcvbasdgjf' | |
| nmap s <Plug>(easymotion-s) | |
| " }}} | |
| " gina.vim {{{ | |
| if has_key(g:plugs, 'gina.vim') | |
| let g:gina#command#blame#formatter#format = "%in %au %=on %ti" | |
| nnoremap <leader>gb :Gina blame :<CR> | |
| nnoremap <leader>gbr :Gina branch<CR> | |
| nnoremap <leader>gd :Gina diff<CR> | |
| nnoremap <leader>gl :Gina log<CR> | |
| nnoremap <leader>gs :Gina status<CR> | |
| nnoremap <leader>gc :Gina commit<CR> | |
| let s:gina_cmd_opt = {'noremap': 1, 'silent': 1} | |
| call gina#custom#mapping#nmap('blame', 'dd', '<Plug>(gina-diff-tab)') | |
| call gina#custom#mapping#nmap('blame', 'ee', '<Plug>(gina-blame-echo)') | |
| call gina#custom#mapping#nmap('log', 'dd', '<Plug>(gina-diff-tab)') | |
| call gina#custom#mapping#nmap('status', '<C-]>', ':<C-U>Gina commit<CR>', s:gina_cmd_opt) | |
| call gina#custom#mapping#nmap('/.*', 'q', ':<C-U>bd<CR>', s:gina_cmd_opt) | |
| call gina#custom#mapping#nmap('/.*', '<C-t>', '<Plug>(gina-edit-tab)') | |
| endif | |
| " }}} | |
| " ctrlp.vim and vim-fz {{{ | |
| let g:ctrlp_cache_dir = expand(s:settings['data_dir'] . '/ctrlp') | |
| let g:ctrlp_session_path = expand(s:settings['data_dir'] . './ctrlp-sessions') | |
| let g:ctrlp_clear_cache_on_exit = 0 | |
| if has('python') || has('python3') | |
| let g:ctrlp_match_func = { 'match': 'pymatcher#PyMatch' } | |
| endif | |
| if executable('gof') | |
| nmap ,f <Plug>(fz) | |
| let g:ctrlp_map = '' | |
| nnoremap <C-p> :call fz#run({ 'type': 'cmd', 'cmd': 'git ls-files' })<CR> | |
| endif | |
| nnoremap <leader>r :CtrlPMRUFiles<CR> | |
| nnoremap <leader>qf :cclose <CR>:CtrlPQuickfix<CR> | |
| " }}} | |
| " asyncomplete.vim and vim-lsp {{{ | |
| " let g:lsp_log_verbose = 1 | |
| " let g:lsp_log_file = expand(s:settings['data_dir'] . '/lsp.log') | |
| " let g:asyncomplete_log_file = expand(s:settings['data_dir'] . '/asyncomplete.log') | |
| let g:lsp_virtual_text_enabled = 0 | |
| let g:lsp_diagnostics_echo_cursor = 1 | |
| let g:vsnip_snippet_dir = expand(s:settings['plugins_dir'] . '/vsnip-snippets/vsnips') | |
| let g:asyncomplete_auto_popup = 1 | |
| " terminal vim treats c-@ as c-space, neovim doesn't understand c-@ so register both | |
| if !has('nvim') && !has('gui') | |
| imap <c-@> <Plug>(asyncomplete_force_refresh) | |
| else | |
| imap <c-space> <Plug>(asyncomplete_force_refresh) | |
| endif | |
| autocmd! CompleteDone * if pumvisible() == 0 | pclose | endif | |
| imap <expr> <Tab> pumvisible() ? "\<c-n>" : vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : "\<Tab>" | |
| smap <expr> <Tab> pumvisible() ? "\<c-n>" : vsnip#available(1) ? '<Plug>(vsnip-expand-or-jump)' : "\<Tab>" | |
| imap <expr> <S-Tab> pumvisible() ? "\<c-p>" : vsnip#available(1) ? '<Plug>(vsnip-jump-prev)' : "\<S-Tab>" | |
| smap <expr> <S-Tab> pumvisible() ? "\<c-p>" : vsnip#available(1) ? '<Plug>(vsnip-jump-prev)' : "\<S-Tab>" | |
| inoremap <expr> <CR> pumvisible() ? asyncomplete#close_popup() : "\<CR>" | |
| inoremap <expr> <C-y> pumvisible() ? asyncomplete#close_popup() : "\<C-y>" | |
| inoremap <expr> <C-e> pumvisible() ? asyncomplete#cancel_popup() : "\<C-e>" | |
| autocmd! FileType rust setlocal tabstop=4 softtabstop=4 | |
| function! s:on_lsp_buffer_enabled() abort | |
| setlocal omnifunc=lsp#complete | |
| setlocal signcolumn=yes | |
| nmap <buffer> gd <plug>(lsp-definition) | |
| nmap <buffer> gD <plug>(lsp-references) | |
| nnoremap <buffer> gs :<C-u>LspDocumentSymbol<CR> | |
| nnoremap <buffer> gS :<C-u>LspWorkspaceSymbol<CR> | |
| nnoremap <buffer> gQ :<C-u>LspDocumentFormat<CR> | |
| vnoremap <buffer> gQ :LspDocumentRangeFormat<CR> | |
| nnoremap <buffer> K :<C-u>LspHover<CR> | |
| nnoremap <buffer> <F1> :<C-u>LspImplementation<CR> | |
| nnoremap <buffer> <F2> :<C-u>LspRename<CR> | |
| nnoremap <buffer> <leader>ca :LspCodeAction<CR> | |
| xnoremap <buffer> <leader>ca :LspCodeAction<CR> | |
| autocmd! BufWritePre *.rs call execute('LspDocumentFormatSync') | |
| endfunction | |
| augroup configure_lsp | |
| au! | |
| autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled() | |
| augroup END | |
| " }}} | |
| " vim-lookup {{{ | |
| autocmd FileType vim nnoremap <buffer><silent> <c-]> :call lookup#lookup()<cr> | |
| autocmd FileType vim nnoremap <buffer><silent> <c-t> :call lookup#pop()<cr> | |
| " }}} | |
| " vim-gtfo {{{ | |
| if has('win32') | let g:gtfo#terminals = { 'win' : 'cmd /k' } | endif | |
| "}}} | |
| " vim-closetag {{{ | |
| " https://github.com/alvan/vim-closetag/issues/1 | |
| let g:closetag_filenames = "*.xml,*.html,*.html,*.tsx,*.config" | |
| au FileType xml,html,xhtml,js,typescript let b:delimitMate_matchpairs = "(:),[:],{:}" | |
| " }}} | |
| " nerdtree {{{ | |
| nnoremap <silent> <leader>e :NERDTreeFind<CR> | |
| nnoremap <silent> <leader>E :NERDTreeToggle<CR> | |
| " }}} | |
| " ctrlp-commandpalette.vim {{{ | |
| nnoremap <leader>p :CtrlPCommandPalette<cr> | |
| let g:ctrlp_commandpalette_autoload_commands = 0 | |
| let g:commandPalette = { | |
| \ 'Change filetype': 'Pfiletypes', | |
| \ 'Change Colorscheme': 'Pcolorscheme', | |
| \ 'LSP: goto definition': 'LspDefinition', | |
| \ 'GUI Font picker': 'set guifont=*', | |
| \ 'Current font name': 'set guifont?', | |
| \ 'GitFiles': 'GitFiles', | |
| \ 'Ignorecase: Toggle': 'set ignorecase!', | |
| \ 'Sessions': 'CtrlPSession', | |
| \ } | |
| " }}} | |
| if filereadable(expand('~/.vimrc.local')) | source ~/.vimrc.local | endif | |
| " vim: set sw=2 ts=2 sts=2 et tw=78 foldmarker={{{,}}} foldmethod=marker spell: |
| while true; do | |
| BAT=$(acpi | awk '{ print $4 }' | sed s/","//g) | |
| CLK=$( date +'%a %b %d %R:%S' ) | |
| VOL=$( amixer get Master | tail -1 | awk '{ print $5}' | tr -d '[]' ) | |
| xsetroot -name "Vol: $VOL | Bat: $BAT | $CLK" | |
| sleep 30s | |
| done & | |
| exec dwm |
| # curl https://gist.githubusercontent.com/prabirshrestha/279d8b179d9353fe8694/raw/.zshrc -o ~/.zshrc | |
| # Path to your oh-my-zsh installation. | |
| PROMPT='%~ %# ' | |
| unsetopt flow_control | |
| # enable vi bindings | |
| bindkey -v | |
| bindkey -M viins 'jj' vi-cmd-mode | |
| stty -ixon | |
| [[ -s ~/.nvm/nvm.sh ]] && . ~/.nvm/nvm.sh # This loads NVM | |
| export PATH="$HOME/.cargo/bin:$HOME/go/bin:$HOME/Library/Python/3.7/bin:$PATH" | |
| export PATH="$HOME/.config/nvim/plugins/vim-themis/bin:$PATH" | |
| # alias | |
| alias ls='ls -Gp' | |
| alias vi='vim' | |
| # git alias | |
| alias g='git' | |
| alias ga='git add' | |
| alias gb='git branch' | |
| alias gba='git branch -a' | |
| alias gca='git commit -a' | |
| alias gclean='git clean -xdf' | |
| alias gcm='git checkout master' | |
| alias gco='git checkout' | |
| alias gcp='git cherry-pick' | |
| alias gf='git fetch --all' | |
| alias gl='git log --oneline --graph --decorate' | |
| alias gm='git merge' | |
| alias gmt='git mergetool' | |
| alias gp='git push origin HEAD' | |
| alias gs='git status' | |
| alias gup='git fetch --all && git rebase' | |
| gpr() { | |
| git fetch origin pull/${1}/head:pr${1} | |
| git checkout pr${1} | |
| } | |
| # Configuration for Alacritty, the GPU enhanced terminal emulator. | |
| # Any items in the `env` entry below will be added as | |
| # environment variables. Some entries may override variables | |
| # set by alacritty itself. | |
| #env: | |
| # TERM variable | |
| # | |
| # This value is used to set the `$TERM` environment variable for | |
| # each instance of Alacritty. If it is not present, alacritty will | |
| # check the local terminfo database and use 'alacritty' if it is | |
| # available, otherwise 'xterm-256color' is used. | |
| #TERM: xterm-256color | |
| window: | |
| # Window dimensions (changes require restart) | |
| # | |
| # Specified in number of columns/lines, not pixels. | |
| # If both are `0`, this setting is ignored. | |
| dimensions: | |
| columns: 80 | |
| lines: 24 | |
| # Window padding (changes require restart) | |
| # | |
| # Blank space added around the window in pixels. This padding is scaled | |
| # by DPI and the specified value is always added at both opposing sides. | |
| padding: | |
| x: 0 | |
| y: 0 | |
| # Spread additional padding evenly around the terminal content. | |
| dynamic_padding: false | |
| # Window decorations | |
| # | |
| # Available values: | |
| # - `full`: Window with title bar and title bar buttons | |
| # - `none`: Window without title bar, rounded corners, or drop shadow | |
| # - `transparent`: Window with title bar with transparent background and title | |
| # bar buttons | |
| # - `buttonless`: Window with title bar with transparent background and no | |
| # title bar buttons | |
| # Window decorations | |
| # | |
| # Values for `decorations`: | |
| # - full: Borders and title bar | |
| # - none: Neither borders nor title bar | |
| # - buttonless: Title bar, transparent background and title bar buttons | |
| # - transparent: Title bar, transparent background, but no title bar buttons | |
| decorations: full | |
| scrolling: | |
| # Maximum number of lines in the scrollback buffer. | |
| # Specifying '0' will disable scrolling. | |
| history: 10000 | |
| # Number of lines the viewport will move for every line scrolled when | |
| # scrollback is enabled (history > 0). | |
| multiplier: 3 | |
| # Scroll to the bottom when new text is written to the terminal. | |
| auto_scroll: false | |
| # Spaces per Tab (changes require restart) | |
| # | |
| # This setting defines the width of a tab in cells. | |
| # | |
| # Some applications, like Emacs, rely on knowing about the width of a tab. | |
| # To prevent unexpected behavior in these applications, it's also required to | |
| # change the `it` value in terminfo when altering this setting. | |
| tabspaces: 8 | |
| # Font configuration (changes require restart) | |
| font: | |
| # Normal (roman) font face | |
| normal: | |
| family: Fira Code | |
| # The `style` can be specified to pick a specific face. | |
| # style: Regular | |
| # Bold font face | |
| bold: | |
| family: Fira Code | |
| # The `style` can be specified to pick a specific face. | |
| # style: Bold | |
| # Italic font face | |
| italic: | |
| family: Fira Code | |
| # The `style` can be specified to pick a specific face. | |
| # style: Italic | |
| # Point size | |
| size: 12.0 | |
| # Offset is the extra space around each character. `offset.y` can be thought of | |
| # as modifying the line spacing, and `offset.x` as modifying the letter spacing. | |
| offset: | |
| x: 2 | |
| y: 2 | |
| # Glyph offset determines the locations of the glyphs within their cells with | |
| # the default being at the bottom. Increasing `x` moves the glyph to the right, | |
| # increasing `y` moves the glyph upwards. | |
| glyph_offset: | |
| x: 0 | |
| y: 0 | |
| # Thin stroke font rendering (OS X only) | |
| # | |
| # Thin strokes are suitable for retina displays, but for non-retina screens | |
| # it is recommended to set `use_thin_strokes` to `false` | |
| # | |
| # macOS >= 10.14.x: | |
| # | |
| # If the font quality on non-retina display looks bad then set | |
| # `use_thin_strokes` to `true` and enable font smoothing by running the | |
| # following command: | |
| # `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO` | |
| # | |
| # This is a global setting and will require a log out or restart to take | |
| # effect. | |
| use_thin_strokes: true | |
| # If `true`, bold text is drawn using the bright color variants. | |
| draw_bold_text_with_bright_colors: true | |
| # Colors (Solarized Dark) | |
| colors: | |
| # Default colors | |
| primary: | |
| background: '0x002b36' | |
| foreground: '0x839496' | |
| # Normal colors | |
| normal: | |
| black: '0x073642' | |
| red: '0xdc322f' | |
| green: '0x859900' | |
| yellow: '0xb58900' | |
| blue: '0x268bd2' | |
| magenta: '0xd33682' | |
| cyan: '0x2aa198' | |
| white: '0xeee8d5' | |
| # Bright colors | |
| bright: | |
| black: '0x002b36' | |
| red: '0xcb4b16' | |
| green: '0x586e75' | |
| yellow: '0x657b83' | |
| blue: '0x839496' | |
| magenta: '0x6c71c4' | |
| cyan: '0x93a1a1' | |
| white: '0xfdf6e3' | |
| # Visual Bell | |
| # | |
| # Any time the BEL code is received, Alacritty "rings" the visual bell. Once | |
| # rung, the terminal background will be set to white and transition back to the | |
| # default background color. You can control the rate of this transition by | |
| # setting the `duration` property (represented in milliseconds). You can also | |
| # configure the transition function by setting the `animation` property. | |
| # | |
| # Values for `animation`: | |
| # - Ease | |
| # - EaseOut | |
| # - EaseOutSine | |
| # - EaseOutQuad | |
| # - EaseOutCubic | |
| # - EaseOutQuart | |
| # - EaseOutQuint | |
| # - EaseOutExpo | |
| # - EaseOutCirc | |
| # - Linear | |
| # | |
| # Specifying a `duration` of `0` will disable the visual bell. | |
| visual_bell: | |
| animation: EaseOutExpo | |
| duration: 0 | |
| # Background opacity | |
| # | |
| # Window opacity as a floating point number from `0.0` to `1.0`. | |
| # The value `0.0` is completely transparent and `1.0` is opaque. | |
| background_opacity: 1.0 | |
| # Mouse bindings | |
| # | |
| # Available fields: | |
| # - mouse | |
| # - action | |
| # - mods (optional) | |
| # | |
| # Values for `mouse`: | |
| # - Middle | |
| # - Left | |
| # - Right | |
| # - Numeric identifier such as `5` | |
| # | |
| # All available `mods` and `action` values are documented in the key binding | |
| # section. | |
| mouse_bindings: | |
| - { mouse: Middle, action: PasteSelection } | |
| mouse: | |
| # Click settings | |
| # | |
| # The `double_click` and `triple_click` settings control the time | |
| # alacritty should wait for accepting multiple clicks as one double | |
| # or triple click. | |
| double_click: { threshold: 300 } | |
| triple_click: { threshold: 300 } | |
| # If this is `true`, the cursor is temporarily hidden when typing. | |
| hide_when_typing: false | |
| url: | |
| # URL launcher | |
| # | |
| # This program is executed when clicking on a text which is recognized as a URL. | |
| # The URL is always added to the command as the last parameter. | |
| launcher: open | |
| # URL modifiers | |
| # | |
| # These are the modifiers that need to be held down for opening URLs when clicking | |
| # on them. The available modifiers are documented in the key binding section. | |
| #modifiers: Control|Shift | |
| selection: | |
| semantic_escape_chars: ",│`|:\"' ()[]{}<>" | |
| # When set to `true`, selected text will be copied to the primary clipboard. | |
| save_to_clipboard: false | |
| cursor: | |
| # Cursor style | |
| # | |
| # Values for 'style': | |
| # - ▇ Block | |
| # - _ Underline | |
| # - | Beam | |
| style: Block | |
| # If this is `true`, the cursor will be rendered as a hollow box when the | |
| # window is not focused. | |
| unfocused_hollow: true | |
| # Live config reload (changes require restart) | |
| live_config_reload: true | |
| # Shell | |
| # | |
| # You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`. | |
| # Entries in `shell.args` are passed unmodified as arguments to the shell. | |
| shell: | |
| program: cmd | |
| # Key bindings | |
| # | |
| # Key bindings are specified as a list of objects. Each binding will specify | |
| # a key and modifiers required to trigger it, terminal modes where the binding | |
| # is applicable, and what should be done when the key binding fires. It can | |
| # either send a byte sequnce to the running application (`chars`), execute | |
| # a predefined action (`action`) or fork and execute a specified command plus | |
| # arguments (`command`). | |
| # | |
| # Example: | |
| # `- { key: V, mods: Command, action: Paste }` | |
| # | |
| # Available fields: | |
| # - key | |
| # - mods (optional) | |
| # - chars | action | command (exactly one required) | |
| # - mode (optional) | |
| # | |
| # Values for `key`: | |
| # - `A` -> `Z` | |
| # - `F1` -> `F12` | |
| # - `Key1` -> `Key0` | |
| # | |
| # A full list with available key codes can be found here: | |
| # https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants | |
| # | |
| # Instead of using the name of the keys, the `key` field also supports using | |
| # the scancode of the desired key. Scancodes have to be specified as a | |
| # decimal number. | |
| # This command will allow you to display the hex scancodes for certain keys: | |
| # `showkey --scancodes` | |
| # | |
| # Values for `mods`: | |
| # - Command | |
| # - Control | |
| # - Shift | |
| # - Alt | |
| # | |
| # Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`. | |
| # Whitespace and capitalization is relevant and must match the example. | |
| # | |
| # Values for `chars`: | |
| # The `chars` field writes the specified string to the terminal. This makes | |
| # it possible to pass escape sequences. | |
| # To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run | |
| # the command `showkey -a` outside of tmux. | |
| # Note that applications use terminfo to map escape sequences back to | |
| # keys. It is therefore required to update the terminfo when | |
| # changing an escape sequence. | |
| # | |
| # Values for `action`: | |
| # - Paste | |
| # - PasteSelection | |
| # - Copy | |
| # - IncreaseFontSize | |
| # - DecreaseFontSize | |
| # - ResetFontSize | |
| # - ScrollPageUp | |
| # - ScrollPageDown | |
| # - ScrollToTop | |
| # - ScrollToBottom | |
| # - ClearHistory | |
| # - Hide | |
| # - Quit | |
| # - ClearLogNotice | |
| # | |
| # Values for `command`: | |
| # The `command` field must be a map containing a `program` string and | |
| # an `args` array of command line parameter strings. | |
| # | |
| # Example: | |
| # `command: { program: "alacritty", args: ["-e", "vttest"] }` | |
| # | |
| # Values for `mode`: | |
| # - ~AppCursor | |
| # - AppCursor | |
| # - ~AppKeypad | |
| # - AppKeypad | |
| key_bindings: | |
| - { key: V, mods: Command, action: Paste } | |
| - { key: C, mods: Command, action: Copy } | |
| - { key: Paste, action: Paste } | |
| - { key: Copy, action: Copy } | |
| - { key: H, mods: Command, action: Hide } | |
| - { key: Q, mods: Command, action: Quit } | |
| - { key: W, mods: Command, action: Quit } | |
| - { key: Home, chars: "\x1bOH", mode: AppCursor } | |
| - { key: Home, chars: "\x1b[H", mode: ~AppCursor } | |
| - { key: End, chars: "\x1bOF", mode: AppCursor } | |
| - { key: End, chars: "\x1b[F", mode: ~AppCursor } | |
| - { key: Key0, mods: Command, action: ResetFontSize } | |
| - { key: Equals, mods: Command, action: IncreaseFontSize } | |
| - { key: Minus, mods: Command, action: DecreaseFontSize } | |
| - { key: K, mods: Command, action: ClearHistory } | |
| - { key: K, mods: Command, chars: "\x0c" } | |
| - { key: L, mods: Control, action: ClearLogNotice } | |
| - { key: L, mods: Control, chars: "\x0c" } | |
| - { key: PageUp, mods: Shift, chars: "\x1b[5;2~" } | |
| - { key: PageUp, mods: Control, chars: "\x1b[5;5~" } | |
| - { key: PageUp, chars: "\x1b[5~" } | |
| - { key: PageDown, mods: Shift, chars: "\x1b[6;2~" } | |
| - { key: PageDown, mods: Control, chars: "\x1b[6;5~" } | |
| - { key: PageDown, chars: "\x1b[6~" } | |
| - { key: Tab, mods: Shift, chars: "\x1b[Z" } | |
| - { key: Back, chars: "\x7f" } | |
| - { key: Back, mods: Alt, chars: "\x1b\x7f" } | |
| - { key: Insert, chars: "\x1b[2~" } | |
| - { key: Delete, chars: "\x1b[3~" } | |
| - { key: Left, mods: Shift, chars: "\x1b[1;2D" } | |
| - { key: Left, mods: Control, chars: "\x1b[1;5D" } | |
| - { key: Left, mods: Alt, chars: "\x1b[1;3D" } | |
| - { key: Left, chars: "\x1b[D", mode: ~AppCursor } | |
| - { key: Left, chars: "\x1bOD", mode: AppCursor } | |
| - { key: Right, mods: Shift, chars: "\x1b[1;2C" } | |
| - { key: Right, mods: Control, chars: "\x1b[1;5C" } | |
| - { key: Right, mods: Alt, chars: "\x1b[1;3C" } | |
| - { key: Right, chars: "\x1b[C", mode: ~AppCursor } | |
| - { key: Right, chars: "\x1bOC", mode: AppCursor } | |
| - { key: Up, mods: Shift, chars: "\x1b[1;2A" } | |
| - { key: Up, mods: Control, chars: "\x1b[1;5A" } | |
| - { key: Up, mods: Alt, chars: "\x1b[1;3A" } | |
| - { key: Up, chars: "\x1b[A", mode: ~AppCursor } | |
| - { key: Up, chars: "\x1bOA", mode: AppCursor } | |
| - { key: Down, mods: Shift, chars: "\x1b[1;2B" } | |
| - { key: Down, mods: Control, chars: "\x1b[1;5B" } | |
| - { key: Down, mods: Alt, chars: "\x1b[1;3B" } | |
| - { key: Down, chars: "\x1b[B", mode: ~AppCursor } | |
| - { key: Down, chars: "\x1bOB", mode: AppCursor } | |
| - { key: F1, chars: "\x1bOP" } | |
| - { key: F2, chars: "\x1bOQ" } | |
| - { key: F3, chars: "\x1bOR" } | |
| - { key: F4, chars: "\x1bOS" } | |
| - { key: F5, chars: "\x1b[15~" } | |
| - { key: F6, chars: "\x1b[17~" } | |
| - { key: F7, chars: "\x1b[18~" } | |
| - { key: F8, chars: "\x1b[19~" } | |
| - { key: F9, chars: "\x1b[20~" } | |
| - { key: F10, chars: "\x1b[21~" } | |
| - { key: F11, chars: "\x1b[23~" } | |
| - { key: F12, chars: "\x1b[24~" } | |
| - { key: F1, mods: Shift, chars: "\x1b[1;2P" } | |
| - { key: F2, mods: Shift, chars: "\x1b[1;2Q" } | |
| - { key: F3, mods: Shift, chars: "\x1b[1;2R" } | |
| - { key: F4, mods: Shift, chars: "\x1b[1;2S" } | |
| - { key: F5, mods: Shift, chars: "\x1b[15;2~" } | |
| - { key: F6, mods: Shift, chars: "\x1b[17;2~" } | |
| - { key: F7, mods: Shift, chars: "\x1b[18;2~" } | |
| - { key: F8, mods: Shift, chars: "\x1b[19;2~" } | |
| - { key: F9, mods: Shift, chars: "\x1b[20;2~" } | |
| - { key: F10, mods: Shift, chars: "\x1b[21;2~" } | |
| - { key: F11, mods: Shift, chars: "\x1b[23;2~" } | |
| - { key: F12, mods: Shift, chars: "\x1b[24;2~" } | |
| - { key: F1, mods: Control, chars: "\x1b[1;5P" } | |
| - { key: F2, mods: Control, chars: "\x1b[1;5Q" } | |
| - { key: F3, mods: Control, chars: "\x1b[1;5R" } | |
| - { key: F4, mods: Control, chars: "\x1b[1;5S" } | |
| - { key: F5, mods: Control, chars: "\x1b[15;5~" } | |
| - { key: F6, mods: Control, chars: "\x1b[17;5~" } | |
| - { key: F7, mods: Control, chars: "\x1b[18;5~" } | |
| - { key: F8, mods: Control, chars: "\x1b[19;5~" } | |
| - { key: F9, mods: Control, chars: "\x1b[20;5~" } | |
| - { key: F10, mods: Control, chars: "\x1b[21;5~" } | |
| - { key: F11, mods: Control, chars: "\x1b[23;5~" } | |
| - { key: F12, mods: Control, chars: "\x1b[24;5~" } | |
| - { key: F1, mods: Alt, chars: "\x1b[1;6P" } | |
| - { key: F2, mods: Alt, chars: "\x1b[1;6Q" } | |
| - { key: F3, mods: Alt, chars: "\x1b[1;6R" } | |
| - { key: F4, mods: Alt, chars: "\x1b[1;6S" } | |
| - { key: F5, mods: Alt, chars: "\x1b[15;6~" } | |
| - { key: F6, mods: Alt, chars: "\x1b[17;6~" } | |
| - { key: F7, mods: Alt, chars: "\x1b[18;6~" } | |
| - { key: F8, mods: Alt, chars: "\x1b[19;6~" } | |
| - { key: F9, mods: Alt, chars: "\x1b[20;6~" } | |
| - { key: F10, mods: Alt, chars: "\x1b[21;6~" } | |
| - { key: F11, mods: Alt, chars: "\x1b[23;6~" } | |
| - { key: F12, mods: Alt, chars: "\x1b[24;6~" } | |
| - { key: F1, mods: Command, chars: "\x1b[1;3P" } | |
| - { key: F2, mods: Command, chars: "\x1b[1;3Q" } | |
| - { key: F3, mods: Command, chars: "\x1b[1;3R" } | |
| - { key: F4, mods: Command, chars: "\x1b[1;3S" } | |
| - { key: F5, mods: Command, chars: "\x1b[15;3~" } | |
| - { key: F6, mods: Command, chars: "\x1b[17;3~" } | |
| - { key: F7, mods: Command, chars: "\x1b[18;3~" } | |
| - { key: F8, mods: Command, chars: "\x1b[19;3~" } | |
| - { key: F9, mods: Command, chars: "\x1b[20;3~" } | |
| - { key: F10, mods: Command, chars: "\x1b[21;3~" } | |
| - { key: F11, mods: Command, chars: "\x1b[23;3~" } | |
| - { key: F12, mods: Command, chars: "\x1b[24;3~" } | |
| - { key: NumpadEnter, chars: "\n" } |
| apk update && apk add --no-cache \ | |
| build-base \ | |
| curl \ | |
| git \ | |
| tmux \ | |
| vim \ | |
| rust \ | |
| cargo |
| #!/bin/bash | |
| # To connect to wifi: | |
| # wifi-menu or nmtui | |
| # To install big font: | |
| # pacman -Sy terminus-font | |
| # setfont ter-p32n | |
| set -eo pipefail | |
| trap quit:no_message INT | |
| INSTALL_SCRIPT=install_arch.sh | |
| EDITOR=vim | |
| hostname=$(dialog --stdout --inputbox "Enter hostname" 0 0) || exit 1 | |
| username=$(dialog --stdout --inputbox "Enter username" 0 0) || exit 1 | |
| password=$(dialog --stdout --passwordbox "Enter password" 0 0) || exit 1 | |
| password2=$(dialog --stdout --passwordbox "Confirm password" 0 0) || exit 1 | |
| [[ "$password" == "$password2" ]] || ( echo "Passwords did not match"; exit 1; ) | |
| devicelist=$(lsblk -dplnx size -o name,size | grep -Ev "boot|rpmb|loop" | tac) | |
| device=$(dialog --stdout --menu "Select installation disk" 0 0 0 ${devicelist}) || exit 1 | |
| device_root="${device}1" | |
| device_boot="${device}2" | |
| write_script() { | |
| ( | |
| echo "#!/usr/bin/env bash" | |
| echo "#" | |
| echo "# Please review the install script below" | |
| echo "#" | |
| echo "set -euo pipefail" | |
| echo | |
| echo "sgdisk -Z $device" | |
| echo "sgdisk -Z $device" | |
| echo "sgdisk -z $device" | |
| echo "sgdisk -o $device" | |
| echo | |
| echo "sgdisk -n 1:0:-200M $device" | |
| echo "sgdisk -t 1:8300 $device" | |
| echo | |
| echo "sgdisk -n 2:-200M:-0 $device" | |
| echo "sgdisk -t 2:ef00 $device" | |
| echo "sgdisk -A 2:set:2 $device" | |
| echo | |
| echo "mkfs.ext4 -F $device_root" | |
| echo "mkfs.fat -F32 $device_boot" | |
| echo | |
| echo "mount $device_root /mnt" | |
| echo "mkdir -p /mnt/boot/efi" | |
| echo "mount $device_boot /mnt/boot/efi" | |
| echo "pacstrap /mnt base linux linux-firmware grub efibootmgr vim networkmanager" | |
| echo | |
| echo "cp $0 /mnt/root/" | |
| echo | |
| echo "genfstab -U -p /mnt > /mnt/etc/fstab" | |
| echo | |
| echo "ln -sf /mnt/usr/share/zoneinfo/US/Pacific /mnt/etc/localtime" | |
| echo | |
| echo "echo "LANG=en_US.UTF-8" > /mnt/etc/locale.conf" | |
| echo "sed -i 's/#en_US.UTF/en_US.UTF/' /mnt/etc/locale.gen" | |
| echo "arch-chroot /mnt locale-gen" | |
| echo | |
| echo "arch-chroot /mnt sh <<EOF" | |
| echo " echo ${hostname} > /etc/hostname" | |
| echo "EOF" | |
| echo "arch-chroot /mnt systemctl enable NetworkManager.service" | |
| echo | |
| echo "arch-chroot /mnt grub-install --target=x86_64-efi --bootloader-id=grub --efi-directory=/boot/efi --recheck" | |
| echo "arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg" | |
| echo "mkdir -p /mnt/boot/efi/EFI/BOOT" | |
| echo "cp /mnt/boot/efi/EFI/GRUB/grubx64.efi /mnt/boot/efi/EFI/BOOTX64.EFI" | |
| echo | |
| echo "# setup sudo" | |
| echo "arch-chroot /mnt sh <<EOF" | |
| echo " pacman -Syu --noconfirm sudo" | |
| echo " echo '%wheel ALL=(ALL) ALL' | sudo EDITOR='tee -a' visudo" | |
| echo "EOF" | |
| echo | |
| echo "# create user" | |
| echo "arch-chroot /mnt sh <<EOF" | |
| echo " useradd -Nm -g users -G wheel,sys \"$username\"" | |
| echo " echo -e "$password"\"\\n\"$password | passwd \"$username\"" | |
| echo "EOF" | |
| echo | |
| echo "# disallow root login" | |
| echo "arch-chroot /mnt passwd -l root" | |
| ) > "$INSTALL_SCRIPT" | |
| chmod +x "$INSTALL_SCRIPT" | |
| } | |
| write_script | |
| # open editor to review and make last changes to the script | |
| "$EDITOR" "$INSTALL_SCRIPT" | |
| reset | |
| clear | |
| dialog --title "Arch Installer" --yesno "Are you sure you want to run the script?" 7 60 | |
| response=$? | |
| clear | |
| case $response in | |
| 0) bash "$INSTALL_SCRIPT";; | |
| 1) clear && echo "Cancelling installation";; | |
| 255) clear && echo "Cancelling installation";; | |
| esac | |
| #!/bin/zsh | |
| # curl https://gist.githubusercontent.com/prabirshrestha/279d8b179d9353fe8694/raw/babun-post-install | zsh | |
| successfully() { | |
| $* || (echo "\nfailed" 1>&2 && exit 1) | |
| } | |
| fancy_echo() { | |
| echo "\n$1" | |
| } | |
| fancy_echo "Updating babun" | |
| successfully pact update | |
| fancy_echo "Updating ~/.zshrc" | |
| successfully curl https://gist.githubusercontent.com/prabirshrestha/279d8b179d9353fe8694/raw/.zshrc -o ~/.zshrc | |
| fancy_echo "Installing tmux" | |
| successfully pact install tmux | |
| fancy_echo "Installing solarized dark theme and powerconsolas for mintty" | |
| successfully curl https://gist.githubusercontent.com/prabirshrestha/279d8b179d9353fe8694/raw/.minttyrc -o ~/.minttyrc | |
| fancy_echo "Installing the_silver_searcher (ag)" | |
| successfully pact install automake pkg-config libpcre-devel liblzma-devel | |
| successfully git clone https://github.com/ggreer/the_silver_searcher ~/ag | |
| successfully pushd ~/ag | |
| successfully bash -x -o igncr ./build.sh && make install | |
| successfully cd .. | |
| successfully rm -rf ~/ag | |
| successfully popd | |
| fanyc_echo "Updating gitconfig" | |
| successfully git config --global core.autocrlf true | |
| successfully git config --global user.name "prabirshrestha" | |
| successfully git config --global user.email "mail@prabir.me" | |
| echo "execute 'chere -i -t mintty' in admin mode to enable Zsh Prompt Here" | |
| source ~/.zshrc | |
| START http://boxstarter.org/package/nr/url?https://gist.githubusercontent.com/prabirshrestha/279d8b179d9353fe8694/raw/boxstart.ps1 |
| Set-ExplorerOptions -showFileExtensions | |
| Disable-BingSearch | |
| Enable-RemoteDesktop | |
| Enable-MicrosoftUpdate | |
| cinst curl | |
| cinst googlechrome | |
| cinst visualstudiocode | |
| cinst googledrive | |
| cinst python | |
| cinst python2 | |
| cinst wget | |
| cinst nuget.commandline | |
| cinst procexp | |
| cinst paint.net | |
| cinst fiddler4 | |
| cinst mingw | |
| cinst webpicmd | |
| cinst webpi | |
| cinst cmake | |
| cinst redis-64 | |
| cinst imagemagick | |
| cinst cpu-z | |
| cinst kdiff3 | |
| cinst dotpeek | |
| cinst gpg4win | |
| cinst nugetpackageexplorer | |
| cinst f.lux | |
| cinst linqpad | |
| cinst sourcecodepro | |
| cinst rabbitmq | |
| cinst ansicon | |
| cinst windbg | |
| cinst sudo | |
| cinst clink | |
| cinst ctags | |
| cinst jq | |
| cinst ack | |
| cinst dependencywalker | |
| cinst postgresql | |
| cinst pgadmin3 | |
| cinst zoomit |
| brew install vim --with-lua | |
| brew install fzf node ripgrep tmux |
| rmdir /s /q vim80 | |
| powershell -NoProfile -ExecutionPolicy Bypass -Command "(new-object System.Net.WebClient).DownloadFile('http://tuxproject.de/projects/vim/complete-x64.7z', 'complete-x64.7z')" | |
| "%ProgramFiles%\7-Zip\7z.exe" x complete-x64.7z -ovim80 | |
| del complete-x64.7z | |
| pause |
| font_size=18 | |
| color_scheme="Builtin Solarized Dark" | |
| default_prog=["/bin/bash", "--login", "-i"] | |
| [[font.font]] | |
| family="Fira Code" | |
| scrollback_lines=9999 | |
| [window_padding] | |
| left=0 | |
| right=0 | |
| top=0 | |
| bottom=0 |
Did you have any trouble getting mintty to display the patched fonts correctly? They still show up for me as question marks and not the correct glyph. Thanks.
@schodge I now don't use cygwin's mingw. Use the windows x64 gvim only so the .vimrc file might not work with cygwin. When I did use cyginw I didn't see any problems with it.
I see that you enabled the jump plugin in zsh. Does it mean you can jump around with j just by enabling it, or did you need to install something additionally?
Did you figured out how to make tmux open split in the current directory ? Everytime I create a new pane it goes to my home directory :(
I get the following errors when installing this. Any idea what's wrong? maybe I need to install some extra things before this?
config.status: executing depfiles commands
+ make -j4
CC src/ignore.o
CC src/log.o
CC src/options.o
CC src/print.o
src/ignore.c: In function ‘add_ignore_pattern’:
src/ignore.c:106:9: warning: array subscript has type ‘char’ [-Wchar-subscripts]
if (!isspace(pattern[pattern_len - 1])) {
^
CC src/print_w32.o
CC src/scandir.o
CC src/search.o
CC src/lang.o
CC src/util.o
CC src/decompress.o
CC src/main.o
src/util.c: In function ‘generate_alpha_skip’:
src/util.c:80:13: warning: array subscript has type ‘char’ [-Wchar-subscripts]
skip_lookup[(unsigned char)tolower(find[i])] = f_len - i;
^
src/util.c:81:13: warning: array subscript has type ‘char’ [-Wchar-subscripts]
skip_lookup[(unsigned char)toupper(find[i])] = f_len - i;
^
src/util.c: In function ‘is_prefix’:
src/util.c:95:13: warning: array subscript has type ‘char’ [-Wchar-subscripts]
if (tolower(s[i]) != tolower(s[i + pos])) {
^
src/util.c:95:13: warning: array subscript has type ‘char’ [-Wchar-subscripts]
src/util.c: In function ‘suffix_len’:
src/util.c:113:13: warning: array subscript has type ‘char’ [-Wchar-subscripts]
if (tolower(s[pos - i]) != tolower(s[s_len - i - 1])) {
^
src/util.c:113:13: warning: array subscript has type ‘char’ [-Wchar-subscripts]
src/util.c: In function ‘boyer_moore_strncasestr’:
src/util.c:176:9: warning: array subscript has type ‘char’ [-Wchar-subscripts]
for (i = f_len - 1; i >= 0 && tolower(s[pos]) == find[i]; pos--, i--) {
^
src/util.c: In function ‘is_lowercase’:
src/util.c:416:9: warning: array subscript has type ‘char’ [-Wchar-subscripts]
if (!isascii(s[i]) || isupper(s[i])) {
^
src/decompress.c: In function ‘decompress_zlib’:
src/decompress.c:52:22: warning: cast discards ‘const’ qualifier from pointer target type [-Wcast-qual]
stream.next_in = (Bytef *)buf;
^
src/main.c: In function ‘main’:
src/main.c:112:17: warning: array subscript has type ‘char’ [-Wchar-subscripts]
*c = (char)tolower(*c);
^
CCLD ag.exe
make[1]: Entering directory '/home/Neil/ag'
/usr/bin/mkdir -p '/usr/local/bin'
/usr/bin/install -c ag.exe '/usr/local/bin'
/usr/bin/mkdir -p '/usr/local/share/the_silver_searcher/completions'
/usr/bin/install -c -m 644 ag.bashcomp.sh '/usr/local/share/the_silver_searcher/completions'
/usr/bin/mkdir -p '/usr/local/share/man/man1'
/usr/bin/install -c -m 644 doc/ag.1 '/usr/local/share/man/man1'
make[1]: Leaving directory '/home/Neil/ag'
zsh: command not found: fanyc_echo
execute 'chere -i -t mintty' in admin mode to enable Zsh Prompt Here
ERROR: z.sh is meant to be sourced, not directly executed.
stty: standard input: Inappropriate ioctl for device
powerline consolas can be downloaded from https://github.com/eugeneching/consolas-powerline-vim