├── .gitignore ├── apps ├── browsers.yaml ├── espanso │ ├── files │ │ └── default.yaml │ └── main.yaml ├── macos.yaml └── vscode.yaml ├── dev ├── core.yaml ├── git │ ├── files │ │ ├── config │ │ └── ignores │ └── main.yaml ├── go.yaml ├── neovim.yaml ├── nodejs.yaml └── rust.yaml ├── fonts └── main.yaml ├── jarvis ├── .gitignore ├── LICENSE ├── README.md ├── config │ ├── Pecan │ │ └── style.css │ └── nvim │ │ ├── coc-settings.json │ │ ├── init.vim │ │ ├── plugins.vim │ │ ├── snippets │ │ └── javascript.snip │ │ └── space.vim ├── docs │ ├── COMMANDS.md │ └── INSTALL.md ├── install.sh ├── install │ ├── backup.sh │ └── link.sh ├── iterm │ └── com.googlecode.iterm2.plist ├── tmux │ └── tmux.conf.symlink └── zsh │ └── zshrc.symlink ├── oceanic-next-iterm ├── Oceanic-Dark-iterm3.itermcolors ├── Oceanic-Next.itermcolors ├── README.md └── oceanic-next-iterm.png ├── scripts ├── defaults.sh └── oh-my-zsh.sh └── shell ├── cargo ├── files │ └── env └── main.yaml ├── shell.yaml ├── starship ├── files │ └── starship.toml └── main.yaml ├── zfunc ├── files │ └── hello └── main.yaml └── zsh ├── files ├── zprofile ├── zshenv └── zshrc └── main.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | comtrya 2 | -------------------------------------------------------------------------------- /apps/browsers.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | - action: package.install 3 | repository: homebrew/cask-versions 4 | list: 5 | - firefox-developer-edition 6 | - microsoft-edge-dev 7 | -------------------------------------------------------------------------------- /apps/espanso/files/default.yaml: -------------------------------------------------------------------------------- 1 | secure_input_notification: false 2 | 3 | matches: 4 | # Simple text replacement 5 | - trigger: ":ecamm" 6 | replace: "https://guest.ecamm.live/fd8d68bc8" 7 | 8 | # Dates 9 | - trigger: ":date" 10 | replace: "{{mydate}}" 11 | vars: 12 | - name: mydate 13 | type: date 14 | params: 15 | format: "%m/%d/%Y" 16 | 17 | # Shell commands 18 | - trigger: ":shell" 19 | replace: "{{output}}" 20 | vars: 21 | - name: output 22 | type: shell 23 | params: 24 | cmd: "echo Hello from your shell" 25 | -------------------------------------------------------------------------------- /apps/espanso/main.yaml: -------------------------------------------------------------------------------- 1 | depends: 2 | - git 3 | 4 | actions: 5 | - name: espanso 6 | action: package.install 7 | repository: federico-terzi/espanso 8 | 9 | - action: file.copy 10 | from: default.yaml 11 | to: "{{ user.home_dir }}/Library/Preferences/espanso/default.yml" 12 | template: false 13 | -------------------------------------------------------------------------------- /apps/macos.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | - action: package.install 3 | list: 4 | - alt-tab 5 | - iterm2 6 | -------------------------------------------------------------------------------- /apps/vscode.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - action: package.install 3 | repository: homebrew/cask-versions 4 | list: 5 | - visual-studio-code-insiders 6 | -------------------------------------------------------------------------------- /dev/core.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | - action: package.install 3 | list: 4 | - gh 5 | 6 | -------------------------------------------------------------------------------- /dev/git/files/config: -------------------------------------------------------------------------------- 1 | [user] 2 | name = Brian Ketelsen 3 | email = bketelsen@gmail.com 4 | [apply] 5 | whitespace=warn 6 | [color] 7 | branch = auto 8 | diff = auto 9 | status = auto 10 | ui=true 11 | [help] 12 | autocorrect = 1 13 | [status] 14 | submodule = 1 15 | [push] 16 | # Only push branches that have been set up to track a remote branch. 17 | default = current 18 | [alias] 19 | rl = reflog 20 | ls = log -S 21 | s = status --short 22 | a = add 23 | c = commit -m 24 | au = add -u :/ 25 | rm = rm 26 | b = branch 27 | m = merge --no-ff 28 | mff = merge --ff-only 29 | p = pull 30 | pu = push 31 | f = fetch 32 | st = stash 33 | stp = stash pop 34 | d = diff 35 | co = checkout 36 | l = log --graph --pretty=format':%C(yellow)%h%C(green)%d%Creset %s %C(white) %an, %ar%Creset' 37 | unstage = reset HEAD 38 | staged = diff --cached 39 | unstaged = diff 40 | [core] 41 | excludesfile = ~/.gitignore 42 | [filter "lfs"] 43 | required = true 44 | clean = git-lfs clean -- %f 45 | smudge = git-lfs smudge -- %f 46 | process = git-lfs filter-process 47 | [init] 48 | defaultBranch = main 49 | [pull] 50 | rebase = false -------------------------------------------------------------------------------- /dev/git/files/ignores: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .envrc 3 | # Folder view configuration files 4 | Desktop.ini 5 | 6 | # Thumbnail cache files 7 | ._* 8 | Thumbs.db 9 | 10 | # Files that might appear on external disks 11 | .Spotlight-V100 12 | .Trashes 13 | 14 | # Compiled Python files 15 | *.pyc 16 | 17 | # Compiled C++ files 18 | *.out 19 | 20 | # Application specific files 21 | venv 22 | node_modules 23 | .sass-cache 24 | -------------------------------------------------------------------------------- /dev/git/main.yaml: -------------------------------------------------------------------------------- 1 | depends: 2 | - rust 3 | 4 | actions: 5 | - action: package.install 6 | name: git 7 | 8 | - action: file.copy 9 | from: config 10 | to: "{{ user.home_dir }}/.gitconfig" 11 | - action: file.copy 12 | from: ignores 13 | to: "{{ user.home_dir }}/.config/git/ignores" 14 | template: false 15 | -------------------------------------------------------------------------------- /dev/go.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | - action: package.install 3 | name: go 4 | -------------------------------------------------------------------------------- /dev/neovim.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | - action: package.install 3 | name: neovim 4 | extra_args: 5 | - --HEAD 6 | 7 | -------------------------------------------------------------------------------- /dev/nodejs.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | - action: package.install 3 | list: 4 | - node 5 | - typescript 6 | - yarn 7 | - pnpm 8 | -------------------------------------------------------------------------------- /dev/rust.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | - action: package.install 3 | list: 4 | - rustup-init 5 | -------------------------------------------------------------------------------- /fonts/main.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | - action: package.install 3 | repository: homebrew/cask-fonts 4 | list: 5 | - font-cascadia-code 6 | - font-cascadia-code-pl 7 | - font-courgette 8 | - font-redressed 9 | -------------------------------------------------------------------------------- /jarvis/.gitignore: -------------------------------------------------------------------------------- 1 | # Temporary 2 | .netrwhist 3 | *~ 4 | # Auto-generated tag files 5 | tags 6 | 7 | tmp/* 8 | 9 | vimrc.local 10 | config/nvim/plugged 11 | config/nvim/autoload/plug.vim 12 | backup/ 13 | *.log 14 | .DS_Store 15 | -------------------------------------------------------------------------------- /jarvis/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Caleb Taylor 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /jarvis/README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | PR's Welcome 6 | 7 | 8 | 9 |
10 | 11 |

Jarvis

