{"id":16342762,"url":"https://github.com/budimanjojo/dotfiles-installer","last_synced_at":"2026-04-09T12:50:39.205Z","repository":{"id":104049239,"uuid":"191219012","full_name":"budimanjojo/dotfiles-installer","owner":"budimanjojo","description":"Install your dotfiles across your system easier","archived":false,"fork":false,"pushed_at":"2021-07-03T04:55:46.000Z","size":101,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-27T13:43:26.738Z","etag":null,"topics":["base16-google-dark","dotfiles","installer","installer-script","nvim","tmux","vim","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/budimanjojo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-10T17:56:31.000Z","updated_at":"2021-07-03T04:55:48.000Z","dependencies_parsed_at":"2023-06-29T11:30:16.317Z","dependency_job_id":null,"html_url":"https://github.com/budimanjojo/dotfiles-installer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budimanjojo%2Fdotfiles-installer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budimanjojo%2Fdotfiles-installer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budimanjojo%2Fdotfiles-installer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/budimanjojo%2Fdotfiles-installer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/budimanjojo","download_url":"https://codeload.github.com/budimanjojo/dotfiles-installer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239461541,"owners_count":19642594,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["base16-google-dark","dotfiles","installer","installer-script","nvim","tmux","vim","zsh"],"created_at":"2024-10-11T00:05:06.737Z","updated_at":"2025-11-05T14:30:30.039Z","avatar_url":"https://github.com/budimanjojo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"## dotfiles-installer\nThis repository contains my install script to configure my dotfiles. So I can just run the install script in my computer and I should get the unified looks in my terminals across machines. Please note that this is just my own personal dotfiles. You can fork this repository and use your own zshrc and vimrc by replacing yours with mine and run the install script.\nIn the future, maybe I will make this customizable for custom changes, but that's when I'm free and not guaranteed. I may not even look at this README again after setting up all my machines.\n## Screenshots\nTmux\n![render1561745632013](https://user-images.githubusercontent.com/13085918/60362720-d7f53580-9a0b-11e9-9876-79d6d18c998b.gif)\n\nZsh prompt\n![screenshot-2019-06-12_01-05-09](https://user-images.githubusercontent.com/13085918/59295937-0acec800-8caf-11e9-94ed-c88c5703e963.png)\n\nVim\n![screenshot-2019-06-12_01-07-25](https://user-images.githubusercontent.com/13085918/59295949-0dc9b880-8caf-11e9-8617-e4310db78f84.png)\n\n## What Are Included\n**Zsh**  \nThis script will install [zinit](https://github.com/zdharma/zinit) and add these plugins:\n- [Oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) as the default framework\n- [Powerlevel10K](https://github.com/romkatv/powerlevel10k) as the theme\n- [Vi-mode](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/vi-mode) for vi like mode in zsh\n- [Zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions) for the fish like autosuggestions\n- [Fast-syntax-highlighting](https://github.com/zdharma/fast-syntax-highlighting) for the fish like syntax highlighting\n- [Zsh-history-substring-search](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/history-substring-search) to fix history up down issue with vi-mode\n- [Tmux](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/tmux) for tmux autostart\n- [FZF](https://github.com/junegunn/fzf) as the fuzzy file finder\n\nThis script will also set up your shell colorschemes to `base16-google-dark` using [base16-shell](https://github.com/chriskempson/base16-shell)\n\n**Vim**  \nThis script will install [Vim-plug](https://github.com/junegunn/vim-plug) and add these plugins:\n- [Vim-easy-align](https://github.com/junegunn/vim-easy-align)\n- [Vim-colorschemes](https://github.com/flazz/vim-colorschemes)\n- [Base16-vim](https://github.com/chriskempson/base16-vim)\n- [Vim-airline](https://github.com/vim-airline/vim-airline)\n- [Vim-airline-themes](https://github.com/vim-airline/vim-airline-themes)\n- [Nerdtree](https://github.com/scrooloose/nerdtree)\n- [Nerdtree-git-plugin](https://github.com/Xuyuanp/nerdtree-git-plugin)\n- [Tcomment](https://github.com/tomtom/tcomment_vim)\n- [Vim-fugitive](https://github.com/tpope/vim-fugitive)\n- [Ale](https://github.com/w0rp/ale)\n- [Coc.nvim](https://github.com/neoclide/coc.nvim)\n- [Vim-snippets](https://github.com/honza/vim-snippets)\n- [Fzf.vim](https://github.com/junegunn/fzf.vim)\n\nCoc.nvim will have these extensions inside:\n- [coc-json](https://github.com/neoclide/coc-json)\n- [coc-snippets](https://github.com/neoclide/coc-snippets)\n- [coc-pairs](https://github.com/neoclide/coc-pairs)\n- [coc-highlight](https://github.com/neoclide/coc-highlight)\n- [coc-tsserver](https://github.com/neoclide/coc-tsserver)\n- [coc-tslint](https://github.com/neoclide/coc-tslint)\n- [coc-html](https://github.com/neoclide/coc-html)\n- [coc-css](https://github.com/neoclide/coc-css)\n- [coc-phpls](https://github.com/marlonfan/coc-phpls)\n- [coc-stylelint](https://github.com/neoclide/coc-stylelint)\n- [coc-vimlsp](https://github.com/iamcco/coc-vimlsp)\n- [coc-yaml](https://github.com/neoclide/coc-yaml)\n- [coc-emmet](https://github.com/neoclide/coc-emmet)\n\n**Note:** You need Vim version \u003e=8.0 or Neovim version \u003e=0.3.1 in order to use Coc.nvim\n\n**Tmux**  \nThis script will add a Tmux config for you. The main feature of our Tmux config is the unified colorscheme with our Zsh and Vim. Also, our preferred prefix key is `Alt+a` instead of the default `Ctrl+b` (Of cource you can change it, read more in [Customization](#customization))\n\n## Dependencies\nYou need to have these packages installed in your system if you want to set up:\n**For Zsh:**\n```\nzsh\ngit\nsilversearcher/ag\nchsh\nsvn\ncurl/wget\n```\n**For Vim:**\n```\nvim/nvim\ngit\ncurl\nnodejs\n```\n**For Tmux:**  \n`tmux`\n\n## Fonts\nPowerlevel10K and Vim-airline requires powerline fonts to work. We suggest [Nerd-fonts](https://github.com/ryanoasis/nerd-fonts) because that is what we are using. The font in the screenshot above is using UbuntuMono Nerd Font Regular.\n## Installation\nInstall list of packages needed depending on what you want to setup, if you want to install everything, then this is the command you need:\n\n**Arch Linux and Derivatives**  \n`sudo pacman -S zsh neovim git nodejs the_silver_searcher curl tmux subversion`\n\n**Ubuntu and Derivatives**  \n`sudo apt install zsh neovim git nodejs silversearcher-ag curl tmux subversion`\n\nAfter that, simply git clone this repository and run the install script. It will ask you what do you want to install. If you want to install everything without confirmation, pass the `--all` argument in the command like this:\n```\ngit clone https://github.com/budimanjojo/dotfiles-installer.git ~/.dotfiles-installer \u0026\u0026 ~/.dotfiles-installer/install.sh --all\n```\n## Updating\n**Zsh**  \nTo update Zsh plugins, simply type in `zinit update` in terminal. To update zinit, type in `zinit self-update` in terminal.\n\n**Vim**  \nTo update Vim plugins, simply do `:PlugUpdate` in your vim. For Coc extensions, you don't have to do anything. It will update by itself everyday.\n\n## Cheatsheet\n**Vim**\n\nThe prefix key is `Space`. You can override this using your custom `.vimrc.local` file. `\u003cLeader\u003e` means you need to press prefix key first. If they are not in the table, that means it is using the default Vim keybindings.\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003e\u003cb\u003eMode\u003c/b\u003e\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003cb\u003eVim Keypress\u003c/b\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cb\u003eDescription\u003c/b\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; w\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eSave file\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; x\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eSave file and quit vim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; q\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eQuit vim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; qa\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eForce quit vim without saving file\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; wq\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eSave file and quit vim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eY\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eYank from cursor to the end of file\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eInsert\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eii\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eExit Insert mode\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eK\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove Up one paragraph\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eJ\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove Down one paragraph\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eH\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove to the first character in line\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eL\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove to the last character in line\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eControl+k\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove to the split window above\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eControl+j\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove to the split window below\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eControl+h\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove to the left split window\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eControl+l\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove to the right split window\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; s\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eOpen new horizontal split window\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; v\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eOpen new vertical split window\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eInsert\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eControl+k\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove cursor Up\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eInsert\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eControl+j\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove cursor Down\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eInsert\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eControl+h\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove cursor Left\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eInsert\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eControl+l\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove cursor Right\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; tn\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eOpen new tab\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; td\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eClose tab\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; th\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eGo to previous tab\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; tl\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eGo to next tab\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; te\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eOpen new tab with current buffer's path\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal/Visual\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eTab\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eIndent current line or selection\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal/Visual\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eShift+Tab\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eDe-indent current line or selection\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; h\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eToggle search highlight on/off\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eF5\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eStrip whitespaces in file\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal/Visual\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003ega\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eAlign text with EasyAlign\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eAll\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eControl+n\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eToggle NERDTree File Manager\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; k\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eGo to previous syntax error with ALE\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; j\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eGo to next syntax error with ALE\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; ci\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eShow diagnostic message using COC.nvim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; jn\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eJump to next diagnostic position using COC.nvim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; jp\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eJump to previous diagnostic position using COC.nvim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; jd\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eJump to definition using COC.nvim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; jc\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eJump to declaration using COC.nvim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; ji\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eJump to implementation using COC.nvim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; jt\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eJump to type definition using COC.nvim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; jr\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eJump to reference using COC.nvim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal/Visual\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; cf\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eFormat range of word of selection using COC.nvim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; cr\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eRename symbol using COC.nvim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; cl\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eOpen current link using COC.nvim\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eInsert\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eAlt+n\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eJump to next snippet placeholder using COC Snippets\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eInsert\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003eAlt+p\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eJump to previous snippet placeholder using COC Snippets\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; ff\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eFuzzy file search using FZF\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; fb\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eFuzzy buffer search using FZF\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; fw\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eFuzzy window search using FZF\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; fl\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eFuzzy line search using FZF\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003eNormal\u003c/td\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;leader\u0026gt; fh\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eFuzzy history search using FZF\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n**Tmux**\n\nWe have override the default keybindings for Tmux to be more reasonable. Prefix key is `Alt+a` for local session and `Alt+z` for nested session. You can of course override this using your custom `.tmux.conf.local` file. `\u003cprefix\u003e` means you need to press prefix key first, `\u003crepeat\u003e` means you don't need to press prefix key again after triggering it within `repeat-time` set (default set to 1 second), `\u003ccopy-mode\u003e` means you must be in copy-mode first. The table below lists all the keybindings set. If they are not in the table, that means it is using the default Tmux keybindings.\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003e\u003cb\u003eTmux Keypress\u003c/b\u003e\u003c/td\u003e\n        \u003ctd\u003e\u003cb\u003eDescription\u003c/b\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; Alt+e\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eEdit tmux.conf.local file and reload configuration after saving\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; Alt+r\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eReload tmux configuration\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; f\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eFind session, window, pane from a list\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; Alt+s\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMake new horizontal split window\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; Alt+v\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMake new vertical split window\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; r\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eRename current window\u003c/td\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; R\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eRename current session\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; h\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove selection to left pane\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; j\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove selection to pane below\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; k\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove selection to pane above\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; l\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove selection to right pane\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; \u0026gt;\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eSwap to the next pane\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; \u0026lt;\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eSwap to the previous pane\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; H\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eResize current pane to the left\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; J\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eResize current pane downwards\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; K\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eResize current pane upwards\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; L\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eResize current pane to the right\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; Alt+n\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove selection to the next window\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; Alt+p\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove selection to the previous window\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; \u0026lt;repeat\u0026gt; Tab\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eMove selection to the next window\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; S\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eJoin current pane to selected window in horizontal split\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; V\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eJoin current pane to selected window in vertical split\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; x\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eClose current pane\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; X\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eClose current window\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; Alt+x\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eClose all other window window\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; a\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eGo into copy mode\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; p\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003ePaste copied text from the last buffer\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;prefix\u0026gt; P\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eChoose buffer to paste from list\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;copy-mode\u0026gt; y\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eCopy selected text\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;copy-mode\u0026gt; Y\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eCopy the whole line of selected text\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd nowrap\u003e\u003ccode\u003e\u0026lt;copy-mode\u0026gt; D\u003c/code\u003e\u003c/td\u003e\n        \u003ctd\u003eCopy untile the end of line from the selected text\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## Customization\n**ZSH**\n\nTo customize your zsh, you can create these files in your `$HOME` directory:\n- `.zshrc.before` to add stuffs you want to load before your plugins. For example, to autostart tmux you can add `ZSH-TMUX_AUTOSTART=true` in this file\n- `.zshrc.local` to add in your own custom stuffs\n- `.zshrc.bundles` to add your own zinit compatible plugins\nThis script will also add in these files in `$HOME/.zsh` folder:\n\nIn normal oh-my-zsh install, you can customize your `~/.zshrc` and your `$ZSH_CUSTOM` folder, but this install script needs to make small changes for FZF and COC Vim to work. So, please don't edit your ~/.zshrc manually, but edit the files inside `~/.zsh` directory instead. This install script will put in 4 files for you to customize:\n- `general.zsh` contains your own general settings for oh-my-zsh\n- `alias.zsh` contains your own aliases\n- `looks.zsh` contains the customization options for Powerlevel10k theme\n- `plugs.zsh` contains settings for plugins\n\nTo change the included `base16-google-dark` colorscheme, you can type `base16` followed by a tab to perform tab completion.\n\n**Vim**\n\nYou can create a new file in your `$HOME` folder call `.vimrc.local` and put in what you want to override in that file.\n\n**Tmux**\n\nYou can simply create a new file in your `$HOME` folder call `.tmux.conf.local` and put in what you want to override in that file. After that, source that file in tmux and you are done. You can do it with this keybindings:\n- `Alt+a,Alt+e` to edit tmux.conf.local file\n- `Alt+a,Alt+r` to re source your tmux\nYou can also add Tmux plugins into your .tmux.conf.local file normally.\n\n## To do\n- [ ] Better way to use custom configs\n- [ ] Use separate files instead of one vimrc\n- [x] Better way to handle custom Powerlevel9k settings\n- [x] Include Tmux config\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbudimanjojo%2Fdotfiles-installer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbudimanjojo%2Fdotfiles-installer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbudimanjojo%2Fdotfiles-installer/lists"}