#+TITLE:BlaCk Void Zsh Awesome Zsh Setting. [[https://i.imgur.com/043POEf.png]] *[[https://github.com/black7375/BlaCk-Void-Zsh/wiki/Error][Wiki:Error]]* *[[https://black7375.tistory.com/59][Korean Docs]]* *Notice!!* :goggles::test_tube::alembic: We are experimenting with a big change in [[https://github.com/black7375/BlaCk-Void-Zsh/issues/23][#23]]. * Table of Contents :PROPERTIES: :TOC: :include all :depth 3 :ignore (this) :END: :CONTENTS: - [[#1-feature][1. Feature.]] - [[#11-powerful-view][1.1 Powerful View.]] - [[#prompt][Prompt.]] - [[#git][Git.]] - [[#12-easy-command-input][1.2 Easy Command Input.]] - [[#auto-pair][Auto Pair.]] - [[#fix][Fix.]] - [[#display-info][Display Info.]] - [[#integration-with-fzf][Integration with Fzf.]] - [[#git][Git.]] - [[#etc][Etc.]] - [[#13-terminal-utility][1.3 Terminal Utility.]] - [[#internet-tools][Internet Tools.]] - [[#terminal-image-viewer][Terminal Image Viewer.]] - [[#weather][Weather.]] - [[#map][Map.]] - [[#2-install][2. Install.]] - [[#21-supported-platforms][2.1 Supported Platforms.]] - [[#22-docker][2.2 Docker]] - [[#23-manual-install-others][2.3 Manual Install (Others).]] - [[#24-update][2.4 Update.]] - [[#3-info][3. Info.]] - [[#31-theme][3.1 Theme.]] - [[#32-plugins][3.2 Plugins.]] - [[#33-my-terminal-environment][3.3 My Terminal Environment.]] :END: * 1. Feature. *[[https://black7375.tumblr.com/post/188158544989][Sample Video]]* [[https://black7375.tumblr.com/post/188158544989][https://user-images.githubusercontent.com/25581533/66270473-11e99980-e88f-11e9-83ac-3838bc0d6a56.png]] ** 1.1 Powerful View. *More Theme, More Information*: [[https://github.com/black7375/BlaCk-Void-Zsh/wiki/Customize][Wiki:Customize]] *** Prompt. *Powerline Theme* [[https://user-images.githubusercontent.com/25581533/53680999-40fec200-3d26-11e9-8ca5-5c3723e6acdf.png]] The prompt consists of two lines.\\ The upper line is for displaying information, and the lower line is for writing commands. - *Upper Line* + *Left*: account info, root user, using ssh, directory lotation, write permission, vcs info + *Right*: result status, background job, command execution time, history, zsh load time - *Lower Line* + Syntax highlight, Auto Suggestion. + When auto suggestion comes up, you can complete with *right(→) arrow* key. *Simple Theme* [[https://user-images.githubusercontent.com/25581533/55165124-306c2b00-51b0-11e9-9871-9ee998ed5bbd.png]] - *Upper Line* + directory lotation, vcs info, account info, write permission, root user, command execution time - *Lower Line* + *Left*: prompt conditional , writing commands + Syntax highlight, Auto Suggestion. + When auto suggestion comes up, you can complete with *right(→) arrow* key. + *Right*: background job, result status *[Experimental]How to cutomize or switch?* - *Copy* file to your *home*. + =cp $BVZSH/BlaCk-Void.ztheme ~/.ztheme= && Customize!! - =export= BVZSH_THEME='THEME MODE' + Restrictions: Work only in =~/.ztheme= - =THEME MODE= list: =auto=, =powerline=, =simple=, =powerline-single=, =simple-single= + =auto=: Default is =powerline=. \\ When not support xterm or 256 color, =simple= theme Activate. - =COLOR MODE= list: =auto=, =flex=, =fixed= + =auto=: Deafault is =fixed=. \\ When not support xterm or 256 color, =flex= color Activate. - =Icon MODE= list: =auto=, =nerd=, =powerline= + =auto=: Deafault is =nerd=. \\ When ssh or root, =powerline= icon Activate. - *FAQ*: Why do not you support =zsh-theme= anymore? || Can not change during use? \\ This isn't supported by [[https://github.com/romkatv/powerlevel10k#i-am-getting-an-error-zsh-bad-math-expression-operand-expected-at-end-of-string][powerlevel10k]]. *** Git. The interaction with Git is easy compared to the file manager. | [[https://user-images.githubusercontent.com/25581533/53680863-67236280-3d24-11e9-826b-ae88fc345177.png]] | [[https://user-images.githubusercontent.com/25581533/53680866-6ab6e980-3d24-11e9-8ad1-3cd6b087ee36.png]] | [[https://user-images.githubusercontent.com/25581533/53680870-6c80ad00-3d24-11e9-8a1e-0171231299d9.png]] | |------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------| | [[https://user-images.githubusercontent.com/25581533/53680872-6ee30700-3d24-11e9-9e77-36707397151a.png]] | [[https://user-images.githubusercontent.com/25581533/53680874-74d8e800-3d24-11e9-804d-9f2eb16c370f.png]] | [[https://user-images.githubusercontent.com/25581533/53680876-76a2ab80-3d24-11e9-8d72-56c85a3e8bf2.png]] | In turn *Source - Add any file - Modify file* \\ *Staging - Commit - Push* ** 1.2 Easy Command Input. *More Features*: [[https://github.com/black7375/BlaCk-Void-Zsh/wiki/Features][Wiki:Features]] *** Auto Pair. [[https://user-images.githubusercontent.com/25581533/53681046-f29df300-3d26-11e9-8299-cdf4d189fa1d.png]] Match parentheses, quotes, etc. *** Fix. [[https://user-images.githubusercontent.com/25581533/53681092-96879e80-3d27-11e9-80ca-73bc56150ec9.png]] If you can't find the command, suggest a correction.\\ If the execution is not done properly, just typing '=fuck='. It will suggest. *** Display Info. [[https://user-images.githubusercontent.com/25581533/53681099-b4ed9a00-3d27-11e9-9388-cde276b64686.png]] Commands that can be abbreviated are indicated by a =Alias tip=.\\ If you press '**' while typing command, it is recommended to divide by category. |[[https://user-images.githubusercontent.com/25581533/53681069-3db80600-3d27-11e9-8e6c-89f8cb71bd96.png]]|[[https://user-images.githubusercontent.com/25581533/53681119-0564f780-3d28-11e9-9afd-35c7e0e03044.png]]| You can search history by pressing the *up(↑) arrow* key. *** Integration with [[https://github.com/junegunn/fzf][Fzf]]. [[https://user-images.githubusercontent.com/25581533/53681129-334a3c00-3d28-11e9-97b1-b0cd56aac3af.png]] - *Ctrl+t*: File, Directory select.(Multiple selecting use ) - *Ctrl+r*: History select. - *Alt+c*: Directory select. - =Command **= *+*: Select after =vi **= as input. - =ssh=, =telnet=, =kill=, =unset=, =export=..etc with integration. Please refer to [[https://github.com/junegunn/fzf#key-bindings-for-command-line][fzf]] for more information. *** Git. Very simple to use git. - =c=: commit - =a=: add - =p=: push - =u=: pull - =r=: remote - =s=: status *Git X Fzf* [[https://user-images.githubusercontent.com/25581533/57051067-a0436900-6cba-11e9-93bb-df84b795d0b2.png]] =glo= screenshot. - =ga=: git add - =glo=: git log - =gi=: gitignore - =gd=: git diff - =gcf=: git checkout - =gss=: git stash - =gclean=: git clean *** Etc. [[https://user-images.githubusercontent.com/25581533/53681139-4ceb8380-3d28-11e9-8e92-9549302afdc0.png]] - =bookmark [mark]=:Bookmark to [mark]. - =jump [mark]=:Move to [mark]. - =showmarks [mark]=:Show [mark]'s directory. - =deletemark [mark]=:Delete [mark]. - =cd =: Move to the upper directory by the number of . - =j [keyword]=: Move to [keyword] similar directory. ** 1.3 Terminal Utility. *** Internet Tools. [[https://user-images.githubusercontent.com/25581533/53681148-6ee50600-3d28-11e9-909c-674b0b359ebb.png]] - =prettyping=: Show pretty ping. - =ip-info=: Show ip info. *** Terminal Image Viewer. [[https://user-images.githubusercontent.com/25581533/53681154-80c6a900-3d28-11e9-8510-385e49f173f2.png]] Show image like preview.\\ You can use with command =img= *Useage*: =img FILE_NAME TIME=\\ *(TIME default 2s)* =img= Feature - *Supported*: Konsole, Xterm, Urxvt, Terminology, Yakuake, Terminal.app - *Unsupported*: Terminator, Hyper, Tilix, gnome terminal, Guake, LXterminal, Putty, Alacritty for unsupported Terminals\\ use [[https://github.com/radare/tiv][tiv]] or [[https://www.nongnu.org/fbi-improved/][fim]] *** Weather. [[https://user-images.githubusercontent.com/25581533/53681166-a6ec4900-3d28-11e9-80d3-a010cba7fa83.png]] *Useage*:\\ =weather= or =weather LOCALE LANGUAGE(option)= *Default Language*: Your system's language *** Map. [[https://user-images.githubusercontent.com/25581533/53681169-abb0fd00-3d28-11e9-9cf1-85bf29227ab2.png]] *Useage*:\\ =map= * 2. Install. ** 2.1 Supported Platforms. - *Linux* Debin-based(Ubuntu, Debian, Mint, ..), RPM-based(Fedora, CentOS, Redhat, ..), Pacman-based(Arch, Manjaro, Antergos, ..) - *Others* Mac, FreeBSD-based - *Requirements* + bash - *Install* #+BEGIN_SRC shell git clone https://github.com/black7375/BlaCk-Void-Zsh.git ~/.zsh bash ~/.zsh/BlaCk-Void-Zsh.sh #+END_SRC Then, *terminal font* set to one of *[[https://github.com/ryanoasis/nerd-fonts][Nerd Fonts]]* (font install's =1= option is =hack nerd font=) && restart. When you want to use with awesome tmux, Check [[https://github.com/black7375/BlaCk-Void-Tmux/][BlaCk-Void-Tmux]] - *Beta Version* #+BEGIN_SRC shell git clone -b powertools https://github.com/black7375/BlaCk-Void-Zsh.git ~/.zsh bash ~/.zsh/BlaCk-Void-Zsh.sh #+END_SRC ** 2.2 Docker Pull or Build docker #+BEGIN_SRC shell docker pull alstjr7375/bvzsh:latest # or git clone https://github.com/black7375/BlaCk-Void-Zsh.git && cd BlaCk-Void-Zsh/Docker docker build --tag=alstjr7375/bvzsh:lastest . #+END_SRC Run!! #+BEGIN_SRC shell docker run --rm -it alstjr7375/bvzsh #+END_SRC ** 2.3 Manual Install (Others). - *Requirements* + [[https://www.zsh.org/][zsh]] + [[https://github.com/powerline/powerline][powerline]] + [[https://github.com/ryanoasis/nerd-fonts][powerline support font]](will explain it in the paragraph below.) + [[http://w3m.sourceforge.net][w3m-img]](option for Terminal Image View) + [[https://github.com/wting/autojump][Autojump]](option for =j=) + [[https://beyondgrep.com/][ack]](option for [[https://github.com/paoloantinori/hhighlighter][h]]) | TODO: ack code port to ripgrep. + [[https://github.com/jordansissel/xdotool][xdotool]], [[https://sites.google.com/site/tstyblo/wmctrl][wmctrl]] (option for [[https://github.com/marzocchi/zsh-notify][Notification]]) - *Install* + Git Clone\\ =git clone https://github.com/black7375/BlaCk-Void-Zsh.git ~/.zsh && cd ~/.zsh= + zinit(replace antigen, old name: zplugin) #+BEGIN_SRC shell mkdir ~/.zplugin git clone https://github.com/zdharma-continuum/zinit.git ~/.zplugin/bin #+END_SRC + nerdfont(powerline support font) #+BEGIN_SRC shell git clone https://github.com/ryanoasis/nerd-fonts.git cd nerd-fonts && ./install.sh cd .. #+END_SRC or\\ Install font from [[https://github.com/ryanoasis/nerd-fonts][Nerd Fonts]]. + Add to .zshrc Source File[Recommend]\\ =echo "source BlaCk-Void.zshrc" >> ~/.zshrc= or Link\\ =ln -svf BlaCk-Void.zshrc ~/.zshrc= or Copy(Can't =zsh-update=)\\ =cp -v BlaCk-Void.zshrc ~/.zshrc= + Zsh Shell Set\\ =sudo chsh -s /usr/bin/zsh= or\\ =sudo chsh -s $(which zsh)= + Terminal set\\ *Terminal font* set to one of *[[https://github.com/ryanoasis/nerd-fonts][Nerd Fonts]]* && restart. ** 2.4 Update. =zsh-update=: BVZSH, plugin manger, plugins update.\\ =font-update=: Nerdfont Update * 3. Info. ** 3.1 Theme. - [[https://github.com/romkatv/powerlevel10k][Powerlevel10k]](powerline theme, Really Fast and 100% replaceable [[https://github.com/bhilburn/powerlevel9k][Powerlevel9k]]) + Simple theme based on [[https://github.com/robbyrussell/oh-my-zshom/romkatv/dotfiles-public/blob/master/.purepower][Purepower]], inspired by [[https://github.com/sindresorhus/pure][Pure]] ** 3.2 Plugins. *Plugin Manager* - [[https://github.com/zdharma-continuum/zinit][Zinit]](Old Name: Zplugin) *Default Repo ([[https://github.com/robbyrussell/oh-my-zsh][robbyrussell's oh-my-zsh]]).* *Lib* - [[https://github.ce/master/lib/compfix.zsh][Compfix]]: Handle completions insecurities. - [[https://github.com/robbyrussell/oh-my-zsh/tre/tree/master/lib/directories.zsh][Directories]]: Changing/making/removing directory. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/lib/functions.zsh][Functions]]: OMZ Functions. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/lib/git.zsh][Git]]: Git fuctions. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/lib/termsupport][Termsupport]]: Set terminal window and tab/icon titles. *Plugin* - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/autojumpp][Autojump]]: Enables [[https://github.com/wting/autojump][Autojump]] if installed with homebrew, macports or debian/ubuntu package. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/command-not-found][Command Not Found]]: This plugin uses the command-not-found package for zsh to provide suggested packages to be installed if a command cannot be found. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/fzf][FZF]]: This plugin enables junegunn's fzf fuzzy auto-completion and key bindings. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/git][Git]]: Adds a lot of git aliases and functions for pulling for dealing with the current branch. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/gitfast][Gitfast]]: This plugin adds completion for Git, using the zsh completion from git.git folks, which is much faster than the official one from zsh. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/pip][Pip]]: pip - completion plugin for the pip command. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/sudo][Sudo]]: ESC twice: Puts sudo in front of the current command, or the last one if the command line is empty. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/thefuck][Thefuck]]: [[https://github.com/nvbn/thefuck][The Fuck]] plugin — magnificent app which corrects your previous console command. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/tmux][Tmux]] Provides aliases for [[https://github.com/tmux/tmux][Tmux]]. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/tmuxinator][Tmuxinator]]: Completions for [[https://github.com/tmuxinator/tmuxinator][tmuxinator]]. - [[https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/urltools][Urltools]]: Provides two aliases to URL-encode(=urlencode=) and URL-decode(=urldecode=) strings. *Custom Repo* - [[https://github.com/chrissicool/zsh-256color][Zsh 256 Color]]: This ZSH plugin enhances the terminal environment with 256 colors. - [[https://github.com/djui/alias-tips][Alias Tips]]: Help remembering those shell aliases and Git aliases you once defined. - [[https://github.com/mafredri/zsh-async][Zsh Async]]: Because your terminal should be able to perform tasks asynchronously without external tools! - [[https://github.com/zsh-users/zsh-autosuggestions][Zsh Autosuggestions]]: [[https://fishshell.com/][Fish]]-like fast/unobtrusive autosuggestions for zsh. - [[https://github.com/hlissner/zsh-autopair][Zsh Autopair]]: A simple plugin that auto-closes, deletes and skips over matching delimiters in zsh intelligently - [[https://github.com/zsh-users/zsh-completions][Zsh Completions]]: Additional completion definitions for Zsh. - [[https://github.com/b4b4r07/enhancd][Enhancd]]: A next-generation cd command with an interactive filter. - [[https://github.com/zdharma-continuum/fast-syntax-highlighting][Fast Syntax Highlighting]]: Feature rich syntax highlighting for Zsh. - [[https://github.com/wfxr/forgit][Forgit]]: Forgit is a utility tool for git taking advantage of fuzzy finder fzf. - [[https://github.com/ytet5uy4/fzf-widgets][Fzf Widgets]]: ZLE widgets of fzf. - [[https://github.com/seletskiy/zsh-git-smart-commands][Zsh Git Smart Commands]]: Wrappers for common git commands so they can be used in aliases very efficiently. - [[https://github.com/paoloantinori/hhighlighter][h]]: A command line tool to highlight terms - [[https://github.com/zsh-users/zsh-history-substring-search][Zsh History Substring Search]]: [[https://fishshell.com/][Fish]]-like history search feature. - [[https://github.com/changyuheng/zsh-interactive-cd][Zsh Interactive Cd]]: Press tab for completion as usual with fzf. - [[https://github.com/black7375/zsh-lazyenv][Zsh Lazyenv]]: Environments for lazy load commands and speed up start up time of zsh. - [[https://github.com/jocelynmallon/zshmarks][Zsh Marks]]: A port of Bashmarks (simple bookmarking plugin by Todd Werth) for oh-my-zsh - [[https://github.com/marzocchi/zsh-notify][Zsh Notify]]: Desktop notifications for long-running commands in zsh. - [[https://github.com/raylee/tldr][TLDR]]: Simplified and community-driven man pages http://tldr-pages.github.io/ - [[https://github.com/peterhurford/up.zsh][up]]: Move to the upper directory by the number of . ** 3.3 My Terminal Environment. - *OS*: Kubuntu 18.10 - *Terminal*: Konsole - *Font*: Hack Nerd Font - *Color Scheme*: Breeze