12 | 13 |
14 | (Neo)Vim of the Future 15 |
16 |
17 | A powerful, minimalist development environment with cutting-edge features 18 |
19 |
20 | 21 |
22 | 23 |
24 | 25 |
26 | Jarvis SS 27 |
28 |
29 | 30 | ## Table of Contents 31 | - [Features](#features) 32 | - [Installation](#installation) 33 | - [Commands](#commands) 34 | - [Support](#support) 35 | 36 | ## Features 37 | 38 | The following are features provided by Jarvis. They all have quick keybindings to make them quick and easy to use. 39 | 40 | 1. **Quick-open files** - *zsh* & *NeoVim* 41 | 42 | Open files with simple keystrokes with fuzzy matching via command line and inside NeoVim. 43 | 44 | 45 | 46 | 2. **Buffer management** - *NeoVim* 47 | 48 | Manage buffers inside NeoVim and add/delete/search your open files. 49 | 50 | 51 | 52 | 3. **Project searching** - *NeoVim* 53 | 54 | Quickly search for simple terms or complex regular expressions in your project. 55 | 56 | 57 | 58 | 4. **Asynchronous linting** - *NeoVim* 59 | 60 | For Typescript/Javascript development, code is linted asynchronously with [coc-eslint](https://github.com/neoclide/coc-eslint) and automatically formatted via [coc-prettier](https://github.com/neoclide/coc-prettier) on file save to conform to [prettier](https://prettier.io/) standards. 61 | 62 | 63 | 64 | 5. **Session management** - *Tmux* and *zsh/fzf* 65 | 66 | Create sessions for each project with a custom layout. Quickly browse, create, and delete sessions. Tmux even keeps sessions alive if the terminal is closed. Using `fzf` and `zsh`, you can create or switch to sessions easily, as well as delete session by name or fuzzy-search. 67 | 68 | 69 | 70 | 6. **Keyword auto-complete** - *NeoVim* and *zsh* 71 | 72 | Neovim - Automatic, asynchronous keyword completion available in the current buffer via [coc.nvim](https://github.com/neoclide/coc.nvim). It's powered by the same language server extensions as VSCode. It also supports the new "floating window" feature so you can finally have syntax highlighting in your completion windows! 73 | 74 | 75 | 76 | A variety of languages are supported by coc.nvim. I currently use a pretty standard set for web development that I will continue to tweak as needed. 77 | - [Typescript/Javascript](https://github.com/neoclide/coc-tsserver): `:CocInstall coc-tsserver` 78 | - [Eslint](https://github.com/neoclide/coc-eslint): `:CocInstall coc-eslint` 79 | - [Prettier](https://github.com/neoclide/coc-prettier): `:CocInstall coc-prettier` 80 | - [CSS](https://github.com/neoclide/coc-css): `:CocInstall coc-css` 81 | - [json](https://github.com/neoclide/coc-json): `:CocInstall coc-json` 82 | 83 | 7. **Code Snippets** - *NeoVim* 84 | 85 | Commonly used code snippets made available with a few keystrokes to reduce time and effort via [neosnippet](https://github.com/Shougo/neosnippet.vim). Snippets available via auto-complete window removes need to memorize commands. Quickly hop to relevant pieces of snippet as needed. 86 | 87 | 88 | 89 | 8. **Improved Vim motion** - *NeoVim* 90 | 91 | Using [vim-easymotion](https://github.com/easymotion/vim-easymotion), quickly jump to precise locations with minimal keystrokes. 92 | 93 | 94 | 95 | ## Installation 96 | 97 | Neovim is supported across multiple platforms. Some tools used by Jarvis are not, however. For MacOSX, an installation script is included 98 | that will install several tools for you. For Windows, no installation script is available, but you can manually install everything 99 | needed for Neovim in a few short steps. 100 | 101 | See the [Installation Guide](docs/INSTALL.md) for detailed instructions. 102 | 103 | ## Commands 104 | 105 | See the [Commands Guide](docs/COMMANDS.md) for a list of mappings/shortcuts. 106 | 107 | ## Optional Tools 108 | This is a collection of cool tools that you might want to use. 109 | 110 | [`z`](https://github.com/rupa/z)\* - Tracks most commonly used directories for optimized directory switching 111 | 112 | [`vtop`](https://github.com/MrRio/vtop)\* - A nifty graphical activity monitor for the command line 113 | 114 | [`taskbook`](https://github.com/klauscfhq/taskbook) - Tasks, boards, & notes for command-line. Think Trello for the terminal. 115 | 116 | [`pecan`](https://github.com/zzzeyez/Pecan) - Configurable menu bar for OSX. 117 | 118 | [`vim-markdown-composer`](https://github.com/euclio/vim-markdown-composer) - Asynchronous markdown preview plugin for Vim/Neovim. 119 | 120 | [`shpotify`](https://github.com/hnarayanan/shpotify) - Control Spotify from the command line (OSX-only) 121 | 122 | > **\*** - Tool is installed automatically if `install.sh` script is used 123 | 124 | ## Support 125 | 126 | If you find any problems or bugs, please open a new [issue](https://github.com/ctaylo21/jarvis/issues). 127 | -------------------------------------------------------------------------------- /jarvis/config/Pecan/style.css: -------------------------------------------------------------------------------- 1 | /* Custom CSS file for Pecan header */ 2 | /* Tweaked to match Oceanic-next theme */ 3 | /* Place in ~/Library/Application Support/Übersicht/widgets/Pecan/style.css */ 4 | 5 | /* Pecan is a bar for Ubersicht */ 6 | /* Written by Daniel Neemann */ 7 | :root { 8 | /* Choose background colors, ordered from left to right */ 9 | /* Set --pecan-bg-center to "none" to have date's background same as bar */ 10 | /* #1B2B34 */ 11 | --pecan-bg: none; 12 | --pecan-bg-left: #6699CC; 13 | --pecan-bg-left2: #6699CC; 14 | --pecan-bg-center: #1B2B34; 15 | --pecan-bg-right2: #5FB3B3; 16 | --pecan-bg-right: #C594C5; 17 | /* Choose foreground colors */ 18 | --pecan-fg-left: #D8DEE9; 19 | --pecan-fg-left2: #343D46; 20 | --pecan-fg-center: #D8DEE9; 21 | --pecan-fg-right2: #343D46; 22 | --pecan-fg-right: #343D46; 23 | /* Opacity. Change --pecan-opacity-center to 0 in order to hide date */ 24 | /* --pecan-opacity affects --pecan-border, so set it to 0 if you would like */ 25 | /* for every widget to appear independent. */ 26 | --pecan-opacity: 0; 27 | --pecan-opacity-inner: 1; 28 | --pecan-opacity-center: 1; 29 | /* Shadow. */ 30 | --pecan-shadow: 0px 4px 10px 4px rgba(0,0,0,0.15); 31 | --pecan-shadow-inner: 0px 1px 1px 1px rgba(0,0,0,0.0); 32 | /* Bar's total height including --pecan-border and excluding padding */ 33 | --pecan-height: 36px; 34 | /* Entire bar's outer padding (use --pecan-border for space between widgets) */ 35 | --pecan-padding-left: 0px; 36 | --pecan-padding-right: 0px; 37 | --pecan-padding-v: 0px; 38 | /* Border size. Also functions as space between widgets, */ 39 | /* so set --pecan-opacity to 0 if you want widgets to appear independent */ 40 | --pecan-border: 5px; 41 | /* Rounded corner radius */ 42 | /* Inner radius is best suited for when widgets appear independent */ 43 | /* by setting --pecan-opacity to 0 */ 44 | --pecan-border-radius: 0px; 45 | --pecan-border-radius-inner: 5px; 46 | /* Inner-horizontal padding. --pecan-height determines inner-vertical padding */ 47 | --pecan-text-padding: 3ch; 48 | /* Alignment */ 49 | /* Set 0 to where you want the bar aligned */ 50 | /* and "auto" where you don't */ 51 | --pecan-alignment-top: 0; 52 | --pecan-alignment-bottom: auto; 53 | /* Mono font recommended (alignment depends on character width) */ 54 | --pecan-font: Hack, SF Mono, Menlo; 55 | --pecan-font-size: 11px; 56 | --pecan-font-style: none; 57 | /* Xanthia */ 58 | /* If Xanthia is not installed then these values will be ignored */ 59 | --pecan-xanthia-bg: #545256; 60 | --pecan-xanthia-fg: #D8D4D0; 61 | /* This is padding from edge of screen */ 62 | --pecan-xanthia-horizontal: calc(var(--pecan-padding-right) + calc(var(--pecan-text-padding) * 4) + 14ch + calc(3 * var(--pecan-border))); 63 | --pecan-xanthia-vertical: calc(var(--pecan-border) + var(--pecan-padding-v)); 64 | /* These are maximum sizes */ 65 | --pecan-xanthia-width: auto; 66 | --pecan-xanthia-height: calc(var(--pecan-height) - calc(var(--pecan-border) * 2)); 67 | --pecan-xanthia-border-radius: var(--pecan-border-radius-inner); 68 | --pecan-xanthia-shadow: var(--pecan-shadow-inner); 69 | } 70 | 71 | /* Get monitor width */ 72 | .screen { 73 | width: 100vw; 74 | height: 100vh; 75 | } 76 | 77 | /* Bar background */ 78 | .pecanbackground { 79 | background-color: var(--pecan-bg); 80 | display: block; 81 | position: absolute; 82 | height: var(--pecan-height); 83 | top: var(--pecan-alignment-top); 84 | right: 0px; 85 | bottom: var(--pecan-alignment-bottom); 86 | left: 0px; 87 | margin-top: var(--pecan-padding-v); 88 | margin-right: var(--pecan-padding-right); 89 | margin-bottom: var(--pecan-padding-v); 90 | margin-left: var(--pecan-padding-left); 91 | opacity: var(--pecan-opacity); 92 | z-index: -1; 93 | box-shadow: var(--pecan-shadow); 94 | border-top-left-radius: calc(var(--pecan-border) + 1px + var(--pecan-border-radius)); 95 | border-top-right-radius: calc(var(--pecan-border) + 1px + var(--pecan-border-radius)); 96 | border-bottom-right-radius: var(--pecan-border-radius-inner); 97 | border-bottom-left-radius: var(--pecan-border-radius-inner); 98 | } 99 | 100 | /* Workspace indicator -- far left */ 101 | .pecanworkspace { 102 | font: var(--pecan-font-size) var(--pecan-font); 103 | font-style: var(--pecan-font-style); 104 | color: var(--pecan-fg-left); 105 | display: inline-block; 106 | position: absolute; 107 | background-color: var(--pecan-bg-left); 108 | opacity: var(--pecan-opacity-inner); 109 | top: var(--pecan-alignment-top); 110 | right: auto; 111 | bottom: var(--pecan-alignment-bottom); 112 | left: 0px; 113 | padding: 0px var(--pecan-text-padding); 114 | margin-top: calc(var(--pecan-padding-v) + var(--pecan-border)); 115 | margin-bottom: calc(var(--pecan-padding-v) + var(--pecan-border)); 116 | margin-left: calc(var(--pecan-padding-left) + var(--pecan-border)); 117 | line-height: calc(var(--pecan-height) - calc(var(--pecan-border) * 2)); 118 | border-top-left-radius: var(--pecan-border-radius-inner); 119 | border-top-right-radius: var(--pecan-border-radius-inner); 120 | border-bottom-right-radius: var(--pecan-border-radius-inner); 121 | border-bottom-left-radius: var(--pecan-border-radius-inner); 122 | box-shadow: var(--pecan-shadow-inner); 123 | display: none; 124 | } 125 | 126 | /* Network bandwidth -- 2nd to left */ 127 | .pecannetwork { 128 | font: var(--pecan-font-size) var(--pecan-font); 129 | font-style: var(--pecan-font-style); 130 | background-color: var(--pecan-bg-left2); 131 | opacity: var(--pecan-opacity-inner); 132 | color: var(--pecan-fg-left2); 133 | position: absolute; 134 | display: inline-block; 135 | top: var(--pecan-alignment-top); 136 | right: auto; 137 | bottom: var(--pecan-alignment-bottom); 138 | left: 0px; 139 | padding: 0px var(--pecan-text-padding); 140 | margin-top: calc(var(--pecan-border) + var(--pecan-padding-v)); 141 | margin-bottom: calc(var(--pecan-border) + var(--pecan-padding-v)); 142 | margin-left: calc(var(--pecan-border) + var(--pecan-padding-left)); 143 | line-height: calc(var(--pecan-height) - calc(var(--pecan-border) * 2)); 144 | border-top-left-radius: var(--pecan-border-radius-inner); 145 | border-top-right-radius: var(--pecan-border-radius-inner); 146 | border-bottom-right-radius: var(--pecan-border-radius-inner); 147 | border-bottom-left-radius: var(--pecan-border-radius-inner); 148 | box-shadow: var(--pecan-shadow-inner); 149 | } 150 | 151 | /* Date -- third to left -- set --pecan-opacity-center to 0 to hide */ 152 | .pecandate { 153 | font: var(--pecan-font-size) var(--pecan-font); 154 | font-style: var(--pecan-font-style); 155 | color: var(--pecan-fg-center); 156 | background-color: var(--pecan-bg-center); 157 | opacity: var(--pecan-opacity-center); 158 | position: absolute; 159 | display: inline-block; 160 | padding: 0px var(--pecan-text-padding); 161 | width: auto; 162 | top: var(--pecan-alignment-top); 163 | bottom: var(--pecan-alignment-bottom); 164 | left: 50%; 165 | transform: translate(-50%); 166 | margin: var(--pecan-border); 167 | line-height: calc(var(--pecan-height) - calc(var(--pecan-border) * 2)); 168 | text-align: center; 169 | border-top-left-radius: var(--pecan-border-radius-inner); 170 | border-top-right-radius: var(--pecan-border-radius-inner); 171 | border-bottom-right-radius: var(--pecan-border-radius-inner); 172 | border-bottom-left-radius: var(--pecan-border-radius-inner); 173 | box-shadow: var(--pecan-shadow-inner); 174 | } 175 | 176 | /* This is a container to align the center widget */ 177 | .holder { 178 | background-color: none; 179 | display: inline-block; 180 | position: absolute; 181 | height: var(--pecan-height); 182 | top: var(--pecan-alignment-top); 183 | right: 0px; 184 | bottom: var(--pecan-alignment-bottom); 185 | left: 0px; 186 | margin-top: var(--pecan-padding-v); 187 | margin-right: var(--pecan-padding-right); 188 | margin-bottom: var(--pecan-padding-v); 189 | margin-left: var(--pecan-padding-left); 190 | } 191 | 192 | /* Battery percentage -- 4th to left */ 193 | .pecanbattery { 194 | font: var(--pecan-font-size) var(--pecan-font); 195 | font-style: var(--pecan-font-style); 196 | color: var(--pecan-fg-right2); 197 | display: inline-block; 198 | position: absolute; 199 | background-color: var(--pecan-bg-right2); 200 | opacity: var(--pecan-opacity-inner); 201 | padding: 0px var(--pecan-text-padding); 202 | top: var(--pecan-alignment-top); 203 | right: 5px; 204 | bottom: var(--pecan-alignment-bottom); 205 | left: auto; 206 | margin-top: calc(var(--pecan-padding-v) + var(--pecan-border)); 207 | margin-right: calc(var(--pecan-padding-right) + calc(var(--pecan-text-padding) * 2) + 9ch + calc(var(--pecan-border) * 2)); 208 | margin-bottom: calc(var(--pecan-padding-v) + var(--pecan-border)); 209 | line-height: calc(var(--pecan-height) - calc(var(--pecan-border) * 2)); 210 | border-top-left-radius: var(--pecan-border-radius-inner); 211 | border-top-right-radius: var(--pecan-border-radius-inner); 212 | border-bottom-right-radius: var(--pecan-border-radius-inner); 213 | border-bottom-left-radius: var(--pecan-border-radius-inner); 214 | box-shadow: var(--pecan-shadow-inner); 215 | } 216 | 217 | /* Clock -- 5th to left */ 218 | .pecanclock { 219 | font: var(--pecan-font-size) var(--pecan-font); 220 | font-style: var(--pecan-font-style); 221 | color: var(--pecan-fg-right); 222 | display: inline-block; 223 | position: absolute; 224 | background-color: var(--pecan-bg-right); 225 | opacity: var(--pecan-opacity-inner); 226 | padding: 0px var(--pecan-text-padding); 227 | margin: var(--pecan-border); 228 | top: var(--pecan-alignment-top); 229 | right: 0px; 230 | bottom: var(--pecan-alignment-bottom); 231 | left: auto; 232 | margin-top: calc(var(--pecan-padding-v) + var(--pecan-border)); 233 | margin-right: calc(var(--pecan-border) + var(--pecan-padding-right)); 234 | margin-bottom: calc(var(--pecan-padding-v) + var(--pecan-border)); 235 | line-height: calc(var(--pecan-height) - calc(var(--pecan-border) * 2)); 236 | border-top-left-radius: var(--pecan-border-radius-inner); 237 | border-top-right-radius: var(--pecan-border-radius-inner); 238 | border-bottom-right-radius: var(--pecan-border-radius-inner); 239 | border-bottom-left-radius: var(--pecan-border-radius-inner); 240 | box-shadow: var(--pecan-shadow-inner); 241 | } 242 | -------------------------------------------------------------------------------- /jarvis/config/nvim/coc-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "suggest.echodocSupport": true, 3 | "suggest.maxCompleteItemCount": 20, 4 | "coc.preferences.formatOnSaveFiletypes": ["javascript", "typescript", "typescriptreact", "json", "javascriptreact", "typescript.tsx"], 5 | "eslint.filetypes": ["javascript", "typescript", "typescriptreact", "javascriptreact", "typescript.tsx"], 6 | "diagnostic.errorSign": "•", 7 | "diagnostic.warningSign": "•", 8 | "diagnostic.infoSign": "•" 9 | } 10 | 11 | -------------------------------------------------------------------------------- /jarvis/config/nvim/init.vim: -------------------------------------------------------------------------------- 1 | scriptencoding utf-8 2 | source ~/.config/nvim/plugins.vim 3 | 4 | " ============================================================================ " 5 | " === EDITING OPTIONS === " 6 | " ============================================================================ " 7 | 8 | " Remap leader key to , 9 | let g:mapleader=',' 10 | 11 | " Disable line numbers 12 | set nonumber 13 | 14 | " Don't show last command 15 | set noshowcmd 16 | 17 | " Yank and paste with the system clipboard 18 | set clipboard=unnamed 19 | 20 | " Hides buffers instead of closing them 21 | set hidden 22 | 23 | " === TAB/Space settings === " 24 | " Insert spaces when TAB is pressed. 25 | set expandtab 26 | 27 | " Change number of spaces that a counts for during editing ops 28 | set softtabstop=2 29 | 30 | " Indentation amount for < and > commands. 31 | set shiftwidth=2 32 | 33 | " do not wrap long lines by default 34 | set nowrap 35 | 36 | " Don't highlight current cursor line 37 | set nocursorline 38 | 39 | " Disable line/column number in status line 40 | " Shows up in preview window when airline is disabled if not 41 | set noruler 42 | 43 | " Only one line for command line 44 | set cmdheight=1 45 | 46 | " === Completion Settings === " 47 | 48 | " Don't give completion messages like 'match 1 of 2' 49 | " or 'The only match' 50 | set shortmess+=c 51 | 52 | " ============================================================================ " 53 | " === PLUGIN SETUP === " 54 | " ============================================================================ " 55 | 56 | " Wrap in try/catch to avoid errors on initial install before plugin is available 57 | try 58 | " === Denite setup ===" 59 | " Use ripgrep for searching current directory for files 60 | " By default, ripgrep will respect rules in .gitignore 61 | " --files: Print each file that would be searched (but don't search) 62 | " --glob: Include or exclues files for searching that match the given glob 63 | " (aka ignore .git files) 64 | " 65 | call denite#custom#var('file/rec', 'command', ['rg', '--files', '--glob', '!.git']) 66 | 67 | " Use ripgrep in place of "grep" 68 | call denite#custom#var('grep', 'command', ['rg']) 69 | 70 | " Custom options for ripgrep 71 | " --vimgrep: Show results with every match on it's own line 72 | " --hidden: Search hidden directories and files 73 | " --heading: Show the file name above clusters of matches from each file 74 | " --S: Search case insensitively if the pattern is all lowercase 75 | call denite#custom#var('grep', 'default_opts', ['--hidden', '--vimgrep', '--heading', '-S']) 76 | 77 | " Recommended defaults for ripgrep via Denite docs 78 | call denite#custom#var('grep', 'recursive_opts', []) 79 | call denite#custom#var('grep', 'pattern_opt', ['--regexp']) 80 | call denite#custom#var('grep', 'separator', ['--']) 81 | call denite#custom#var('grep', 'final_opts', []) 82 | 83 | " Remove date from buffer list 84 | call denite#custom#var('buffer', 'date_format', '') 85 | 86 | " Custom options for Denite 87 | " split - Use floating window for Denite 88 | " start_filter - Start filtering on default 89 | " auto_resize - Auto resize the Denite window height automatically. 90 | " source_names - Use short long names if multiple sources 91 | " prompt - Customize denite prompt 92 | " highlight_matched_char - Matched characters highlight 93 | " highlight_matched_range - matched range highlight 94 | " highlight_window_background - Change background group in floating window 95 | " highlight_filter_background - Change background group in floating filter window 96 | " winrow - Set Denite filter window to top 97 | " vertical_preview - Open the preview window vertically 98 | 99 | let s:denite_options = {'default' : { 100 | \ 'split': 'floating', 101 | \ 'start_filter': 1, 102 | \ 'auto_resize': 1, 103 | \ 'source_names': 'short', 104 | \ 'prompt': 'λ ', 105 | \ 'highlight_matched_char': 'QuickFixLine', 106 | \ 'highlight_matched_range': 'Visual', 107 | \ 'highlight_window_background': 'Visual', 108 | \ 'highlight_filter_background': 'DiffAdd', 109 | \ 'winrow': 1, 110 | \ 'vertical_preview': 1 111 | \ }} 112 | 113 | " Loop through denite options and enable them 114 | function! s:profile(opts) abort 115 | for l:fname in keys(a:opts) 116 | for l:dopt in keys(a:opts[l:fname]) 117 | call denite#custom#option(l:fname, l:dopt, a:opts[l:fname][l:dopt]) 118 | endfor 119 | endfor 120 | endfunction 121 | 122 | call s:profile(s:denite_options) 123 | catch 124 | echo 'Denite not installed. It should work after running :PlugInstall' 125 | endtry 126 | 127 | " === Coc.nvim === " 128 | " use for trigger completion and navigate to next complete item 129 | function! s:check_back_space() abort 130 | let col = col('.') - 1 131 | return !col || getline('.')[col - 1] =~ '\s' 132 | endfunction 133 | 134 | inoremap 135 | \ pumvisible() ? "\" : 136 | \ check_back_space() ? "\" : 137 | \ coc#refresh() 138 | 139 | "Close preview window when completion is done. 140 | autocmd! CompleteDone * if pumvisible() == 0 | pclose | endif 141 | 142 | " === NeoSnippet === " 143 | " Map as shortcut to activate snippet if available 144 | imap (neosnippet_expand_or_jump) 145 | smap (neosnippet_expand_or_jump) 146 | xmap (neosnippet_expand_target) 147 | 148 | " Load custom snippets from snippets folder 149 | let g:neosnippet#snippets_directory='~/.config/nvim/snippets' 150 | 151 | " Hide conceal markers 152 | let g:neosnippet#enable_conceal_markers = 0 153 | 154 | " === NERDTree === " 155 | " Show hidden files/directories 156 | let g:NERDTreeShowHidden = 1 157 | 158 | " Remove bookmarks and help text from NERDTree 159 | let g:NERDTreeMinimalUI = 1 160 | 161 | " Custom icons for expandable/expanded directories 162 | let g:NERDTreeDirArrowExpandable = '⬏' 163 | let g:NERDTreeDirArrowCollapsible = '⬎' 164 | 165 | " Hide certain files and directories from NERDTree 166 | let g:NERDTreeIgnore = ['^\.DS_Store$', '^tags$', '\.git$[[dir]]', '\.idea$[[dir]]', '\.sass-cache$'] 167 | 168 | " Wrap in try/catch to avoid errors on initial install before plugin is available 169 | try 170 | 171 | " === Vim airline ==== " 172 | " Enable extensions 173 | let g:airline_extensions = ['branch', 'hunks', 'coc'] 174 | 175 | " Update section z to just have line number 176 | let g:airline_section_z = airline#section#create(['linenr']) 177 | 178 | " Do not draw separators for empty sections (only for the active window) > 179 | let g:airline_skip_empty_sections = 1 180 | 181 | " Smartly uniquify buffers names with similar filename, suppressing common parts of paths. 182 | let g:airline#extensions#tabline#formatter = 'unique_tail' 183 | 184 | " Custom setup that removes filetype/whitespace from default vim airline bar 185 | let g:airline#extensions#default#layout = [['a', 'b', 'c'], ['x', 'z', 'warning', 'error']] 186 | 187 | " Customize vim airline per filetype 188 | " 'nerdtree' - Hide nerdtree status line 189 | " 'list' - Only show file type plus current line number out of total 190 | let g:airline_filetype_overrides = { 191 | \ 'nerdtree': [ get(g:, 'NERDTreeStatusline', ''), '' ], 192 | \ 'list': [ '%y', '%l/%L'], 193 | \ } 194 | 195 | " Enable powerline fonts 196 | let g:airline_powerline_fonts = 1 197 | 198 | " Enable caching of syntax highlighting groups 199 | let g:airline_highlighting_cache = 1 200 | 201 | " Define custom airline symbols 202 | if !exists('g:airline_symbols') 203 | let g:airline_symbols = {} 204 | endif 205 | 206 | " Don't show git changes to current file in airline 207 | let g:airline#extensions#hunks#enabled=0 208 | 209 | catch 210 | echo 'Airline not installed. It should work after running :PlugInstall' 211 | endtry 212 | 213 | " === echodoc === " 214 | " Enable echodoc on startup 215 | let g:echodoc#enable_at_startup = 1 216 | 217 | " === vim-javascript === " 218 | " Enable syntax highlighting for JSDoc 219 | let g:javascript_plugin_jsdoc = 1 220 | 221 | " === vim-jsx === " 222 | " Highlight jsx syntax even in non .jsx files 223 | let g:jsx_ext_required = 0 224 | 225 | " === javascript-libraries-syntax === " 226 | let g:used_javascript_libs = 'underscore,requirejs,chai,jquery' 227 | 228 | " === Signify === " 229 | let g:signify_sign_delete = '-' 230 | 231 | " ============================================================================ " 232 | " === UI === " 233 | " ============================================================================ " 234 | 235 | " Enable true color support 236 | set termguicolors 237 | 238 | " Vim airline theme 239 | let g:airline_theme='space' 240 | 241 | " Change vertical split character to be a space (essentially hide it) 242 | set fillchars+=vert:. 243 | 244 | " Set preview window to appear at bottom 245 | set splitbelow 246 | 247 | " Don't dispay mode in command line (airilne already shows it) 248 | set noshowmode 249 | 250 | " Set floating window to be slightly transparent 251 | set winbl=10 252 | 253 | " ============================================================================ " 254 | " === CUSTOM COLORSCHEME CHANGES === " 255 | " ============================================================================ " 256 | " 257 | " Add custom highlights in method that is executed every time a colorscheme is sourced 258 | " See https://gist.github.com/romainl/379904f91fa40533175dfaec4c833f2f for details 259 | function! TrailingSpaceHighlights() abort 260 | " Hightlight trailing whitespace 261 | highlight Trail ctermbg=red guibg=red 262 | call matchadd('Trail', '\s\+$', 100) 263 | endfunction 264 | 265 | function! s:custom_jarvis_colors() 266 | " coc.nvim color changes 267 | hi link CocErrorSign WarningMsg 268 | hi link CocWarningSign Number 269 | hi link CocInfoSign Type 270 | 271 | " Make background transparent for many things 272 | hi Normal ctermbg=NONE guibg=NONE 273 | hi NonText ctermbg=NONE guibg=NONE 274 | hi LineNr ctermfg=NONE guibg=NONE 275 | hi SignColumn ctermfg=NONE guibg=NONE 276 | hi StatusLine guifg=#16252b guibg=#6699CC 277 | hi StatusLineNC guifg=#16252b guibg=#16252b 278 | 279 | " Try to hide vertical spit and end of buffer symbol 280 | hi VertSplit gui=NONE guifg=#17252c guibg=#17252c 281 | hi EndOfBuffer ctermbg=NONE ctermfg=NONE guibg=#17252c guifg=#17252c 282 | 283 | " Customize NERDTree directory 284 | hi NERDTreeCWD guifg=#99c794 285 | 286 | " Make background color transparent for git changes 287 | hi SignifySignAdd guibg=NONE 288 | hi SignifySignDelete guibg=NONE 289 | hi SignifySignChange guibg=NONE 290 | 291 | " Highlight git change signs 292 | hi SignifySignAdd guifg=#99c794 293 | hi SignifySignDelete guifg=#ec5f67 294 | hi SignifySignChange guifg=#c594c5 295 | endfunction 296 | 297 | autocmd! ColorScheme * call TrailingSpaceHighlights() 298 | autocmd! ColorScheme OceanicNext call s:custom_jarvis_colors() 299 | 300 | " Call method on window enter 301 | augroup WindowManagement 302 | autocmd! 303 | autocmd WinEnter * call Handle_Win_Enter() 304 | augroup END 305 | 306 | " Change highlight group of preview window when open 307 | function! Handle_Win_Enter() 308 | if &previewwindow 309 | setlocal winhighlight=Normal:MarkdownError 310 | endif 311 | endfunction 312 | 313 | " Editor theme 314 | set background=dark 315 | try 316 | colorscheme OceanicNext 317 | catch 318 | colorscheme slate 319 | endtry 320 | " ============================================================================ " 321 | " === KEY MAPPINGS === " 322 | " ============================================================================ " 323 | 324 | " === Denite shorcuts === " 325 | " ; - Browser currently open buffers 326 | " t - Browse list of files in current directory 327 | " g - Search current directory for occurences of given term and close window if no results 328 | " j - Search current directory for occurences of word under cursor 329 | nmap ; :Denite buffer 330 | nmap t :DeniteProjectDir file/rec 331 | nnoremap g :Denite grep:. -no-empty 332 | nnoremap j :DeniteCursorWord grep:. 333 | 334 | " Define mappings while in 'filter' mode 335 | " - Switch to normal mode inside of search results 336 | " - Exit denite window in any mode 337 | " - Open currently selected file in any mode 338 | " - Open currently selected file in a new tab 339 | " - Open currently selected file a vertical split 340 | " - Open currently selected file in a horizontal split 341 | autocmd FileType denite-filter call s:denite_filter_my_settings() 342 | function! s:denite_filter_my_settings() abort 343 | imap 344 | \ (denite_filter_quit) 345 | inoremap 346 | \ denite#do_map('quit') 347 | nnoremap 348 | \ denite#do_map('quit') 349 | inoremap 350 | \ denite#do_map('do_action') 351 | inoremap 352 | \ denite#do_map('do_action', 'tabopen') 353 | inoremap 354 | \ denite#do_map('do_action', 'vsplit') 355 | inoremap 356 | \ denite#do_map('do_action', 'split') 357 | endfunction 358 | 359 | " Define mappings while in denite window 360 | " - Opens currently selected file 361 | " q or - Quit Denite window 362 | " d - Delete currenly selected file 363 | " p - Preview currently selected file 364 | " or i - Switch to insert mode inside of filter prompt 365 | " - Open currently selected file in a new tab 366 | " - Open currently selected file a vertical split 367 | " - Open currently selected file in a horizontal split 368 | autocmd FileType denite call s:denite_my_settings() 369 | function! s:denite_my_settings() abort 370 | nnoremap 371 | \ denite#do_map('do_action') 372 | nnoremap q 373 | \ denite#do_map('quit') 374 | nnoremap 375 | \ denite#do_map('quit') 376 | nnoremap d 377 | \ denite#do_map('do_action', 'delete') 378 | nnoremap p 379 | \ denite#do_map('do_action', 'preview') 380 | nnoremap i 381 | \ denite#do_map('open_filter_buffer') 382 | nnoremap 383 | \ denite#do_map('open_filter_buffer') 384 | nnoremap 385 | \ denite#do_map('do_action', 'tabopen') 386 | nnoremap 387 | \ denite#do_map('do_action', 'vsplit') 388 | nnoremap 389 | \ denite#do_map('do_action', 'split') 390 | endfunction 391 | 392 | " === Nerdtree shorcuts === " 393 | " n - Toggle NERDTree on/off 394 | " f - Opens current file location in NERDTree 395 | nmap n :NERDTreeToggle 396 | nmap f :NERDTreeFind 397 | 398 | " - PageDown 399 | " - - PageUp 400 | noremap 401 | noremap - 402 | 403 | " Quick window switching 404 | nmap h 405 | nmap j 406 | nmap k 407 | nmap l 408 | 409 | " === coc.nvim === " 410 | " dd - Jump to definition of current symbol 411 | " dr - Jump to references of current symbol 412 | " dj - Jump to implementation of current symbol 413 | " ds - Fuzzy search current project symbols 414 | nmap dd (coc-definition) 415 | nmap dr (coc-references) 416 | nmap dj (coc-implementation) 417 | nnoremap ds :CocList -I -N --top symbols 418 | 419 | " === vim-better-whitespace === " 420 | " y - Automatically remove trailing whitespace 421 | nmap y :StripWhitespace 422 | 423 | " === Search shorcuts === " 424 | " h - Find and replace 425 | " / - Claer highlighted search terms while preserving history 426 | map h :%s/// 427 | nmap / :nohlsearch 428 | 429 | " === Easy-motion shortcuts ===" 430 | " w - Easy-motion highlights first word letters bi-directionally 431 | map w (easymotion-bd-w) 432 | 433 | " Allows you to save files you opened without write permissions via sudo 434 | cmap w!! w !sudo tee % 435 | 436 | " === vim-jsdoc shortcuts ===" 437 | " Generate jsdoc for function under cursor 438 | nmap z :JsDoc 439 | 440 | " Delete current visual selection and dump in black hole buffer before pasting 441 | " Used when you want to paste over something without it getting copied to 442 | " Vim's default buffer 443 | vnoremap p "_dP 444 | 445 | " ============================================================================ " 446 | " === MISC. === " 447 | " ============================================================================ " 448 | 449 | " Automaticaly close nvim if NERDTree is only thing left open 450 | autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif 451 | 452 | " === Search === " 453 | " ignore case when searching 454 | set ignorecase 455 | 456 | " if the search string has an upper case letter in it, the search will be case sensitive 457 | set smartcase 458 | 459 | " Automatically re-read file if a change was detected outside of vim 460 | set autoread 461 | 462 | " Enable line numbers 463 | set number 464 | 465 | " Enable spellcheck for markdown files 466 | autocmd BufRead,BufNewFile *.md setlocal spell 467 | 468 | " Set backups 469 | if has('persistent_undo') 470 | set undofile 471 | set undolevels=3000 472 | set undoreload=10000 473 | endif 474 | set backupdir=~/.local/share/nvim/backup " Don't put backups in current dir 475 | set backup 476 | set noswapfile 477 | 478 | " Reload icons after init source 479 | if exists('g:loaded_webdevicons') 480 | call webdevicons#refresh() 481 | endif 482 | -------------------------------------------------------------------------------- /jarvis/config/nvim/plugins.vim: -------------------------------------------------------------------------------- 1 | " ============================================================================ " 2 | " === PLUGINS === " 3 | " ============================================================================ " 4 | 5 | " check whether vim-plug is installed and install it if necessary 6 | let plugpath = expand(':p:h'). '/autoload/plug.vim' 7 | if !filereadable(plugpath) 8 | if executable('curl') 9 | let plugurl = 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' 10 | call system('curl -fLo ' . shellescape(plugpath) . ' --create-dirs ' . plugurl) 11 | if v:shell_error 12 | echom "Error downloading vim-plug. Please install it manually.\n" 13 | exit 14 | endif 15 | else 16 | echom "vim-plug not installed. Please install it manually or install curl.\n" 17 | exit 18 | endif 19 | endif 20 | 21 | call plug#begin('~/.config/nvim/plugged') 22 | 23 | " === Editing Plugins === " 24 | " Trailing whitespace highlighting & automatic fixing 25 | Plug 'ntpeters/vim-better-whitespace' 26 | 27 | " auto-close plugin 28 | Plug 'rstacruz/vim-closer' 29 | 30 | " Improved motion in Vim 31 | Plug 'easymotion/vim-easymotion' 32 | 33 | " Intellisense Engine 34 | Plug 'neoclide/coc.nvim', {'branch': 'release'} 35 | 36 | " Denite - Fuzzy finding, buffer management 37 | Plug 'Shougo/denite.nvim' 38 | 39 | " Snippet support 40 | Plug 'Shougo/neosnippet' 41 | Plug 'Shougo/neosnippet-snippets' 42 | 43 | " Print function signatures in echo area 44 | Plug 'Shougo/echodoc.vim' 45 | 46 | " === Git Plugins === " 47 | " Enable git changes to be shown in sign column 48 | Plug 'mhinz/vim-signify' 49 | Plug 'tpope/vim-fugitive' 50 | 51 | " === Javascript Plugins === " 52 | " Typescript syntax highlighting 53 | Plug 'HerringtonDarkholme/yats.vim' 54 | 55 | " ReactJS JSX syntax highlighting 56 | Plug 'mxw/vim-jsx' 57 | 58 | " Generate JSDoc commands based on function signature 59 | Plug 'heavenshell/vim-jsdoc' 60 | 61 | " === Syntax Highlighting === " 62 | 63 | " Syntax highlighting for nginx 64 | Plug 'chr4/nginx.vim' 65 | 66 | " Syntax highlighting for javascript libraries 67 | Plug 'othree/javascript-libraries-syntax.vim' 68 | 69 | " Improved syntax highlighting and indentation 70 | Plug 'othree/yajs.vim' 71 | 72 | " === UI === " 73 | " File explorer 74 | Plug 'scrooloose/nerdtree' 75 | 76 | " Colorscheme 77 | Plug 'mhartington/oceanic-next' 78 | 79 | " Customized vim status line 80 | Plug 'vim-airline/vim-airline' 81 | Plug 'vim-airline/vim-airline-themes' 82 | 83 | " Icons 84 | Plug 'ryanoasis/vim-devicons' 85 | Plug 'tiagofumo/vim-nerdtree-syntax-highlight' 86 | 87 | " Initialize plugin system 88 | call plug#end() 89 | -------------------------------------------------------------------------------- /jarvis/config/nvim/snippets/javascript.snip: -------------------------------------------------------------------------------- 1 | snippet react-stateless-component 2 | alias rsc 3 | abbr function StatelessComponent() {...} 4 | options head 5 | import React from 'react'; 6 | import PropTypes from 'prop-types'; 7 | 8 | function ${1:component-name}(${2:#:props}) { 9 | return ( 10 | ${3} 11 | ); 12 | } 13 | 14 | $1.propTypes = { 15 | ${4} 16 | }; 17 | 18 | export default $1; 19 | -------------------------------------------------------------------------------- /jarvis/config/nvim/space.vim: -------------------------------------------------------------------------------- 1 | " vim-airline template by chartoin (http://github.com/chartoin) 2 | " Base 16 Oceanic Next Scheme by Chris Kempson (http://chriskempson.com) 3 | " Base 16 Oceanic Next Vim Airline Scheme 4 | " (https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/base16_oceanicnext.vim) 5 | let g:airline#themes#space#palette = {} 6 | let s:gui00 = "#1b2b34" 7 | let s:gui01 = "#343d46" 8 | let s:gui02 = "#4f5b66" 9 | let s:gui03 = "#65737e" 10 | let s:gui04 = "#a7adba" 11 | let s:gui05 = "#c0c5ce" 12 | let s:gui06 = "#cdd3de" 13 | let s:gui07 = "#d8dee9" 14 | let s:gui08 = "#ec5f67" 15 | let s:gui09 = "#f99157" 16 | let s:gui0A = "#fac863" 17 | let s:gui0B = "#99c794" 18 | let s:gui0C = "#5fb3b3" 19 | let s:gui0D = "#6699cc" 20 | let s:gui0E = "#c594c5" 21 | let s:gui0F = "#ab7967" 22 | 23 | " Terminal color definitions 24 | let s:cterm00 = 00 25 | let s:cterm03 = 08 26 | let s:cterm05 = 07 27 | let s:cterm07 = 15 28 | let s:cterm08 = 01 29 | let s:cterm0A = 03 30 | let s:cterm0B = 02 31 | let s:cterm0C = 06 32 | let s:cterm0D = 04 33 | let s:cterm0E = 05 34 | if exists('base16colorspace') && base16colorspace == "256" 35 | let s:cterm01 = 18 36 | let s:cterm02 = 19 37 | let s:cterm04 = 20 38 | let s:cterm06 = 21 39 | let s:cterm09 = 16 40 | let s:cterm0F = 17 41 | else 42 | let s:cterm01 = 10 43 | let s:cterm02 = 11 44 | let s:cterm04 = 12 45 | let s:cterm06 = 13 46 | let s:cterm09 = 09 47 | let s:cterm0F = 14 48 | endif 49 | 50 | let s:N1 = [ s:gui0B, s:gui00, s:cterm0B, s:cterm0B] 51 | let s:N2 = [ s:gui0C, s:gui00, s:cterm02, s:cterm02] 52 | let s:N3 = [ s:gui05, s:gui00, s:cterm01, s:cterm01] 53 | let g:airline#themes#space#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) 54 | 55 | let s:I1 = [ s:gui0D, s:gui00, s:cterm0D, 'NONE' ] 56 | let s:I2 = [ s:gui0C, s:gui00, s:cterm02, 'NONE' ] 57 | let s:I3 = [ s:gui05, s:gui00, s:cterm01, 'NONE' ] 58 | let g:airline#themes#space#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) 59 | 60 | let s:R1 = [ s:gui08, s:gui00, s:cterm08, 'NONE' ] 61 | let s:R2 = [ s:gui0C, s:gui00, s:cterm02, 'NONE' ] 62 | let s:R3 = [ s:gui05, s:gui00, s:cterm01, 'NONE' ] 63 | let g:airline#themes#space#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) 64 | 65 | let s:V1 = [ s:gui0E, s:gui00, s:cterm0E, 'NONE' ] 66 | let s:V2 = [ s:gui0C, s:gui00, s:cterm02, 'NONE' ] 67 | let s:V3 = [ s:gui05, s:gui00, s:cterm01, 'NONE' ] 68 | let g:airline#themes#space#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) 69 | 70 | let s:IA1 = [ s:gui04, s:gui00, s:cterm01, 'NONE' ] 71 | let s:IA2 = [ s:gui04, s:gui00, s:cterm01, 'NONE' ] 72 | let s:IA3 = [ s:gui0D, s:gui00, s:cterm01, 'NONE' ] 73 | let g:airline#themes#space#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) 74 | 75 | " Warning Section 76 | let g:airline#themes#space#palette.normal.airline_warning = [ 77 | \ s:gui0A, s:gui00, s:cterm0A, 'NONE' 78 | \ ] 79 | 80 | let g:airline#themes#space#palette.insert.airline_warning = 81 | \ g:airline#themes#space#palette.normal.airline_warning 82 | 83 | let g:airline#themes#space#palette.visual.airline_warning = 84 | \ g:airline#themes#space#palette.normal.airline_warning 85 | 86 | let g:airline#themes#space#palette.replace.airline_warning = 87 | \ g:airline#themes#space#palette.normal.airline_warning 88 | 89 | " Error Section 90 | let g:airline#themes#space#palette.normal.airline_error = [ 91 | \ s:gui08, s:gui00, s:cterm08, 'NONE' 92 | \ ] 93 | 94 | let g:airline#themes#space#palette.insert.airline_error = 95 | \ g:airline#themes#space#palette.normal.airline_error 96 | 97 | let g:airline#themes#space#palette.visual.airline_error = 98 | \ g:airline#themes#space#palette.normal.airline_error 99 | 100 | let g:airline#themes#space#palette.replace.airline_error = 101 | \ g:airline#themes#space#palette.normal.airline_error 102 | 103 | " Here we define the color map for ctrlp. We check for the g:loaded_ctrlp 104 | " variable so that related functionality is loaded iff the user is using 105 | " ctrlp. Note that this is optional, and if you do not define ctrlp colors 106 | " they will be chosen automatically from the existing palette. 107 | if !get(g:, 'loaded_ctrlp', 0) 108 | finish 109 | endif 110 | let g:airline#themes#base16_oceanicnext#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( 111 | \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], 112 | \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], 113 | \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) 114 | -------------------------------------------------------------------------------- /jarvis/docs/COMMANDS.md: -------------------------------------------------------------------------------- 1 | [Go back to README](../README.md) 2 | 3 | ## Commands 4 | 5 | The following are the custom commands in Jarvis and some of the most useful default ones. Each configuration 6 | file is carefully documented to make it easy to understand. Many default commands for each tool may not be listed. 7 | 8 | ### Neovim Commands 9 | 10 | > Note: Several of the commands expect you to be in the directory you are working in. Fuzzy finding, for example, won't work as expected unless Neovim's current directory is correct. You can check that via `:pwd` inside of Neovim. 11 | > 12 | > Either open Neovim from the directory you want to work in, or set the directory once Neovim is open via the `:cd /path/to/directory` command. 13 | 14 | | Command | Mode | Tool | Description | 15 | | :----------- | :-------------- | :------------------------------ | :--------------------------------------- | 16 | | `` | normal | NeoVim | Page down | 17 | | `-` | normal | NeoVim | Page up | 18 | | `hjkl` | normal | NeoVim | Switch windows and Tmux panes (left/down/up/right) | 19 | | `h` | normal | NeoVim | Find and replace | 20 | | `/` | normal | NeoVim | Clear highlighted search terms | 21 | | `f` | normal | NERDTree | Find current file in tree hiearchy | 22 | | `n` | normal | NERDTree | Toggle NERDTree window | 23 | | `C` | normal *NT* | NERDTree | Switch NERDTree root to be directory under cursor | 24 | | `;` | normal | Denite | Browse currently open buffers | 25 | | `t` | normal | Denite | Browse files in current directory | 26 | | `g` | normal | Denite | Search current directory for occurences of term | 27 | | `j` | normal | Denite | Search current directory for word under cursor | 28 | | `` | insert/normal *DW* | Denite | Close Denite window | 29 | | `` | insert/normal *DW* | Denite | Switch between fuzzy-find insert mode and normal mode (useful inside *DW*) | 30 | | `d` | normal *DW* | Denite | Delete item (can delete open buffer inside *DW*) | 31 | | `` | insert/normal *DW* | Denite | Open file in new tab (useful inside *DW*) | 32 | | `` | insert/normal *DW* | Denite | Open file in a vertical split (useful inside *DW*) | 33 | | `` | insert/normal *DW* | Denite | Open file in a horizontal split (useful inside *DW*) | 34 | | `y` | normal | vim-better-whitespace | Remove trailing whitespace in file | 35 | | `w` | normal | EasyMotion | Highlight first letter of file words for quick move | 36 | | `ds` | normal | Coc.nvim | Search current project symbols | 37 | | `dj` | normal | Coc.nvim | Jump to implementation(s) of symbol under cursor | 38 | | `dr` | normal | Coc.nvim | Show references of symbol under cursor. | 39 | | `dd` | normal | Coc.nvim | Look up definition of word under cursor | 40 | | `` | insert *AWV* | NeoSnippet | Activates first valid snippet that matches | 41 | | `` | insert *SP* | NeoSnippet | Move to next available field of snippet | 42 | | `` | select *SP* | NeoSnippet | Move to next available field of snippet | 43 | 44 |
45 | 46 | * *DW* - Within Denite window 47 | * *NT* - Within NERDTree window 48 | * *AWV* - With auto-complete window visible 49 | * *AW* - Inside auto-complete window 50 | * *SP* - Inside of snippet 51 | 52 | ### Tmux Commands 53 | Below are some custom key mappings as well as some default tmux commands. Not all tmux commands are included, 54 | just some of the more common ones in my workflow. 55 | 56 | #### Prefix Mappings 57 | | Command | Description | 58 | | :--------------- | :--------------------------------------- | 59 | | `I` | Install tmux plugins | 60 | | `(h/j/k/l)` | Switch Tmux panes and Neovim windows (left/down/up/right) | 61 | | `(H/J/K/L)` | Resize Tmux panes based on current pane (left/down/up/right) | 62 | | `-` | Create split horizontally | 63 | | ``| | Create split vertically | 64 | | `x` | Close pane | 65 | | `$` | Rename session | 66 | | `s` | Browse open sessions - navigate with h/j/k/l and enter to select | 67 | | `z` | Full-screen the current pane | 68 | 69 | #### Tmux Command Line 70 | All of the following command are triggered by `:` (Note the colon) 71 | 72 | | Command | Description | 73 | | :--------------------- | :------------------------------ | 74 | | `new -s test` | Create new session named "test" | 75 | | `kill-session -t test` | Delete session named "test" | 76 | | `kill-session -a` | Kill all sessions but current one | 77 | 78 | ### Zsh Commands 79 | All the following commands can be run from the command line. Each command can be run by typing command and pressent ``. Some commands have optional parameters. 80 | 81 | | Command | Description | 82 | | :--------------------- | :------------------------------ | 83 | | `fo` | Fuzzy-find file in current directory and open with Neovim | 84 | | `fh` | Fuzzy-find in command history | 85 | | `fgb <*branch_name>`. | Git checkout local/remote branch by name or fuzzy-find | 86 | | `ftm <*session_name>` | Switch to session name if given, create if doesn't exist or fuzzy-find | 87 | | `ftmk <*session_name>` | Kill given session or fuzzy-find session to kill | 88 | 89 |
90 | 91 | * `*` - Indicates optional param 92 | -------------------------------------------------------------------------------- /jarvis/docs/INSTALL.md: -------------------------------------------------------------------------------- 1 | [Go back to README](../README.md) 2 | 3 | ## Installation 4 | 5 | **Important**: The instructions were primarily written during the initial installation. It is difficult to keep this script and list of install tools up-to-date, so there may be missing or incorrect steps. Any PR's or issues are welcome if you find something in this section. 6 | 7 | ### MacOSX 8 | 9 | #### Step 1: Installation script (or manual installation based off of script) 10 | 11 | :warning::warning: THIS SCRIPT IS NO LONGER SUPPORTED :warning::warning: 12 | 13 | **This installation script can provide a rough guideline for getting the project set up, but it no longer successfully runs and is difficult to test and support** 14 | 15 |
16 | Click to see unsupported install script instructions 17 | 18 | 19 | Clone Jarvis into your directory of choice and run the install script. This script will install [Homebrew](https://brew.sh/) (if it needs to) and then install all of Jarvis' dependencies. 20 | 21 | **Warning: This will move existing `zsh`, `tmux`, or `nvim` configurations to a backup folder inside of the installation repo.** 22 | 23 | ``` 24 | git clone https://github.com/ctaylo21/jarvis ~/jarvis 25 | cd ~/jarvis 26 | ./install.sh 27 | ``` 28 |
29 | 30 | Alternatively, you can use the `install.sh` script as a guide for installing the required libraries/plugins and do it manually yourself (safest option). 31 | 32 | #### Step 2: Manually Install Additional Tools 33 | 34 | The following tools are the only ones that are (currently) required to be installed manually (if you are using OSX). 35 | 36 | 1. Install [iTerm2](https://www.iterm2.com/) - Terminal emulator for macOSX. 37 | 38 | 2. Install [iTerm2 Oceanic Theme](https://github.com/mhartington/oceanic-next-iterm) - Oceanic theme for Iterm. Provides seamless UI experience between Neovim + Tmux. 39 | 40 | 3. Manually update your iTerm profile to use a new font (*Knack Regular Nerd Font Complete* is added by the installation script) and colorscheme. 41 | 42 | 4. (Optional) Depending on your autocomplete needs with [coc.nvim](https://github.com/neoclide/coc.nvim), you will want to install the appropriate langague servers. For example, I use the following extensions: 43 | - [Typescript/Javascript](https://github.com/neoclide/coc-tsserver): `:CocInstall coc-tsserver` 44 | - [Eslint](https://github.com/neoclide/coc-eslint): `:CocInstall coc-eslint` 45 | - [Prettier](https://github.com/neoclide/coc-prettier): `:CocInstall coc-prettier` 46 | - [CSS](https://github.com/neoclide/coc-css): `:CocInstall coc-css` 47 | - [json](https://github.com/neoclide/coc-json): `:CocInstall coc-json` 48 | 49 | 5. (Optional) Install [Pecan](https://github.com/zzzeyez/Pecan) for customizable OSX header. Follow install instructions on page. For Oceanic theme, copy `jarvis/config/Pecan/style.css` into `~/Library/Application Support/Übersicht/widgets/Pecan/style.css` and refresh widget by using `Übersicht` -> `Refresh All Widgets` from native OSX menu bar. 50 | 51 | **Installed Tools** 52 | 53 | 1. [Tmux](https://github.com/tmux/tmux/wiki) - Terminal multiplexer with session management, customizable terminal layouts, and much more. 54 | 2. [NeoVim](https://github.com/neovim/neovim) - A fork of Vim that was created to be a community-driven rewrite of Vim that is focused on cleaning up the codebase and providing a way for developers to contribute to the advancement of the editor. For a list of all the plugins installed for Neovim, see the [plugins file](config/nvim/plugins.vim). 55 | 3. [Python 3](https://www.python.org/downloads/)/[Python Neovim Client](https://github.com/neovim/python-client) - Implements support for python plugins in Neovim. 56 | 4. [ripgrep](https://github.com/BurntSushi/ripgrep) - A blazingly fast line-oriented search tool that respects .gitignore rules. 57 | 5. [fzf](https://github.com/junegunn/fzf#installation) - A general-purpose command-line fuzzy finder that can be used with any list; files, command history, processes, hostnames, bookmarks, git commits, etc. 58 | 6. [z](https://github.com/rupa/z) - Tracks your most used directories and lets you quickly hop there with regexes. 59 | 7. [nerd font](https://github.com/ryanoasis/nerd-fonts#font-installation) - Custom fonts with glyphs added for icon support within NeoVim. 60 | 8. [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) - Installs and loads tmux plugins. 61 | 62 | ### Windows 63 | 64 | These steps currently just detail instructions for getting Neovim working in Windows with Jarvis. 65 | 66 | #### Step 1: Install Neovim 67 | 68 | Follow the [Windows install instructions](https://github.com/neovim/neovim/wiki/Installing-Neovim#windows) from the Neovim wiki. 69 | 70 | #### Step 2: Install Python and Neovim Python Client 71 | 72 | 1. Install [Python 3](https://www.python.org/downloads/windows/) 73 | 2. Ensure the latest version of the [Visual Studio Build Tools](http://landinghub.visualstudio.com/visual-cpp-build-tools) is installed (required by pip) 74 | 3. Install the python client for Neovim with `pip3 install --upgrade neovim` 75 | 4. Set python installation location `let g:python3_host_prog = 'Path\To\Python\Python37\python.exe'` 76 | 77 | #### Step 3: Configure Neovim for Windows 78 | 79 | *Note:* Cloning this repo probably isn't necessary. You only need to grab the `config/nvim/init.vim` and `config/nvim/plugins.vim` files from this repo and put them in the correct locations on your computer. 80 | 81 | 1. Copy `config\nvim\init.vim` to `~\AppData\Local\nvim\init.vim ` on your computer. 82 | 2. Copy `jarvis\config\nvim\init.vim` to `~\AppData\Local\nvim\plugins.vim` on your computer. 83 | 3. Open `~\AppData\Local\nvim\init.vim` and replace every instance of `~/.config/nvim/` with `~\AppData\Local\nvim\` 84 | 4. Open Neovim (`C:\tools\neovim\Neovim\bin\nvim-qt.exe`) and run `:PlugInstall` and `:UpdateRemotePlugins`. You might need to close and re-open Neovim. 85 | 5. Install the vim linter [vint](https://github.com/Kuniwak/vint) with `pip install vim-vint` 86 | 6. Install ripgrep for windows (may need to run as admin) `choco intall ripgrep` 87 | 7. Copy custom vim airline theme: `config\nvim\space.vim\` to `~\AppData\Local\nvim\plugged\vim-airline-themes\autoload\airline\themes\space.vim` 88 | 89 | ## Additional Manual Configuration 90 | 91 | The following configurations require manual changes outside of Jarvis. 92 | 93 | ### Iterm Setup 94 | 95 | These are the steps to configure your iTerm setup. Typically, I work in full-screen mode with multiple tmux sessions and panes. This keeps things very distraction-free and maximizes screen space. 96 | 97 | #### Automatically Load Settings 98 | 99 | **Warning**: The automatic loading of settings is untested. The settings were just exported from my current setup. 100 | 101 | In iTerm, do the following: 102 | 103 | 1. Load settings from folder: `Preferences` -> `General` -> `Preferences` -> `Load preferences from a custom folder or URL` and choose `/iterm` 104 | 105 | #### Manually Update Settings 106 | 107 | If automatically loading settings didn't work, the key pieces to manually configure are: 108 | 109 | 1. Setting your font: `Prefereneces` -> `Profiles` -> `Text` -> `Font` -> `Change Font` 110 | 2. Set Native Windows: `Preferences` -> `General` -> `Window` -> `Native Full Screen Windows` 111 | 3. Hide menu bar in full screen: `Preferences` -> `Appearances` -> `System` -> `Auto-hide menu bar in non-native fullscreen` 112 | 4. Hide scrollbars: `Preferences` -> `Appearances` -> `Window` -> `Hide scrollbars` 113 | 5. Uncheck "Show border around window": `Preferences` -> `Appearance` -> `Window` -> `Show border around window` 114 | 6. (Optional) Make iterm default to full-screen windows: `Preferences` -> `Profiles` -> `Window` -> `Settings for New Windows` -> `Style: Fullscreen` 115 | 116 | ### Mapping Caps Lock to Escape 117 | 118 | In order to keep your fingers near the home row, mapping caps lock to escape to get out of different vim modes can be extremely helpful. This is especially useful for laptops that made the escape key "virutal" (*I'm looking at you, Apple*). 119 | 120 | **MacOSX** 121 | 122 | This can be done on MacOS by following these simple steps: http://vim.wikia.com/wiki/Map_caps_lock_to_escape_in_macOS 123 | 124 | **Windows** 125 | 126 | Install and use the free tool [SharpKeys](https://github.com/randyrants/sharpkeys) to easily remap caps lock to escape on Windows. 127 | -------------------------------------------------------------------------------- /jarvis/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "---------------------------------------------------------" 3 | echo "$(tput setaf 2)JARVIS: Greetings. Preparing to power up and begin diagnostics.$(tput sgr 0)" 4 | echo "---------------------------------------------------------" 5 | 6 | INSTALLDIR=$PWD 7 | 8 | echo "---------------------------------------------------------" 9 | echo "$(tput setaf 2)JARVIS: Checking for Homebrew installation.$(tput sgr 0)" 10 | echo "---------------------------------------------------------" 11 | brew="/usr/local/bin/brew" 12 | if [ -f "$brew" ] 13 | then 14 | echo "---------------------------------------------------------" 15 | echo "$(tput setaf 2)JARVIS: Homebrew is installed.$(tput sgr 0)" 16 | echo "---------------------------------------------------------" 17 | else 18 | echo "---------------------------------------------------------" 19 | echo "$(tput setaf 3)JARVIS: Installing Homebrew. Homebrew requires osx command lines tools, please download xcode first$(tput sgr 0)" 20 | echo "---------------------------------------------------------" 21 | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 22 | fi 23 | 24 | echo "---------------------------------------------------------" 25 | echo "$(tput setaf 2)JARVIS: Installing system packages.$(tput sgr 0)" 26 | echo "---------------------------------------------------------" 27 | 28 | packages=( 29 | "git" 30 | "node" 31 | "ruby" 32 | "tmux" 33 | "neovim" 34 | "python3" 35 | "zsh" 36 | "ripgrep" 37 | "fzf" 38 | "z" 39 | ) 40 | 41 | for i in "${packages[@]}" 42 | do 43 | brew install $i 44 | echo "---------------------------------------------------------" 45 | done 46 | 47 | echo "---------------------------------------------------------" 48 | echo "$(tput setaf 2)JARVIS: Installing Python NeoVim client.$(tput sgr 0)" 49 | echo "---------------------------------------------------------" 50 | 51 | pip3 install neovim 52 | 53 | echo "---------------------------------------------------------" 54 | echo "$(tput setaf 2)JARVIS: Installing node neovim package$(tput sgr 0)" 55 | echo "---------------------------------------------------------" 56 | 57 | npm install -g neovim 58 | 59 | echo "---------------------------------------------------------" 60 | echo "$(tput setaf 2)JARVIS: Installing spaceship prompt$(tput sgr 0)" 61 | echo "---------------------------------------------------------" 62 | 63 | npm install -g spaceship-prompt 64 | 65 | echo "---------------------------------------------------------" 66 | echo "$(tput setaf 2)JARVIS: Installing vim linter (vint)$(tput sgr 0)" 67 | echo "---------------------------------------------------------" 68 | 69 | pip3 install vim-vint 70 | 71 | echo "---------------------------------------------------------" 72 | echo "$(tput setaf 2)JARVIS: Installing bash language server$(tput sgr 0)" 73 | echo "---------------------------------------------------------" 74 | 75 | npm i -g bash-language-server 76 | 77 | echo "---------------------------------------------------------" 78 | echo "$(tput setaf 2)JARVIS: Installing colorls$(tput sgr 0)" 79 | echo "---------------------------------------------------------" 80 | 81 | gem install colorls 82 | 83 | echo "---------------------------------------------------------" 84 | echo "$(tput setaf 2)JARVIS: Installing system fonts.$(tput sgr 0)" 85 | echo "---------------------------------------------------------" 86 | 87 | brew tap homebrew/cask-fonts 88 | brew cask install font-hack-nerd-font 89 | 90 | localGit="/usr/local/bin/git" 91 | if ! [[ -f "$localGit" ]]; then 92 | echo "---------------------------------------------------------" 93 | echo "$(tput setaf 1)JARVIS: Invalid git installation. Aborting. Please install git.$(tput sgr 0)" 94 | echo "---------------------------------------------------------" 95 | exit 1 96 | fi 97 | 98 | # Create backup folder if it doesn't exist 99 | mkdir -p ~/.local/share/nvim/backup 100 | 101 | echo "---------------------------------------------------------" 102 | echo "$(tput setaf 2)JARVIS: Installing oh-my-zsh.$(tput sgr 0)" 103 | echo "---------------------------------------------------------" 104 | 105 | if [ ! -d "$HOME/.oh-my-zsh" ]; then 106 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 107 | else 108 | echo "---------------------------------------------------------" 109 | echo "$(tput setaf 2)JARVIS: oh-my-zsh already installed.$(tput sgr 0)" 110 | echo "---------------------------------------------------------" 111 | fi 112 | 113 | echo "---------------------------------------------------------" 114 | echo "$(tput setaf 2)JARVIS: Installing zsh-autosuggestions.$(tput sgr 0)" 115 | echo "---------------------------------------------------------" 116 | git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions 117 | 118 | echo "---------------------------------------------------------" 119 | echo "$(tput setaf 2)JARVIS: Installing vtop.$(tput sgr 0)" 120 | echo "---------------------------------------------------------" 121 | npm install -g vtop 122 | 123 | echo "---------------------------------------------------------" 124 | echo "$(tput setaf 2)JARVIS: Installing Neovim plugins and linking dotfiles.$(tput sgr 0)" 125 | echo "---------------------------------------------------------" 126 | 127 | source install/backup.sh 128 | source install/link.sh 129 | nvim +PlugInstall +qall 130 | nvim +UpdateRemotePlugins +qall 131 | 132 | echo "---------------------------------------------------------" 133 | echo "$(tput setaf 2)JARVIS: Installing Space vim-airline theme.$(tput sgr 0)" 134 | echo "---------------------------------------------------------" 135 | 136 | cp ~/.config/nvim/space.vim ~/.config/nvim/plugged/vim-airline-themes/autoload/airline/themes/space.vim 137 | 138 | echo "---------------------------------------------------------" 139 | echo "$(tput setaf 2)JARVIS: Installing tmux plugin manager.$(tput sgr 0)" 140 | echo "---------------------------------------------------------" 141 | 142 | if [ ! -d "$HOME/.tmux/plugins/tpm" ]; then 143 | git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm 144 | ~/.tmux/plugins/tpm/scripts/install_plugins.sh 145 | fi 146 | 147 | echo "---------------------------------------------------------" 148 | echo "$(tput setaf 2)JARVIS: Switching shell to zsh. You may need to logout.$(tput sgr 0)" 149 | echo "---------------------------------------------------------" 150 | 151 | sudo sh -c "echo $(which zsh) >> /etc/shells" 152 | chsh -s $(which zsh) 153 | 154 | echo "---------------------------------------------------------" 155 | echo "$(tput setaf 2)JARVIS: System update complete. Currently running at 100% power. Enjoy.$(tput sgr 0)" 156 | echo "---------------------------------------------------------" 157 | 158 | exit 0 159 | -------------------------------------------------------------------------------- /jarvis/install/backup.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | INSTALLDIR=$PWD 3 | 4 | echo "---------------------------------------------------------" 5 | echo "$(tput setaf 2)JARVIS: Backup up current files.$(tput sgr 0)" 6 | echo "---------------------------------------------------------" 7 | 8 | # Backup files that are provided by the Jarvis into a ~/$INSTALLDIR-backup directory 9 | BACKUP_DIR=$INSTALLDIR/backup 10 | 11 | set -e # Exit immediately if a command exits with a non-zero status. 12 | 13 | echo "---------------------------------------------------------" 14 | echo "$(tput setaf 2)JARVIS: Creating backup directory at $BACKUP_DIR.$(tput sgr 0)" 15 | echo "---------------------------------------------------------" 16 | mkdir -p $BACKUP_DIR 17 | 18 | files=("$HOME/.config/nvim" "$HOME/.zshrc" "$HOME/.tmux.conf") 19 | for filename in "${files[@]}"; do 20 | if [ ! -L $filename ]; then 21 | echo "---------------------------------------------------------" 22 | echo "$(tput setaf 2)JARVIS: Backing up $filename.$(tput sgr 0)" 23 | echo "---------------------------------------------------------" 24 | mv $filename $BACKUP_DIR 2>/dev/null 25 | else 26 | echo "---------------------------------------------------------" 27 | echo -e "$(tput setaf 3)JARVIS: $filename does not exist at this location or is a symlink.$(tput sgr 0)" 28 | echo "---------------------------------------------------------" 29 | fi 30 | done 31 | 32 | echo "---------------------------------------------------------" 33 | echo "$(tput setaf 2)JARVIS: Backup completed.$(tput sgr 0)" 34 | echo "---------------------------------------------------------" 35 | -------------------------------------------------------------------------------- /jarvis/install/link.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | echo "---------------------------------------------------------" 4 | echo "$(tput setaf 2)JARVIS: Linking symlink files.$(tput sgr 0)" 5 | echo "---------------------------------------------------------" 6 | 7 | linkables=$( find -H "$INSTALLDIR" -maxdepth 3 -name '*.symlink' ) 8 | for file in $linkables ; do 9 | target="$HOME/.$( basename $file '.symlink' )" 10 | if [ -e $target ]; then 11 | echo "---------------------------------------------------------" 12 | echo "$(tput setaf 3)JARVIS: ~${target#$HOME} already exists... Skipping.$(tput sgr 0)" 13 | echo "---------------------------------------------------------" 14 | else 15 | echo "---------------------------------------------------------" 16 | echo "$(tput setaf 2)JARVIS: Creating symlink for $file.$(tput sgr 0)" 17 | echo "---------------------------------------------------------" 18 | ln -s $file $target 19 | fi 20 | done 21 | 22 | if [ ! -d $HOME/.config ]; then 23 | echo "Creating ~/.config" 24 | mkdir -p $HOME/.config 25 | fi 26 | 27 | echo "---------------------------------------------------------" 28 | echo "$(tput setaf 2)JARVIS: Installing config files.$(tput sgr 0)" 29 | echo "---------------------------------------------------------" 30 | 31 | for config in $INSTALLDIR/config/*; do 32 | target=$HOME/.config/$( basename $config ) 33 | if [ -e $target ]; then 34 | echo "---------------------------------------------------------" 35 | echo "$(tput setaf 3)JARVIS: ~${target#$HOME} already exists... Skipping.$(tput sgr 0)" 36 | echo "---------------------------------------------------------" 37 | else 38 | echo "---------------------------------------------------------" 39 | echo "$(tput setaf 2)JARVIS: Creating symlink for ${config}.$(tput sgr 0)" 40 | echo "---------------------------------------------------------" 41 | ln -s $config $target 42 | fi 43 | done 44 | -------------------------------------------------------------------------------- /jarvis/iterm/com.googlecode.iterm2.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AdjustWindowForFontSizeChange 6 | 7 | AllowClipboardAccess 8 | 9 | AppleAntiAliasingThreshold 10 | 1 11 | AppleScrollAnimationEnabled 12 | 0 13 | AppleSmoothFixedFontsSizeThreshold 14 | 1 15 | AppleWindowTabbingMode 16 | manual 17 | Custom Color Presets 18 | 19 | Oceanic-Next 20 | 21 | Ansi 0 Color 22 | 23 | Blue Component 24 | 0.12923833727836609 25 | Color Space 26 | Calibrated 27 | Green Component 28 | 0.10887220501899719 29 | Red Component 30 | 0.072135128080844879 31 | 32 | Ansi 1 Color 33 | 34 | Blue Component 35 | 0.33114415407180786 36 | Color Space 37 | Calibrated 38 | Green Component 39 | 0.27702754735946655 40 | Red Component 41 | 0.89593487977981567 42 | 43 | Ansi 10 Color 44 | 45 | Blue Component 46 | 0.50905120372772217 47 | Color Space 48 | Calibrated 49 | Green Component 50 | 0.74280524253845215 51 | Red Component 52 | 0.53603297472000122 53 | 54 | Ansi 11 Color 55 | 56 | Blue Component 57 | 0.31759658455848694 58 | Color Space 59 | Calibrated 60 | Green Component 61 | 0.74274349212646484 62 | Red Component 63 | 0.97044718265533447 64 | 65 | Ansi 12 Color 66 | 67 | Blue Component 68 | 0.75472033023834229 69 | Color Space 70 | Calibrated 71 | Green Component 72 | 0.52402210235595703 73 | Red Component 74 | 0.33133840560913086 75 | 76 | Ansi 13 Color 77 | 78 | Blue Component 79 | 0.72311609983444214 80 | Color Space 81 | Calibrated 82 | Green Component 83 | 0.49488019943237305 84 | Red Component 85 | 0.71825045347213745 86 | 87 | Ansi 14 Color 88 | 89 | Blue Component 90 | 0.64188027381896973 91 | Color Space 92 | Calibrated 93 | Green Component 94 | 0.64762973785400391 95 | Red Component 96 | 0.3120269775390625 97 | 98 | Ansi 15 Color 99 | 100 | Blue Component 101 | 0.99999129772186279 102 | Color Space 103 | Calibrated 104 | Green Component 105 | 0.99997437000274658 106 | Red Component 107 | 1 108 | 109 | Ansi 2 Color 110 | 111 | Blue Component 112 | 0.50905120372772217 113 | Color Space 114 | Calibrated 115 | Green Component 116 | 0.74280524253845215 117 | Red Component 118 | 0.53603297472000122 119 | 120 | Ansi 3 Color 121 | 122 | Blue Component 123 | 0.31759658455848694 124 | Color Space 125 | Calibrated 126 | Green Component 127 | 0.74274349212646484 128 | Red Component 129 | 0.97044718265533447 130 | 131 | Ansi 4 Color 132 | 133 | Blue Component 134 | 0.75472033023834229 135 | Color Space 136 | Calibrated 137 | Green Component 138 | 0.52402210235595703 139 | Red Component 140 | 0.33133840560913086 141 | 142 | Ansi 5 Color 143 | 144 | Blue Component 145 | 0.72311609983444214 146 | Color Space 147 | Calibrated 148 | Green Component 149 | 0.49488019943237305 150 | Red Component 151 | 0.71825045347213745 152 | 153 | Ansi 6 Color 154 | 155 | Blue Component 156 | 0.64188027381896973 157 | Color Space 158 | Calibrated 159 | Green Component 160 | 0.64762973785400391 161 | Red Component 162 | 0.3120269775390625 163 | 164 | Ansi 7 Color 165 | 166 | Blue Component 167 | 0.99999129772186279 168 | Color Space 169 | Calibrated 170 | Green Component 171 | 0.99997437000274658 172 | Red Component 173 | 1 174 | 175 | Ansi 8 Color 176 | 177 | Blue Component 178 | 0.41846594214439392 179 | Color Space 180 | Calibrated 181 | Green Component 182 | 0.37485924363136292 183 | Red Component 184 | 0.3234245777130127 185 | 186 | Ansi 9 Color 187 | 188 | Blue Component 189 | 0.33114415407180786 190 | Color Space 191 | Calibrated 192 | Green Component 193 | 0.27702754735946655 194 | Red Component 195 | 0.89593487977981567 196 | 197 | Background Color 198 | 199 | Blue Component 200 | 0.1297074556350708 201 | Color Space 202 | Calibrated 203 | Green Component 204 | 0.10740385949611664 205 | Red Component 206 | 0.071905560791492462 207 | 208 | Bold Color 209 | 210 | Blue Component 211 | 0.76466912031173706 212 | Color Space 213 | Calibrated 214 | Green Component 215 | 0.72239696979522705 216 | Red Component 217 | 0.70114254951477051 218 | 219 | Cursor Color 220 | 221 | Blue Component 222 | 0.76466912031173706 223 | Color Space 224 | Calibrated 225 | Green Component 226 | 0.72239696979522705 227 | Red Component 228 | 0.70114254951477051 229 | 230 | Cursor Text Color 231 | 232 | Blue Component 233 | 0.12923833727836609 234 | Color Space 235 | Calibrated 236 | Green Component 237 | 0.10887220501899719 238 | Red Component 239 | 0.072135128080844879 240 | 241 | Foreground Color 242 | 243 | Blue Component 244 | 0.76466912031173706 245 | Color Space 246 | Calibrated 247 | Green Component 248 | 0.72239696979522705 249 | Red Component 250 | 0.70114254951477051 251 | 252 | Selected Text Color 253 | 254 | Blue Component 255 | 0.76466912031173706 256 | Color Space 257 | Calibrated 258 | Green Component 259 | 0.72239696979522705 260 | Red Component 261 | 0.70114254951477051 262 | 263 | Selection Color 264 | 265 | Blue Component 266 | 0.32565724849700928 267 | Color Space 268 | Calibrated 269 | Green Component 270 | 0.28464928269386292 271 | Red Component 272 | 0.24374458193778992 273 | 274 | 275 | 276 | Default Bookmark Guid 277 | 9C5E8059-EA4C-471A-AD1E-D9F8EA8FE095 278 | DisableFullscreenTransparency 279 | 280 | DisableMetalWhenIdle 281 | 282 | EnableDivisionView 283 | 284 | GlobalKeyMap 285 | 286 | 0x19-0x60000 287 | 288 | Action 289 | 39 290 | Text 291 | 292 | 293 | 0x6b-0x100000 294 | 295 | Action 296 | 12 297 | Text 298 | clear\n 299 | 300 | 0x9-0x40000 301 | 302 | Action 303 | 32 304 | Text 305 | 306 | 307 | 0xf700-0x300000 308 | 309 | Action 310 | 7 311 | Text 312 | 313 | 314 | 0xf701-0x300000 315 | 316 | Action 317 | 6 318 | Text 319 | 320 | 321 | 0xf702-0x300000 322 | 323 | Action 324 | 2 325 | Text 326 | 327 | 328 | 0xf702-0x320000 329 | 330 | Action 331 | 33 332 | Text 333 | 334 | 335 | 0xf703-0x300000 336 | 337 | Action 338 | 0 339 | Text 340 | 341 | 342 | 0xf703-0x320000 343 | 344 | Action 345 | 34 346 | Text 347 | 348 | 349 | 0xf729-0x100000 350 | 351 | Action 352 | 5 353 | Text 354 | 355 | 356 | 0xf72b-0x100000 357 | 358 | Action 359 | 4 360 | Text 361 | 362 | 363 | 0xf72c-0x100000 364 | 365 | Action 366 | 9 367 | Text 368 | 369 | 370 | 0xf72c-0x20000 371 | 372 | Action 373 | 9 374 | Text 375 | 376 | 377 | 0xf72d-0x100000 378 | 379 | Action 380 | 8 381 | Text 382 | 383 | 384 | 0xf72d-0x20000 385 | 386 | Action 387 | 8 388 | Text 389 | 390 | 391 | 392 | HideMenuBarInFullscreen 393 | 394 | HideScrollbar 395 | 396 | HideTabCloseButton 397 | 398 | HideTabNumber 399 | 400 | HotkeyMigratedFromSingleToMulti 401 | 402 | IRMemory 403 | 4 404 | JobName 405 | 406 | LoadPrefsFromCustomFolder 407 | 408 | NSNavLastRootDirectory 409 | ~/Pictures 410 | NSNavPanelExpandedSizeForOpenMode 411 | {712, 448} 412 | NSQuotedKeystrokeBinding 413 | 414 | NSRepeatCountBinding 415 | 416 | NSScrollAnimationEnabled 417 | 418 | NSScrollViewShouldScrollUnderTitlebar 419 | 420 | NSTableView Columns v2 KeyBingingTable 421 | 422 | YnBsaXN0MDDUAQIDBAUGNjdYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS 423 | AAGGoK4HCA8aGxwdHh8gJjAxMlUkbnVsbNIJCgsOWk5TLm9iamVjdHNWJGNsYXNzogwN 424 | gAKACoAN0xAJChEVGVdOUy5rZXlzoxITFIADgASABaMWFxiABoAHgAiACVpJZGVudGlm 425 | aWVyVVdpZHRoVkhpZGRlblEwI0BowAAAAAAACNIhIiMkWiRjbGFzc25hbWVYJGNsYXNz 426 | ZXNcTlNEaWN0aW9uYXJ5oiMlWE5TT2JqZWN00xAJCicrGaMSExSAA4AEgAWjLC0YgAuA 427 | DIAIgAlRMSNAc7Gdsi0OVtIhIjM0Xk5TTXV0YWJsZUFycmF5ozM1JVdOU0FycmF5XxAP 428 | TlNLZXllZEFyY2hpdmVy0Tg5VUFycmF5gAEACAARABoAIwAtADIANwBGAEwAUQBcAGMA 429 | ZgBoAGoAbABzAHsAfwCBAIMAhQCJAIsAjQCPAJEAnACiAKkAqwC0ALUAugDFAM4A2wDe 430 | AOcA7gDyAPQA9gD4APwA/gEAAQIBBAEGAQ8BFAEjAScBLwFBAUQBSgAAAAAAAAIBAAAA 431 | AAAAADoAAAAAAAAAAAAAAAAAAAFM 432 | 433 | NSTableView Sort Ordering v2 KeyBingingTable 434 | 435 | YnBsaXN0MDDUAQIDBAUGFBVYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS 436 | AAGGoKMHCA1VJG51bGzSCQoLDFpOUy5vYmplY3RzViRjbGFzc6CAAtIODxARWiRjbGFz 437 | c25hbWVYJGNsYXNzZXNeTlNNdXRhYmxlQXJyYXmjEBITV05TQXJyYXlYTlNPYmplY3Rf 438 | EA9OU0tleWVkQXJjaGl2ZXLRFhdVQXJyYXmAAQgRGiMtMjc7QUZRWFlbYGt0g4ePmKqt 439 | swAAAAAAAAEBAAAAAAAAABgAAAAAAAAAAAAAAAAAAAC1 440 | 441 | NSTableView Supports v2 KeyBingingTable 442 | 443 | NSToolbar Configuration com.apple.NSColorPanel 444 | 445 | TB Is Shown 446 | 1 447 | 448 | NSWindow Frame NSFontPanel 449 | -284 1740 522 77 -719 900 1920 1080 450 | NSWindow Frame SUStatusFrame 451 | 41 1613 400 129 -719 900 1920 1080 452 | NSWindow Frame SUUpdateAlert 453 | 2410 786 620 392 1440 0 2560 1440 454 | NSWindow Frame SessionsPreferences 455 | 269 126 606 469 0 0 1440 877 456 | NSWindow Frame SharedPreferences 457 | -246 1577 918 394 -719 900 1920 1080 458 | NSWindow Frame iTerm Window 0 459 | -551 1005 1003 580 -719 900 1920 1080 460 | NSWindow Frame iTerm Window 1 461 | 656 -130 650 429 0 0 1440 900 462 | NSWindow Frame iTerm Window 2 463 | 5 13 642 293 0 0 1440 900 464 | New Bookmarks 465 | 466 | 467 | ASCII Anti Aliased 468 | 469 | ASCII Ligatures 470 | 471 | Ambiguous Double Width 472 | 473 | Ansi 0 Color 474 | 475 | Blue Component 476 | 0.12923833727836609 477 | Color Space 478 | Calibrated 479 | Green Component 480 | 0.10887220501899719 481 | Red Component 482 | 0.072135128080844879 483 | 484 | Ansi 1 Color 485 | 486 | Blue Component 487 | 0.33114415407180786 488 | Color Space 489 | Calibrated 490 | Green Component 491 | 0.27702754735946655 492 | Red Component 493 | 0.89593487977981567 494 | 495 | Ansi 10 Color 496 | 497 | Blue Component 498 | 0.50905120372772217 499 | Color Space 500 | Calibrated 501 | Green Component 502 | 0.74280524253845215 503 | Red Component 504 | 0.53603297472000122 505 | 506 | Ansi 11 Color 507 | 508 | Blue Component 509 | 0.31759658455848694 510 | Color Space 511 | Calibrated 512 | Green Component 513 | 0.74274349212646484 514 | Red Component 515 | 0.97044718265533447 516 | 517 | Ansi 12 Color 518 | 519 | Blue Component 520 | 0.75472033023834229 521 | Color Space 522 | Calibrated 523 | Green Component 524 | 0.52402210235595703 525 | Red Component 526 | 0.33133840560913086 527 | 528 | Ansi 13 Color 529 | 530 | Blue Component 531 | 0.72311609983444214 532 | Color Space 533 | Calibrated 534 | Green Component 535 | 0.49488019943237305 536 | Red Component 537 | 0.71825045347213745 538 | 539 | Ansi 14 Color 540 | 541 | Blue Component 542 | 0.64188027381896973 543 | Color Space 544 | Calibrated 545 | Green Component 546 | 0.64762973785400391 547 | Red Component 548 | 0.3120269775390625 549 | 550 | Ansi 15 Color 551 | 552 | Blue Component 553 | 0.99999129772186279 554 | Color Space 555 | Calibrated 556 | Green Component 557 | 0.99997437000274658 558 | Red Component 559 | 1 560 | 561 | Ansi 2 Color 562 | 563 | Blue Component 564 | 0.50905120372772217 565 | Color Space 566 | Calibrated 567 | Green Component 568 | 0.74280524253845215 569 | Red Component 570 | 0.53603297472000122 571 | 572 | Ansi 3 Color 573 | 574 | Blue Component 575 | 0.31759658455848694 576 | Color Space 577 | Calibrated 578 | Green Component 579 | 0.74274349212646484 580 | Red Component 581 | 0.97044718265533447 582 | 583 | Ansi 4 Color 584 | 585 | Blue Component 586 | 0.75472033023834229 587 | Color Space 588 | Calibrated 589 | Green Component 590 | 0.52402210235595703 591 | Red Component 592 | 0.33133840560913086 593 | 594 | Ansi 5 Color 595 | 596 | Blue Component 597 | 0.72311609983444214 598 | Color Space 599 | Calibrated 600 | Green Component 601 | 0.49488019943237305 602 | Red Component 603 | 0.71825045347213745 604 | 605 | Ansi 6 Color 606 | 607 | Blue Component 608 | 0.64188027381896973 609 | Color Space 610 | Calibrated 611 | Green Component 612 | 0.64762973785400391 613 | Red Component 614 | 0.3120269775390625 615 | 616 | Ansi 7 Color 617 | 618 | Blue Component 619 | 0.99999129772186279 620 | Color Space 621 | Calibrated 622 | Green Component 623 | 0.99997437000274658 624 | Red Component 625 | 1 626 | 627 | Ansi 8 Color 628 | 629 | Blue Component 630 | 0.41846594214439392 631 | Color Space 632 | Calibrated 633 | Green Component 634 | 0.37485924363136292 635 | Red Component 636 | 0.3234245777130127 637 | 638 | Ansi 9 Color 639 | 640 | Blue Component 641 | 0.33114415407180786 642 | Color Space 643 | Calibrated 644 | Green Component 645 | 0.27702754735946655 646 | Red Component 647 | 0.89593487977981567 648 | 649 | BM Growl 650 | 651 | Background Color 652 | 653 | Blue Component 654 | 0.1297074556350708 655 | Color Space 656 | Calibrated 657 | Green Component 658 | 0.10740385949611664 659 | Red Component 660 | 0.071905560791492462 661 | 662 | Badge Color 663 | 664 | Alpha Component 665 | 0.5 666 | Blue Component 667 | 0.0 668 | Color Space 669 | sRGB 670 | Green Component 671 | 0.1491314172744751 672 | Red Component 673 | 1 674 | 675 | Blend 676 | 1 677 | Blinking Cursor 678 | 679 | Blur 680 | 681 | Bold Color 682 | 683 | Blue Component 684 | 0.76466912031173706 685 | Color Space 686 | Calibrated 687 | Green Component 688 | 0.72239696979522705 689 | Red Component 690 | 0.70114254951477051 691 | 692 | Character Encoding 693 | 4 694 | Close Sessions On End 695 | 696 | Columns 697 | 80 698 | Command 699 | 700 | Cursor Boost 701 | 0.12128497902147635 702 | Cursor Color 703 | 704 | Blue Component 705 | 0.76466912031173706 706 | Color Space 707 | Calibrated 708 | Green Component 709 | 0.72239696979522705 710 | Red Component 711 | 0.70114254951477051 712 | 713 | Cursor Guide Color 714 | 715 | Alpha Component 716 | 0.25 717 | Blue Component 718 | 1 719 | Color Space 720 | sRGB 721 | Green Component 722 | 0.9268307089805603 723 | Red Component 724 | 0.70213186740875244 725 | 726 | Cursor Text Color 727 | 728 | Blue Component 729 | 0.12923833727836609 730 | Color Space 731 | Calibrated 732 | Green Component 733 | 0.10887220501899719 734 | Red Component 735 | 0.072135128080844879 736 | 737 | Custom Command 738 | No 739 | Custom Directory 740 | No 741 | Default Bookmark 742 | No 743 | Description 744 | Default 745 | Disable Window Resizing 746 | 747 | Flashing Bell 748 | 749 | Foreground Color 750 | 751 | Blue Component 752 | 0.76466912031173706 753 | Color Space 754 | Calibrated 755 | Green Component 756 | 0.72239696979522705 757 | Red Component 758 | 0.70114254951477051 759 | 760 | Guid 761 | 9C5E8059-EA4C-471A-AD1E-D9F8EA8FE095 762 | Horizontal Spacing 763 | 1 764 | Idle Code 765 | 0 766 | Jobs to Ignore 767 | 768 | rlogin 769 | ssh 770 | slogin 771 | telnet 772 | 773 | Keyboard Map 774 | 775 | 0x2d-0x40000 776 | 777 | Action 778 | 11 779 | Text 780 | 0x1f 781 | 782 | 0x32-0x40000 783 | 784 | Action 785 | 11 786 | Text 787 | 0x00 788 | 789 | 0x33-0x40000 790 | 791 | Action 792 | 11 793 | Text 794 | 0x1b 795 | 796 | 0x34-0x40000 797 | 798 | Action 799 | 11 800 | Text 801 | 0x1c 802 | 803 | 0x35-0x40000 804 | 805 | Action 806 | 11 807 | Text 808 | 0x1d 809 | 810 | 0x36-0x40000 811 | 812 | Action 813 | 11 814 | Text 815 | 0x1e 816 | 817 | 0x37-0x40000 818 | 819 | Action 820 | 11 821 | Text 822 | 0x1f 823 | 824 | 0x38-0x40000 825 | 826 | Action 827 | 11 828 | Text 829 | 0x7f 830 | 831 | 0xf700-0x220000 832 | 833 | Action 834 | 10 835 | Text 836 | [1;2A 837 | 838 | 0xf700-0x240000 839 | 840 | Action 841 | 10 842 | Text 843 | [1;5A 844 | 845 | 0xf700-0x260000 846 | 847 | Action 848 | 10 849 | Text 850 | [1;6A 851 | 852 | 0xf700-0x280000 853 | 854 | Action 855 | 11 856 | Text 857 | 0x1b 0x1b 0x5b 0x41 858 | 859 | 0xf701-0x220000 860 | 861 | Action 862 | 10 863 | Text 864 | [1;2B 865 | 866 | 0xf701-0x240000 867 | 868 | Action 869 | 10 870 | Text 871 | [1;5B 872 | 873 | 0xf701-0x260000 874 | 875 | Action 876 | 10 877 | Text 878 | [1;6B 879 | 880 | 0xf701-0x280000 881 | 882 | Action 883 | 11 884 | Text 885 | 0x1b 0x1b 0x5b 0x42 886 | 887 | 0xf702-0x220000 888 | 889 | Action 890 | 10 891 | Text 892 | [1;2D 893 | 894 | 0xf702-0x240000 895 | 896 | Action 897 | 10 898 | Text 899 | [1;5D 900 | 901 | 0xf702-0x260000 902 | 903 | Action 904 | 10 905 | Text 906 | [1;6D 907 | 908 | 0xf702-0x280000 909 | 910 | Action 911 | 11 912 | Text 913 | 0x1b 0x1b 0x5b 0x44 914 | 915 | 0xf703-0x220000 916 | 917 | Action 918 | 10 919 | Text 920 | [1;2C 921 | 922 | 0xf703-0x240000 923 | 924 | Action 925 | 10 926 | Text 927 | [1;5C 928 | 929 | 0xf703-0x260000 930 | 931 | Action 932 | 10 933 | Text 934 | [1;6C 935 | 936 | 0xf703-0x280000 937 | 938 | Action 939 | 11 940 | Text 941 | 0x1b 0x1b 0x5b 0x43 942 | 943 | 0xf704-0x20000 944 | 945 | Action 946 | 10 947 | Text 948 | [1;2P 949 | 950 | 0xf705-0x20000 951 | 952 | Action 953 | 10 954 | Text 955 | [1;2Q 956 | 957 | 0xf706-0x20000 958 | 959 | Action 960 | 10 961 | Text 962 | [1;2R 963 | 964 | 0xf707-0x20000 965 | 966 | Action 967 | 10 968 | Text 969 | [1;2S 970 | 971 | 0xf708-0x20000 972 | 973 | Action 974 | 10 975 | Text 976 | [15;2~ 977 | 978 | 0xf709-0x20000 979 | 980 | Action 981 | 10 982 | Text 983 | [17;2~ 984 | 985 | 0xf70a-0x20000 986 | 987 | Action 988 | 10 989 | Text 990 | [18;2~ 991 | 992 | 0xf70b-0x20000 993 | 994 | Action 995 | 10 996 | Text 997 | [19;2~ 998 | 999 | 0xf70c-0x20000 1000 | 1001 | Action 1002 | 10 1003 | Text 1004 | [20;2~ 1005 | 1006 | 0xf70d-0x20000 1007 | 1008 | Action 1009 | 10 1010 | Text 1011 | [21;2~ 1012 | 1013 | 0xf70e-0x20000 1014 | 1015 | Action 1016 | 10 1017 | Text 1018 | [23;2~ 1019 | 1020 | 0xf70f-0x20000 1021 | 1022 | Action 1023 | 10 1024 | Text 1025 | [24;2~ 1026 | 1027 | 0xf729-0x20000 1028 | 1029 | Action 1030 | 10 1031 | Text 1032 | [1;2H 1033 | 1034 | 0xf729-0x40000 1035 | 1036 | Action 1037 | 10 1038 | Text 1039 | [1;5H 1040 | 1041 | 0xf72b-0x20000 1042 | 1043 | Action 1044 | 10 1045 | Text 1046 | [1;2F 1047 | 1048 | 0xf72b-0x40000 1049 | 1050 | Action 1051 | 10 1052 | Text 1053 | [1;5F 1054 | 1055 | 1056 | Link Color 1057 | 1058 | Alpha Component 1059 | 1 1060 | Blue Component 1061 | 0.73423302173614502 1062 | Color Space 1063 | sRGB 1064 | Green Component 1065 | 0.35916060209274292 1066 | Red Component 1067 | 0.0 1068 | 1069 | Minimum Contrast 1070 | 0.0 1071 | Mouse Reporting 1072 | 1073 | Name 1074 | Default 1075 | Non Ascii Font 1076 | Monaco 12 1077 | Non-ASCII Anti Aliased 1078 | 1079 | Normal Font 1080 | FuraCodeNerdFontCompleteM-Regular 12 1081 | Only The Default BG Color Uses Transparency 1082 | 1083 | Option Key Sends 1084 | 0 1085 | Prompt Before Closing 2 1086 | 1087 | Right Option Key Sends 1088 | 0 1089 | Rows 1090 | 25 1091 | Screen 1092 | -1 1093 | Scrollback Lines 1094 | 1000 1095 | Selected Text Color 1096 | 1097 | Blue Component 1098 | 0.76466912031173706 1099 | Color Space 1100 | Calibrated 1101 | Green Component 1102 | 0.72239696979522705 1103 | Red Component 1104 | 0.70114254951477051 1105 | 1106 | Selection Color 1107 | 1108 | Blue Component 1109 | 0.32565724849700928 1110 | Color Space 1111 | Calibrated 1112 | Green Component 1113 | 0.28464928269386292 1114 | Red Component 1115 | 0.24374458193778992 1116 | 1117 | Send Code When Idle 1118 | 1119 | Shortcut 1120 | 1121 | Silence Bell 1122 | 1123 | Smart Cursor Color 1124 | 1125 | Sync Title 1126 | 1127 | Tags 1128 | 1129 | Terminal Type 1130 | xterm-256color 1131 | Transparency 1132 | 0.0 1133 | Unlimited Scrollback 1134 | 1135 | Use Bold Font 1136 | 1137 | Use Bright Bold 1138 | 1139 | Use Italic Font 1140 | 1141 | Use Non-ASCII Font 1142 | 1143 | Vertical Spacing 1144 | 1 1145 | Visual Bell 1146 | 1147 | Window Type 1148 | 12 1149 | Working Directory 1150 | /Users/ctay20 1151 | 1152 | 1153 | NoSyncCommandHistoryHasEverBeenUsed 1154 | 1155 | NoSyncHaveWarnedAboutPasteConfirmationChange 1156 | 1157 | NoSyncInstallationId 1158 | 80912C02-4EDB-459F-B04A-8C48F4599139 1159 | NoSyncLastTipTime 1160 | 548541954.73485506 1161 | NoSyncNeverRemindPrefsChangesLostForFile 1162 | 1163 | NoSyncNeverRemindPrefsChangesLostForFile_selection 1164 | 0 1165 | NoSyncPermissionToShowTip 1166 | 1167 | NoSyncRecordedVariableNames 1168 | 1169 | 1 1170 | 1171 | session.jobName 1172 | session.id 1173 | session.profileName 1174 | session.name 1175 | session.terminalIconName 1176 | session.tmuxClientName 1177 | session.termid 1178 | session.triggerName 1179 | session.tmuxWindowPane 1180 | session.hostname 1181 | session.username 1182 | session.tmuxRole 1183 | session.path 1184 | session.creationTimeString 1185 | session.rows 1186 | session.tmuxWindowTitle 1187 | session.autoLogId 1188 | session.tty 1189 | session.autoName 1190 | session.terminalWindowName 1191 | iterm2 1192 | session.jobPid 1193 | session.lastCommand 1194 | session.pid 1195 | session.presentationName 1196 | session.columns 1197 | 1198 | 16 1199 | 1200 | titleOverride 1201 | currentTab 1202 | currentTab.currentSession.session.terminalWindowName 1203 | currentTab.currentSession.session.columns 1204 | currentTab.currentSession 1205 | currentTab.currentSession.session.pid 1206 | currentTab.currentSession.session.autoName 1207 | currentTab.currentSession.session.terminalIconName 1208 | currentTab.currentSession.session.presentationName 1209 | currentTab.currentSession.session.name 1210 | currentTab.currentSession.session.tty 1211 | currentTab.currentSession.session.username 1212 | currentTab.currentSession.session.jobName 1213 | currentTab.currentSession.session.rows 1214 | iterm2 1215 | currentTab.currentSession.session.hostname 1216 | currentTab.currentSession.session.jobPid 1217 | currentTab.currentSession.session.path 1218 | currentTab.currentSession.session.lastCommand 1219 | 1220 | 2 1221 | 1222 | currentSession 1223 | titleOverride 1224 | currentSession.session.username 1225 | currentSession.session.lastCommand 1226 | currentSession.session.termid 1227 | currentSession.session.pid 1228 | currentSession.session.autoName 1229 | currentSession.session.name 1230 | currentSession.session.path 1231 | currentSession.session.terminalWindowName 1232 | currentSession.session.tty 1233 | currentSession.session.jobName 1234 | currentSession.session.rows 1235 | iterm2 1236 | tmuxWindow 1237 | currentSession.session.presentationName 1238 | currentSession.session.terminalIconName 1239 | currentSession.session.jobPid 1240 | currentSession.session.hostname 1241 | currentSession.session.columns 1242 | 1243 | 4 1244 | 1245 | pid 1246 | 1247 | 1248 | NoSyncTimeOfFirstLaunchOfVersionWithTip 1249 | 539638373.30846095 1250 | NoSyncTipsToNotShow 1251 | 1252 | 000 1253 | 0000 1254 | 0001 1255 | 0002 1256 | 0003 1257 | 0004 1258 | 0005 1259 | 0006 1260 | 0007 1261 | 0008 1262 | 0009 1263 | 0010 1264 | 0011 1265 | 0012 1266 | 0013 1267 | 0014 1268 | 0015 1269 | 0016 1270 | 0017 1271 | 0018 1272 | 0019 1273 | 0020 1274 | 0021 1275 | 0022 1276 | 0023 1277 | 0024 1278 | 0025 1279 | 0026 1280 | 0027 1281 | 0028 1282 | 0029 1283 | 0030 1284 | 0031 1285 | 0032 1286 | 0033 1287 | 0034 1288 | 0035 1289 | 0036 1290 | 0037 1291 | 0038 1292 | 0039 1293 | 0040 1294 | 0041 1295 | 0042 1296 | 0043 1297 | 0044 1298 | 0045 1299 | 0046 1300 | 0047 1301 | 0048 1302 | 0049 1303 | 0050 1304 | 0051 1305 | 0052 1306 | 0053 1307 | 0054 1308 | 0055 1309 | 0056 1310 | 0057 1311 | 0058 1312 | 0059 1313 | 0060 1314 | 0061 1315 | 0062 1316 | 0063 1317 | 0064 1318 | 0065 1319 | 0066 1320 | 0067 1321 | 0068 1322 | 0069 1323 | 0070 1324 | 0071 1325 | 1326 | NoSyncVeryOldNightlyBuildWarning_SilenceUntil 1327 | 576967331.90302598 1328 | NoSyncVeryOldNightlyBuildWarning_selection 1329 | 1 1330 | PMPrintingExpandedStateForPrint2 1331 | 1332 | PointerActions 1333 | 1334 | Button,1,1,, 1335 | 1336 | Action 1337 | kContextMenuPointerAction 1338 | 1339 | Button,2,1,, 1340 | 1341 | Action 1342 | kPasteFromClipboardPointerAction 1343 | 1344 | Gesture,ThreeFingerSwipeDown,, 1345 | 1346 | Action 1347 | kPrevWindowPointerAction 1348 | 1349 | Gesture,ThreeFingerSwipeLeft,, 1350 | 1351 | Action 1352 | kPrevTabPointerAction 1353 | 1354 | Gesture,ThreeFingerSwipeRight,, 1355 | 1356 | Action 1357 | kNextTabPointerAction 1358 | 1359 | Gesture,ThreeFingerSwipeUp,, 1360 | 1361 | Action 1362 | kNextWindowPointerAction 1363 | 1364 | 1365 | PrefsCustomFolder 1366 | /Users/ctay20/code/jarvis/iterm 1367 | Print In Black And White 1368 | 1369 | QuitWhenAllWindowsClosed 1370 | 1371 | SUAutomaticallyUpdate 1372 | 1373 | SUEnableAutomaticChecks 1374 | 1375 | SUFeedAlternateAppNameKey 1376 | iTerm 1377 | SUFeedURL 1378 | https://iterm2.com/appcasts/final.xml?shard=47 1379 | SUHasLaunchedBefore 1380 | 1381 | SULastCheckTime 1382 | 2019-03-15T20:44:15Z 1383 | SUSendProfileInfo 1384 | 1385 | ShowFullScreenTabBar 1386 | 1387 | ShowMetalFPSmeter 1388 | 1389 | ShowPaneTitles 1390 | 1391 | SmartPlacement 1392 | 1393 | TabStyle 1394 | 1 1395 | TabViewType 1396 | 0 1397 | TerminalMargin 1398 | 15 1399 | TerminalVMargin 1400 | 5 1401 | UseBorder 1402 | 1403 | UseLionStyleFullscreen 1404 | 1405 | UseMetal 1406 | 1407 | WindowNumber 1408 | 1409 | WordCharacters 1410 | /-+\~_. 1411 | disableMetalWhenUnplugged 1412 | 1413 | findMode_iTerm 1414 | 0 1415 | iTerm Version 1416 | 3.2.20180802-nightly 1417 | kCPKSelectionViewPreferredModeKey 1418 | 0 1419 | kCPKSelectionViewShowHSBTextFieldsKey 1420 | 1421 | metalMaximizeThroughput 1422 | 1423 | 1424 | 1425 | -------------------------------------------------------------------------------- /jarvis/tmux/tmux.conf.symlink: -------------------------------------------------------------------------------- 1 | ####################### 2 | # *** PLUGINS *** # 3 | ######################## 4 | set -g @plugin 'tmux-plugins/tmux-cpu' 5 | 6 | ######################## 7 | # *** DISPLAY *** # 8 | ######################## 9 | 10 | # Set tmux to display in 256 colors 11 | set -g default-terminal "screen-256color" 12 | set -ga terminal-overrides ",xterm-256color:Tc" 13 | 14 | # Set border colors 15 | set-option -g pane-border-style 'fg=#343D46,bg=colour0' 16 | set-option -g pane-active-border-style 'fg=colour3,bg=colour0' 17 | 18 | # Set status line message style 19 | set -g message-style "fg=colour5,bg=default" 20 | 21 | # Set mode style (including history bar) 22 | set -g mode-style "fg=colour3" 23 | 24 | ######################## 25 | # *** GENERAL *** # 26 | ######################## 27 | 28 | # Set Ctrl-a as the default prefix key combination 29 | # and unbind C-b to free it up 30 | set -g prefix C-a 31 | unbind C-b 32 | 33 | # Start windows numbering at 1 34 | set -g base-index 1 35 | 36 | # Start pane numbering at 1 37 | setw -g pane-base-index 1 38 | 39 | # Re-draw status window every 5 seconds 40 | set -g status-interval 5 41 | 42 | # set scrollback history to 10000 (10k) 43 | set -g history-limit 10000 44 | 45 | # enable scroll with mouse 46 | set -g mouse on 47 | bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'select-pane -t=; copy-mode -e; send-keys -M'" 48 | bind -n WheelDownPane select-pane -t= \; send-keys -M 49 | 50 | # shorten command delay 51 | set -sg escape-time 1 52 | 53 | # use send-prefix to pass C-a through to application 54 | bind C-a send-prefix 55 | 56 | # reload ~/.tmux.conf using PREFIX r 57 | bind r source-file ~/.tmux.conf \; display "tmux.conf source" 58 | 59 | # Bind - to split window horizontally 60 | bind - split-window -v 61 | 62 | # Bind | to split window vertically 63 | bind | split-window -h 64 | 65 | # Map vim movement keys as pane movement keys with prefix 66 | bind h select-pane -L 67 | bind j select-pane -D 68 | bind k select-pane -U 69 | bind l select-pane -R 70 | 71 | # resize panes using PREFIX H, J, K, L 72 | bind H resize-pane -L 5 73 | bind J resize-pane -D 5 74 | bind K resize-pane -U 5 75 | bind L resize-pane -R 5 76 | 77 | # visual notification of activity in other windows 78 | setw -g monitor-activity on 79 | set -g visual-activity on 80 | 81 | ######################### 82 | # *** STATUS BAR *** # 83 | ######################### 84 | 85 | # Enable status bar 86 | set-option -g status on 87 | 88 | # Set window list to center 89 | set -g status-justify centre 90 | 91 | # Set default bg/fg settings for status bar 92 | set-option -g status-style bright,bg='#1B2B34',fg=default 93 | 94 | set-window-option -g window-status-current-format '' 95 | set-window-option -g window-status-current-format '' 96 | set-window-option -g window-status-current-style fg=colour114,bg=default,bright 97 | 98 | # Configure CPU plugin colors for statusline 99 | set -g @cpu_low_fg_color "#[fg=green]" 100 | set -g @cpu_medium_fg_color "#[fg=yellow]" 101 | set -g @cpu_high_fg_color "#[fg=red]" 102 | 103 | set -g @cpu_low_bg_color "#[bg=default]" 104 | set -g @cpu_medium_bg_color "#[bg=default]" 105 | set -g @cpu_high_bg_color "#[bg=default]" 106 | 107 | # Left Status Bar: [CPU Usage] 108 | set -g status-left "#{cpu_bg_color}#{cpu_fg_color} #{cpu_icon}#{cpu_percentage}" 109 | set -g status-left-length 85 110 | 111 | # Right Status Bar: [Session Name][Date][Time] 112 | set -g status-right "#[fg=magenta]#S #[fg=colour8]‹#[fg=yellow]#[fg=yellow,bold,bg=default] %b %d %Y #[fg=colour8]‹#[fg=green,bg=default]#[bg=default,fg=green,bold]%l:%M %p #[fg=blue]" 113 | 114 | # Auto-hide status bar if pane is maximized 115 | set-hook -g 'after-resize-pane' 'run-shell -b "if [ \#{window_zoomed_flag} -eq 1 ]; then tmux set status off; else tmux set status on; fi"' 116 | set-hook -g 'after-new-window' 'run-shell -b "if [ \#{window_zoomed_flag} -eq 1 ]; then tmux set status off; else tmux set status on; fi"' 117 | set-hook -g 'after-kill-pane' 'run-shell -b "if [ \#{window_zoomed_flag} -eq 1 ]; then tmux set status off; else tmux set status on; fi"' 118 | set-hook -g 'pane-exited' 'run-shell -b "if [ \#{window_zoomed_flag} -eq 1 ]; then tmux set status off; else tmux set status on; fi"' 119 | set-hook -g 'after-split-window' 'run-shell -b "if [ \#{window_zoomed_flag} -gt 1 ]; then tmux set status off; else tmux set status on; fi"' 120 | 121 | # Initialize TMUX plugin manager 122 | run '~/.tmux/plugins/tpm/tpm' 123 | -------------------------------------------------------------------------------- /jarvis/zsh/zshrc.symlink: -------------------------------------------------------------------------------- 1 | # Path to oh-my-zsh installation. 2 | export ZSH=~/.oh-my-zsh 3 | 4 | # Name of the theme to load. 5 | # Look in ~/.oh-my-zsh/themes/ 6 | ZSH_THEME="" 7 | 8 | # TMUX 9 | # Automatically start tmux 10 | ZSH_TMUX_AUTOSTART=true 11 | 12 | # Automatically connect to a previous session if it exists 13 | ZSH_TMUX_AUTOCONNECT=true 14 | 15 | # Enable command auto-correction. 16 | ENABLE_CORRECTION="true" 17 | 18 | # Display red dots whilst waiting for completion. 19 | COMPLETION_WAITING_DOTS="true" 20 | 21 | # Disable marking untracked files 22 | # under VCS as dirty. This makes repository status check for large repositories 23 | # much, much faster. 24 | DISABLE_UNTRACKED_FILES_DIRTY="true" 25 | 26 | # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) 27 | # Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ 28 | # Example format: plugins=(rails git textmate ruby lighthouse) 29 | # Add wisely, as too many plugins slow down shell startup. 30 | plugins=(git node brew tmux) 31 | 32 | # User configuration 33 | # Hide user@hostname if it's expected default user 34 | DEFAULT_USER="ctay20" 35 | prompt_context(){} 36 | 37 | # Setting rg as the default source for fzf 38 | export FZF_DEFAULT_COMMAND='rg --files' 39 | 40 | # Apply the command to CTRL-T as well 41 | export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" 42 | 43 | # Set location of z installation 44 | . /usr/local/etc/profile.d/z.sh 45 | 46 | ## FZF FUNCTIONS ## 47 | 48 | # fo [FUZZY PATTERN] - Open the selected file with the default editor 49 | # - Bypass fuzzy finder if there's only one match (--select-1) 50 | # - Exit if there's no match (--exit-0) 51 | fo() { 52 | local files 53 | IFS=$'\n' files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0)) 54 | [[ -n "$files" ]] && ${EDITOR:-vim} "${files[@]}" 55 | } 56 | 57 | # fh [FUZZY PATTERN] - Search in command history 58 | fh() { 59 | print -z $( ([ -n "$ZSH_NAME" ] && fc -l 1 || history) | fzf +s --tac | sed 's/ *[0-9]* *//') 60 | } 61 | 62 | # fbr [FUZZY PATTERN] - Checkout specified branch 63 | # Include remote branches, sorted by most recent commit and limited to 30 64 | fgb() { 65 | local branches branch 66 | branches=$(git for-each-ref --count=30 --sort=-committerdate refs/heads/ --format="%(refname:short)") && 67 | branch=$(echo "$branches" | 68 | fzf-tmux -d $(( 2 + $(wc -l <<< "$branches") )) +m) && 69 | git checkout $(echo "$branch" | sed "s/.* //" | sed "s#remotes/[^/]*/##") 70 | } 71 | 72 | # tm [SESSION_NAME | FUZZY PATTERN] - create new tmux session, or switch to existing one. 73 | # Running `tm` will let you fuzzy-find a session mame 74 | # Passing an argument to `ftm` will switch to that session if it exists or create it otherwise 75 | ftm() { 76 | [[ -n "$TMUX" ]] && change="switch-client" || change="attach-session" 77 | if [ $1 ]; then 78 | tmux $change -t "$1" 2>/dev/null || (tmux new-session -d -s $1 && tmux $change -t "$1"); return 79 | fi 80 | session=$(tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0) && tmux $change -t "$session" || echo "No sessions found." 81 | } 82 | 83 | # tm [SESSION_NAME | FUZZY PATTERN] - delete tmux session 84 | # Running `tm` will let you fuzzy-find a session mame to delete 85 | # Passing an argument to `ftm` will delete that session if it exists 86 | ftmk() { 87 | if [ $1 ]; then 88 | tmux kill-session -t "$1"; return 89 | fi 90 | session=$(tmux list-sessions -F "#{session_name}" 2>/dev/null | fzf --exit-0) && tmux kill-session -t "$session" || echo "No session found to delete." 91 | } 92 | 93 | # fuzzy grep via rg and open in vim with line number 94 | fgr() { 95 | local file 96 | local line 97 | 98 | read -r file line <<<"$(rg --no-heading --line-number $@ | fzf -0 -1 | awk -F: '{print $1, $2}')" 99 | 100 | if [[ -n $file ]] 101 | then 102 | vim $file +$line 103 | fi 104 | } 105 | 106 | # Enabled zsh-autosuggestions 107 | source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh 108 | 109 | # Set default editor to nvim 110 | export EDITOR='nvim' 111 | 112 | # Enabled true color support for terminals 113 | export NVIM_TUI_ENABLE_TRUE_COLOR=1 114 | 115 | # Aliases 116 | alias vim="nvim" 117 | alias top="vtop --theme=wizard" 118 | alias ls="colorls -lA --sd" 119 | 120 | source $ZSH/oh-my-zsh.sh 121 | 122 | # Set Spaceship as prompt 123 | autoload -U promptinit; promptinit 124 | prompt spaceship 125 | SPACESHIP_PACKAGE_SHOW=false 126 | SPACESHIP_NODE_SHOW=false 127 | SPACESHIP_GIT_STATUS_STASHED='' 128 | -------------------------------------------------------------------------------- /oceanic-next-iterm/Oceanic-Dark-iterm3.itermcolors: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ansi 0 Color 6 | 7 | Alpha Component 8 | 1 9 | Blue Component 10 | 0.15351898968219757 11 | Color Space 12 | Calibrated 13 | Green Component 14 | 0.12613683938980103 15 | Red Component 16 | 0.082745037972927094 17 | 18 | Ansi 1 Color 19 | 20 | Alpha Component 21 | 1 22 | Blue Component 23 | 0.33114415407180786 24 | Color Space 25 | Calibrated 26 | Green Component 27 | 0.27702754735946655 28 | Red Component 29 | 0.89593487977981567 30 | 31 | Ansi 10 Color 32 | 33 | Alpha Component 34 | 1 35 | Blue Component 36 | 0.50905120372772217 37 | Color Space 38 | Calibrated 39 | Green Component 40 | 0.74280524253845215 41 | Red Component 42 | 0.53603297472000122 43 | 44 | Ansi 11 Color 45 | 46 | Alpha Component 47 | 1 48 | Blue Component 49 | 0.31759658455848694 50 | Color Space 51 | Calibrated 52 | Green Component 53 | 0.74274349212646484 54 | Red Component 55 | 0.97044718265533447 56 | 57 | Ansi 12 Color 58 | 59 | Alpha Component 60 | 1 61 | Blue Component 62 | 0.75472033023834229 63 | Color Space 64 | Calibrated 65 | Green Component 66 | 0.52402210235595703 67 | Red Component 68 | 0.33133843541145325 69 | 70 | Ansi 13 Color 71 | 72 | Alpha Component 73 | 1 74 | Blue Component 75 | 0.72311609983444214 76 | Color Space 77 | Calibrated 78 | Green Component 79 | 0.49488019943237305 80 | Red Component 81 | 0.71825045347213745 82 | 83 | Ansi 14 Color 84 | 85 | Alpha Component 86 | 1 87 | Blue Component 88 | 0.64188027381896973 89 | Color Space 90 | Calibrated 91 | Green Component 92 | 0.64762973785400391 93 | Red Component 94 | 0.3120269775390625 95 | 96 | Ansi 15 Color 97 | 98 | Alpha Component 99 | 1 100 | Blue Component 101 | 0.99999129772186279 102 | Color Space 103 | Calibrated 104 | Green Component 105 | 0.99997437000274658 106 | Red Component 107 | 1 108 | 109 | Ansi 2 Color 110 | 111 | Alpha Component 112 | 1 113 | Blue Component 114 | 0.50905120372772217 115 | Color Space 116 | Calibrated 117 | Green Component 118 | 0.74280524253845215 119 | Red Component 120 | 0.53603297472000122 121 | 122 | Ansi 3 Color 123 | 124 | Alpha Component 125 | 1 126 | Blue Component 127 | 0.31759658455848694 128 | Color Space 129 | Calibrated 130 | Green Component 131 | 0.74274349212646484 132 | Red Component 133 | 0.97044718265533447 134 | 135 | Ansi 4 Color 136 | 137 | Alpha Component 138 | 1 139 | Blue Component 140 | 0.75472033023834229 141 | Color Space 142 | Calibrated 143 | Green Component 144 | 0.52402210235595703 145 | Red Component 146 | 0.33133843541145325 147 | 148 | Ansi 5 Color 149 | 150 | Alpha Component 151 | 1 152 | Blue Component 153 | 0.72311609983444214 154 | Color Space 155 | Calibrated 156 | Green Component 157 | 0.49488019943237305 158 | Red Component 159 | 0.71825045347213745 160 | 161 | Ansi 6 Color 162 | 163 | Alpha Component 164 | 1 165 | Blue Component 166 | 0.64188027381896973 167 | Color Space 168 | Calibrated 169 | Green Component 170 | 0.64762973785400391 171 | Red Component 172 | 0.3120269775390625 173 | 174 | Ansi 7 Color 175 | 176 | Alpha Component 177 | 1 178 | Blue Component 179 | 0.99999129772186279 180 | Color Space 181 | Calibrated 182 | Green Component 183 | 0.99997437000274658 184 | Red Component 185 | 1 186 | 187 | Ansi 8 Color 188 | 189 | Alpha Component 190 | 1 191 | Blue Component 192 | 0.41846594214439392 193 | Color Space 194 | Calibrated 195 | Green Component 196 | 0.37485924363136292 197 | Red Component 198 | 0.3234245777130127 199 | 200 | Ansi 9 Color 201 | 202 | Alpha Component 203 | 1 204 | Blue Component 205 | 0.33114415407180786 206 | Color Space 207 | Calibrated 208 | Green Component 209 | 0.27702754735946655 210 | Red Component 211 | 0.89593487977981567 212 | 213 | Background Color 214 | 215 | Alpha Component 216 | 1 217 | Blue Component 218 | 0.15351898968219757 219 | Color Space 220 | Calibrated 221 | Green Component 222 | 0.12613683938980103 223 | Red Component 224 | 0.082745037972927094 225 | 226 | Badge Color 227 | 228 | Alpha Component 229 | 0.5 230 | Blue Component 231 | 0.0 232 | Color Space 233 | Calibrated 234 | Green Component 235 | 0.0 236 | Red Component 237 | 1 238 | 239 | Bold Color 240 | 241 | Alpha Component 242 | 1 243 | Blue Component 244 | 0.76466912031173706 245 | Color Space 246 | Calibrated 247 | Green Component 248 | 0.72239696979522705 249 | Red Component 250 | 0.70114254951477051 251 | 252 | Cursor Color 253 | 254 | Alpha Component 255 | 1 256 | Blue Component 257 | 0.76466912031173706 258 | Color Space 259 | Calibrated 260 | Green Component 261 | 0.72239696979522705 262 | Red Component 263 | 0.70114254951477051 264 | 265 | Cursor Guide Color 266 | 267 | Alpha Component 268 | 0.25 269 | Blue Component 270 | 1 271 | Color Space 272 | Calibrated 273 | Green Component 274 | 0.9100000262260437 275 | Red Component 276 | 0.64999997615814209 277 | 278 | Cursor Text Color 279 | 280 | Alpha Component 281 | 1 282 | Blue Component 283 | 0.15351898968219757 284 | Color Space 285 | Calibrated 286 | Green Component 287 | 0.12613683938980103 288 | Red Component 289 | 0.082745037972927094 290 | 291 | Foreground Color 292 | 293 | Alpha Component 294 | 1 295 | Blue Component 296 | 0.76466912031173706 297 | Color Space 298 | Calibrated 299 | Green Component 300 | 0.72239696979522705 301 | Red Component 302 | 0.70114254951477051 303 | 304 | Link Color 305 | 306 | Alpha Component 307 | 1 308 | Blue Component 309 | 0.67799997329711914 310 | Color Space 311 | Calibrated 312 | Green Component 313 | 0.27000001072883606 314 | Red Component 315 | 0.023000000044703484 316 | 317 | Selected Text Color 318 | 319 | Alpha Component 320 | 1 321 | Blue Component 322 | 0.76466912031173706 323 | Color Space 324 | Calibrated 325 | Green Component 326 | 0.72239696979522705 327 | Red Component 328 | 0.70114254951477051 329 | 330 | Selection Color 331 | 332 | Alpha Component 333 | 1 334 | Blue Component 335 | 0.32565724849700928 336 | Color Space 337 | Calibrated 338 | Green Component 339 | 0.28464928269386292 340 | Red Component 341 | 0.24374458193778992 342 | 343 | 344 | 345 | -------------------------------------------------------------------------------- /oceanic-next-iterm/Oceanic-Next.itermcolors: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ansi 0 Color 6 | 7 | Blue Component 8 | 0.12923833727836609 9 | Color Space 10 | Calibrated 11 | Green Component 12 | 0.10887220501899719 13 | Red Component 14 | 0.072135128080844879 15 | 16 | Ansi 1 Color 17 | 18 | Blue Component 19 | 0.33114415407180786 20 | Color Space 21 | Calibrated 22 | Green Component 23 | 0.27702754735946655 24 | Red Component 25 | 0.89593487977981567 26 | 27 | Ansi 10 Color 28 | 29 | Blue Component 30 | 0.50905120372772217 31 | Color Space 32 | Calibrated 33 | Green Component 34 | 0.74280524253845215 35 | Red Component 36 | 0.53603297472000122 37 | 38 | Ansi 11 Color 39 | 40 | Blue Component 41 | 0.31759658455848694 42 | Color Space 43 | Calibrated 44 | Green Component 45 | 0.74274349212646484 46 | Red Component 47 | 0.97044718265533447 48 | 49 | Ansi 12 Color 50 | 51 | Blue Component 52 | 0.75472033023834229 53 | Color Space 54 | Calibrated 55 | Green Component 56 | 0.52402210235595703 57 | Red Component 58 | 0.33133840560913086 59 | 60 | Ansi 13 Color 61 | 62 | Blue Component 63 | 0.72311609983444214 64 | Color Space 65 | Calibrated 66 | Green Component 67 | 0.49488019943237305 68 | Red Component 69 | 0.71825045347213745 70 | 71 | Ansi 14 Color 72 | 73 | Blue Component 74 | 0.64188027381896973 75 | Color Space 76 | Calibrated 77 | Green Component 78 | 0.64762973785400391 79 | Red Component 80 | 0.3120269775390625 81 | 82 | Ansi 15 Color 83 | 84 | Blue Component 85 | 0.99999129772186279 86 | Color Space 87 | Calibrated 88 | Green Component 89 | 0.99997437000274658 90 | Red Component 91 | 1 92 | 93 | Ansi 2 Color 94 | 95 | Blue Component 96 | 0.50905120372772217 97 | Color Space 98 | Calibrated 99 | Green Component 100 | 0.74280524253845215 101 | Red Component 102 | 0.53603297472000122 103 | 104 | Ansi 3 Color 105 | 106 | Blue Component 107 | 0.31759658455848694 108 | Color Space 109 | Calibrated 110 | Green Component 111 | 0.74274349212646484 112 | Red Component 113 | 0.97044718265533447 114 | 115 | Ansi 4 Color 116 | 117 | Blue Component 118 | 0.75472033023834229 119 | Color Space 120 | Calibrated 121 | Green Component 122 | 0.52402210235595703 123 | Red Component 124 | 0.33133840560913086 125 | 126 | Ansi 5 Color 127 | 128 | Blue Component 129 | 0.72311609983444214 130 | Color Space 131 | Calibrated 132 | Green Component 133 | 0.49488019943237305 134 | Red Component 135 | 0.71825045347213745 136 | 137 | Ansi 6 Color 138 | 139 | Blue Component 140 | 0.64188027381896973 141 | Color Space 142 | Calibrated 143 | Green Component 144 | 0.64762973785400391 145 | Red Component 146 | 0.3120269775390625 147 | 148 | Ansi 7 Color 149 | 150 | Blue Component 151 | 0.99999129772186279 152 | Color Space 153 | Calibrated 154 | Green Component 155 | 0.99997437000274658 156 | Red Component 157 | 1 158 | 159 | Ansi 8 Color 160 | 161 | Blue Component 162 | 0.41846594214439392 163 | Color Space 164 | Calibrated 165 | Green Component 166 | 0.37485924363136292 167 | Red Component 168 | 0.3234245777130127 169 | 170 | Ansi 9 Color 171 | 172 | Blue Component 173 | 0.33114415407180786 174 | Color Space 175 | Calibrated 176 | Green Component 177 | 0.27702754735946655 178 | Red Component 179 | 0.89593487977981567 180 | 181 | Background Color 182 | 183 | Blue Component 184 | 0.1297074556350708 185 | Color Space 186 | Calibrated 187 | Green Component 188 | 0.10740385949611664 189 | Red Component 190 | 0.071905560791492462 191 | 192 | Bold Color 193 | 194 | Blue Component 195 | 0.76466912031173706 196 | Color Space 197 | Calibrated 198 | Green Component 199 | 0.72239696979522705 200 | Red Component 201 | 0.70114254951477051 202 | 203 | Cursor Color 204 | 205 | Blue Component 206 | 0.76466912031173706 207 | Color Space 208 | Calibrated 209 | Green Component 210 | 0.72239696979522705 211 | Red Component 212 | 0.70114254951477051 213 | 214 | Cursor Text Color 215 | 216 | Blue Component 217 | 0.12923833727836609 218 | Color Space 219 | Calibrated 220 | Green Component 221 | 0.10887220501899719 222 | Red Component 223 | 0.072135128080844879 224 | 225 | Foreground Color 226 | 227 | Blue Component 228 | 0.76466912031173706 229 | Color Space 230 | Calibrated 231 | Green Component 232 | 0.72239696979522705 233 | Red Component 234 | 0.70114254951477051 235 | 236 | Selected Text Color 237 | 238 | Blue Component 239 | 0.76466912031173706 240 | Color Space 241 | Calibrated 242 | Green Component 243 | 0.72239696979522705 244 | Red Component 245 | 0.70114254951477051 246 | 247 | Selection Color 248 | 249 | Blue Component 250 | 0.32565724849700928 251 | Color Space 252 | Calibrated 253 | Green Component 254 | 0.28464928269386292 255 | Red Component 256 | 0.24374458193778992 257 | 258 | 259 | 260 | -------------------------------------------------------------------------------- /oceanic-next-iterm/README.md: -------------------------------------------------------------------------------- 1 | ![](https://raw.githubusercontent.com/mhartington/oceanic-next-iterm/master/oceanic-next-iterm.png) 2 | ## Installation 3 | + On iTerm2, go to Preferences > Profiles > Colors 4 | + Click on Load Presets > Import 5 | + Load the theme by clicking on Load Presets and selecting it 6 | 7 | ## 256 Colors only 8 | 9 | This theme is updated to work with only 256 color. Iterm2 has support for 256 colors, as well as True Colors in the nightly builds. 10 | 11 | ## Oceanic Vim color scheme 12 | 13 | If you're also using my [Oceanic-next colorscheme](https://github.com/mhartington/oceanic-next) in regular vim, you'll want to use this iterm colorscheme. Vim uses the anis colors from the terminal settings and that interferes with the color scheme. 14 | -------------------------------------------------------------------------------- /oceanic-next-iterm/oceanic-next-iterm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bketelsen/dotfiles-older/24f1724f7762569bcb1e9416293e204d797b96ec/oceanic-next-iterm/oceanic-next-iterm.png -------------------------------------------------------------------------------- /scripts/defaults.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | defaults write com.apple.dock workspaces-auto-swoosh -bool NO 4 | defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false 5 | defaults write com.apple.screencapture location /Users/bjk/Pictures/Screenshots 6 | 7 | -------------------------------------------------------------------------------- /scripts/oh-my-zsh.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" -------------------------------------------------------------------------------- /shell/cargo/files/env: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # rustup shell setup 3 | # affix colons on either side of $PATH to simplify matching 4 | case ":${PATH}:" in 5 | *:"$HOME/.cargo/bin":*) 6 | ;; 7 | *) 8 | # Prepending path in case a system-installed rustc needs to be overridden 9 | export PATH="$HOME/.cargo/bin:$PATH" 10 | ;; 11 | esac 12 | -------------------------------------------------------------------------------- /shell/cargo/main.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | - action: file.copy 3 | from: env 4 | to: "{{ user.home_dir }}/.cargo/env" 5 | template: false 6 | -------------------------------------------------------------------------------- /shell/shell.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | - action: package.install 3 | list: 4 | - exa 5 | - htop 6 | - fd 7 | - jq 8 | - jid 9 | - just 10 | - ripgrep 11 | - wget 12 | - direnv 13 | - zsh-autosuggestions 14 | - zsh-syntax-highlighting 15 | 16 | -------------------------------------------------------------------------------- /shell/starship/files/starship.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | disable = true 3 | 4 | [aws] 5 | disabled = true -------------------------------------------------------------------------------- /shell/starship/main.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | - action: file.copy 3 | from: starship.toml 4 | to: "{{ user.home_dir }}/.config/starship.toml" 5 | template: false 6 | - action: package.install 7 | list: 8 | - starship -------------------------------------------------------------------------------- /shell/zfunc/files/hello: -------------------------------------------------------------------------------- 1 | printf 'Hello world.\n' -------------------------------------------------------------------------------- /shell/zfunc/main.yaml: -------------------------------------------------------------------------------- 1 | actions: 2 | - action: file.copy 3 | from: hello 4 | to: "{{ user.home_dir }}/.zfunc/hello" 5 | template: false 6 | -------------------------------------------------------------------------------- /shell/zsh/files/zprofile: -------------------------------------------------------------------------------- 1 | eval "$(/opt/homebrew/bin/brew shellenv)" 2 | FPATH=$(brew --prefix)/share/zsh/site-functions:$FPATH 3 | export ZSH_DISABLE_COMPFIX=true -------------------------------------------------------------------------------- /shell/zsh/files/zshenv: -------------------------------------------------------------------------------- 1 | # 2 | # Browser 3 | # 4 | 5 | if [[ "$OSTYPE" == darwin* ]]; then 6 | export BROWSER='open' 7 | fi 8 | 9 | # 10 | # Editors 11 | # 12 | 13 | export EDITOR='nvim' 14 | export VISUAL='nvim' 15 | export PAGER='less' 16 | 17 | # 18 | # Language 19 | # 20 | 21 | export LANG='en_US.UTF-8' 22 | export LC_ALL=en_US.UTF-8 23 | export LC_CTYPE="en_US.UTF-8" 24 | # 25 | # Paths 26 | # 27 | 28 | typeset -gU cdpath fpath mailpath path 29 | 30 | # Set the the list of directories that cd searches. 31 | # cdpath=( 32 | # $cdpath 33 | # ) 34 | 35 | # Set the list of directories that Zsh searches for programs. 36 | path=( 37 | /usr/local/{bin,sbin} 38 | $path 39 | ) 40 | 41 | # 42 | # Less 43 | # 44 | 45 | # Set the default Less options. 46 | # Mouse-wheel scrolling has been disabled by -X (disable screen clearing). 47 | # Remove -X and -F (exit if the content fits on one screen) to enable it. 48 | export LESS='-F -g -i -M -R -S -w -X -z-4' 49 | 50 | # Set the Less input preprocessor. 51 | if (( $+commands[lesspipe.sh] )); then 52 | export LESSOPEN='| /usr/bin/env lesspipe.sh %s 2>&-' 53 | fi 54 | 55 | # 56 | # Temporary Files 57 | # 58 | 59 | if [[ ! -d "$TMPDIR" ]]; then 60 | export TMPDIR="/tmp/$USER" 61 | mkdir -p -m 700 "$TMPDIR" 62 | fi 63 | 64 | TMPPREFIX="${TMPDIR%/}/zsh" 65 | if [[ ! -d "$TMPPREFIX" ]]; then 66 | mkdir -p "$TMPPREFIX" 67 | fi 68 | 69 | # 70 | # Environment Variables 71 | # 72 | 73 | export GOPATH=~/go 74 | export PATH=~/bin:$GOPATH/bin:/usr/local/go/bin:$HOME/node_modules/.bin:/opt/local/bin:/usr/local/sbin:/usr/local/bin:$PATH 75 | 76 | 77 | source "$HOME/.cargo/env" 78 | -------------------------------------------------------------------------------- /shell/zsh/files/zshrc: -------------------------------------------------------------------------------- 1 | # If you come from bash you might have to change your $PATH. 2 | # export PATH=$HOME/bin:/usr/local/bin:$PATH 3 | source $HOME/.zshenv 4 | 5 | # Path to your oh-my-zsh installation. 6 | export ZSH="/Users/bjk/.oh-my-zsh" 7 | 8 | # Set name of the theme to load --- if set to "random", it will 9 | # load a random theme each time oh-my-zsh is loaded, in which case, 10 | # to know which specific one was loaded, run: echo $RANDOM_THEME 11 | # See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes 12 | # ZSH_THEME="agnoster" 13 | 14 | # Set list of themes to pick from when loading at random 15 | # Setting this variable when ZSH_THEME=random will cause zsh to load 16 | # a theme from this variable instead of looking in $ZSH/themes/ 17 | # If set to an empty array, this variable will have no effect. 18 | # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) 19 | 20 | # Uncomment the following line to use case-sensitive completion. 21 | # CASE_SENSITIVE="true" 22 | 23 | # Uncomment the following line to use hyphen-insensitive completion. 24 | # Case-sensitive completion must be off. _ and - will be interchangeable. 25 | # HYPHEN_INSENSITIVE="true" 26 | 27 | # Uncomment the following line to disable bi-weekly auto-update checks. 28 | # DISABLE_AUTO_UPDATE="true" 29 | 30 | # Uncomment the following line to automatically update without prompting. 31 | # DISABLE_UPDATE_PROMPT="true" 32 | 33 | # Uncomment the following line to change how often to auto-update (in days). 34 | # export UPDATE_ZSH_DAYS=13 35 | 36 | # Uncomment the following line if pasting URLs and other text is messed up. 37 | # DISABLE_MAGIC_FUNCTIONS="true" 38 | 39 | # Uncomment the following line to disable colors in ls. 40 | # DISABLE_LS_COLORS="true" 41 | 42 | # Uncomment the following line to disable auto-setting terminal title. 43 | # DISABLE_AUTO_TITLE="true" 44 | 45 | # Uncomment the following line to enable command auto-correction. 46 | # ENABLE_CORRECTION="true" 47 | 48 | # Uncomment the following line to display red dots whilst waiting for completion. 49 | # Caution: this setting can cause issues with multiline prompts (zsh 5.7.1 and newer seem to work) 50 | # See https://github.com/ohmyzsh/ohmyzsh/issues/5765 51 | # COMPLETION_WAITING_DOTS="true" 52 | 53 | # Uncomment the following line if you want to disable marking untracked files 54 | # under VCS as dirty. This makes repository status check for large repositories 55 | # much, much faster. 56 | # DISABLE_UNTRACKED_FILES_DIRTY="true" 57 | 58 | # Uncomment the following line if you want to change the command execution time 59 | # stamp shown in the history command output. 60 | # You can set one of the optional three formats: 61 | # "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" 62 | # or set a custom format using the strftime function format specifications, 63 | # see 'man strftime' for details. 64 | # HIST_STAMPS="mm/dd/yyyy" 65 | 66 | # Would you like to use another custom folder than $ZSH/custom? 67 | # ZSH_CUSTOM=/path/to/new-custom-folder 68 | 69 | # vscode plugin needs to know what flavor of vscode is installed 70 | VSCODE=code 71 | 72 | # Which plugins would you like to load? 73 | # Standard plugins can be found in $ZSH/plugins/ 74 | # Custom plugins may be added to $ZSH_CUSTOM/plugins/ 75 | # Example format: plugins=(rails git textmate ruby lighthouse) 76 | # Add wisely, as too many plugins slow down shell startup. 77 | plugins=(brew cargo direnv fd git osx rustup vscode z) 78 | 79 | source $ZSH/oh-my-zsh.sh 80 | 81 | # User configuration 82 | 83 | # export MANPATH="/usr/local/man:$MANPATH" 84 | 85 | # You may need to manually set your language environment 86 | # export LANG=en_US.UTF-8 87 | 88 | # Preferred editor for local and remote sessions 89 | # if [[ -n $SSH_CONNECTION ]]; then 90 | # export EDITOR='vim' 91 | # else 92 | # export EDITOR='mvim' 93 | # fi 94 | 95 | # Compilation flags 96 | # export ARCHFLAGS="-arch x86_64" 97 | 98 | # Set personal aliases, overriding those provided by oh-my-zsh libs, 99 | # plugins, and themes. Aliases can be placed here, though oh-my-zsh 100 | # users are encouraged to define aliases within the ZSH_CUSTOM folder. 101 | # For a full list of active aliases, run `alias`. 102 | # 103 | # Example aliases 104 | # alias zshconfig="mate ~/.zshrc" 105 | # alias ohmyzsh="mate ~/.oh-my-zsh" 106 | 107 | source /opt/homebrew/share/zsh-autosuggestions/zsh-autosuggestions.zsh 108 | source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 109 | 110 | fpath=( ~/.zfunc "${fpath[@]}" ) 111 | 112 | # autoload all the functions in the .zfunc directory 113 | autoload -U $fpath[1]/*(.:t) 114 | 115 | eval "$(starship init zsh)" 116 | 117 | [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh 118 | -------------------------------------------------------------------------------- /shell/zsh/main.yaml: -------------------------------------------------------------------------------- 1 | depends: 2 | - git 3 | 4 | actions: 5 | - action: file.link 6 | from: zshrc 7 | to: "{{ user.home_dir }}/.zshrc" 8 | - action: file.link 9 | from: zprofile 10 | to: "{{ user.home_dir }}/.zprofile" 11 | - action: file.link 12 | from: zshenv 13 | to: "{{ user.home_dir }}/.zshenv" --------------------------------------------------------------------------------