├── .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 |
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 |

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 | 
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"
--------------------------------------------------------------------------------