├── .circleci
└── config.yml
├── .gitignore
├── CNAME
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── docs
├── .DS_Store
├── .nojekyll
├── CNAME
├── README.md
├── _coverpage.md
├── _media
│ ├── cover_preview.png
│ ├── cover_preview_lrg.png
│ ├── favicon.ico
│ ├── preview.png
│ └── zsh-autocompletion-suggestion.gif
├── css
│ └── theme-custom.css
├── index.html
└── keybindings.md
├── noobs-term-uninstall.sh
└── noobs-term.sh
/.circleci/config.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | jobs:
3 | test:
4 | docker:
5 | - image: ubuntu:14.04
6 | environment:
7 | TERM: dumb
8 | steps:
9 | - checkout
10 | - run: |
11 | apt-get -qq update
12 | apt-get install -y software-properties-common
13 | apt-get install -y sudo
14 | apt-get -y install git
15 | git clone --single-branch --branch develop https://github.com/aaronkjones/noobs-term.git
16 | cd noobs-term
17 | chmod +x noobs-term.sh
18 | sh noobs-term.sh
19 | workflows:
20 | version: 2
21 | test:
22 | jobs:
23 | - test
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | package-lock.json
4 |
--------------------------------------------------------------------------------
/CNAME:
--------------------------------------------------------------------------------
1 | noobs-term.com
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | To contribute to this project, please follow the below steps:
4 |
5 | - Create an issue and discuss proposed changes
6 | - Fork repo and create a branch from master
7 | - Update the documentation if required
8 | - Submit a pull request
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2018 Aaron Jones
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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Noobs Term
2 |
3 | [](https://www.codacy.com/app/aaronkjones/noobs-term?utm_source=github.com&utm_medium=referral&utm_content=aaronkjones/noobs-term&utm_campaign=Badge_Grade)
4 | [](https://github.com/aaronkjones/noobs-term/blob/master/LICENSE)
5 | [](https://circleci.com/gh/aaronkjones/noobs-term/)
6 | [](https://twitter.com/intent/tweet?url=http://noobs-term.com&text=A%20terminal%20bundle%20for%20everyone&hashtags=tmux,zsh,command-line)
7 |
8 | ## Overview
9 |
10 | Noobs Term is an installer that incorporates some of the wonderful terminal programs, packages, and configurations that are commonly installed together.
11 |
12 | - [Homepage](https://noobs-term.com) - Documentation
13 |
14 | ## Contributing
15 |
16 | - See [CONTRIBUTING](CONTRIBUTING.md) for steps on how you can contribute to this project.
17 |
18 | ## License
19 |
20 | - This project is licensed under the MIT license type. See [LICENSE](LICENSE) for details
21 |
--------------------------------------------------------------------------------
/docs/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronkjones/noobs-term/6800666bb10aa511f71ecaace158334be41ab756/docs/.DS_Store
--------------------------------------------------------------------------------
/docs/.nojekyll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronkjones/noobs-term/6800666bb10aa511f71ecaace158334be41ab756/docs/.nojekyll
--------------------------------------------------------------------------------
/docs/CNAME:
--------------------------------------------------------------------------------
1 | noobs-term.com
--------------------------------------------------------------------------------
/docs/README.md:
--------------------------------------------------------------------------------
1 | # Noobs Term
2 |
3 | [](https://www.codacy.com/app/aaronkjones/noobs-term?utm_source=github.com&utm_medium=referral&utm_content=aaronkjones/noobs-term&utm_campaign=Badge_Grade)
4 | [](https://github.com/aaronkjones/noobs-term/blob/master/LICENSE)
5 | [](https://circleci.com/gh/aaronkjones/noobs-term/)
6 | [](https://twitter.com/intent/tweet?url=http://noobs-term.com&text=A%20terminal%20bundle%20for%20everyone&hashtags=tmux,zsh,command-line)
7 |
8 | ## Overview
9 |
10 | 
11 | Noobs Term is an installer that incorporates some of the wonderful terminal programs, packages, and configurations that are commonly installed together.
12 |
13 | ## What's Included
14 |
15 | | Feature | Description |
16 | | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
17 | | [zsh](https://en.wikipedia.org/wiki/Z_shell) | a popular shell with features like completion, path correction, spelling correction, and more |
18 | | [tmux](https://github.com/tmux/tmux) | terminal multiplexer allows you to manage multiple terminal sessions from a single window |
19 | | [neovim](https://neovim.io/) | a project that seeks to aggressively refactor Vim |
20 | | [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) | a framework for managing your zsh configuration |
21 | | [vim-sensible](https://github.com/tpope/vim-sensible) | vim settings everyone can agree on |
22 | | [tmux-sensible](https://github.com/tmux-plugins/tmux-sensible) | tmux settings everyone can agree on |
23 | | [nord-tmux](https://github.com/arcticicestudio/nord-tmux) | An arctic, north-bluish clean and elegant tmux color theme |
24 | | [nord-vim](https://github.com/arcticicestudio/nord-vim) | An arctic, north-bluish clean and elegant Vim color theme |
25 | | [spaceship-prompt](https://github.com/denysdovhan/spaceship-prompt) | A zsh prompt for Astronauts |
26 |
27 | ## Showcase
28 |
29 | ### Completions
30 |
31 | Completion scripts for [many](https://github.com/zsh-users/zsh-completions/tree/master/src) programs.
32 |
33 | 
34 |
35 | ### Auto-suggestions
36 |
37 | Auto-suggestions based on command history
38 |
39 | 
40 |
41 | ### Command validation
42 |
43 | Real-time command validation
44 |
45 | 
46 |
47 | ### Directory history
48 |
49 | Quick directory switching based on command history
50 |
51 | 
52 |
53 | ### Git feedback
54 |
55 | Real-time Git feedback
56 |
57 | 
58 |
59 | ### Terminal multiplexing
60 |
61 | Tmux terminal multiplexing. Split windows horizontally and vertically.
62 |
63 | 
64 |
65 | ### Window tabbing
66 |
67 | Create many terminal sessions in a single window
68 |
69 | 
70 |
71 | ### Nord theming
72 |
73 | Beautiful arctic bluish Nord theming for tmux, iTerm, Gnome terminal, and neovim.
74 |
75 | 
76 |
77 | ### Persistence
78 |
79 | Session persistence across connection drops, reboots, and accidental closing.
80 |
81 | 
82 |
83 | ## Demo
84 |
85 | If you want to "try before you buy" you can use Vagrant to spin up a VM.
86 |
87 | 1. Install Virtualbox
88 | [Virtualbox Downloads](https://www.virtualbox.org/wiki/Downloads)
89 | 2. Install Vagrant
90 | [Vagrant Downloads](https://www.vagrantup.com/downloads.html)
91 | 3. Initialize a Vagrantfile for Ubuntu 18.04
92 | `vagrant init peru/ubuntu-18.04-desktop-amd64 --box-version 20180801.01`
93 | 4. Start Your Ubuntu VM
94 | `vagrant up`
95 |
96 | In Virtualbox, click the "Show" button. You can now run the install command below in a destructible environment.
97 |
98 | ## Supported Platforms
99 |
100 | Currently, the following platforms are confirmed to be supported
101 |
102 | - Ubuntu
103 | - Debian
104 | - macOS
105 | - Arch Linux
106 | - Windows
107 | - Raspbian
108 |
109 | ## Install
110 |
111 | The installer will:
112 |
113 | - Backup existing dotfiles
114 | - Install dependencies git, curl, wget
115 | - Install programs zsh, tmux, neovim
116 | - Install dotfiles to `~/.dotfiles` and symbolically link them to their default locations
117 | - Set default shell to zsh
118 | - Load neovim plugins
119 | - Install plugins and themes
120 |
121 | To install, run the following commands in your terminal:
122 |
123 | ```bash
124 | git clone https://github.com/aaronkjones/noobs-term.git
125 | cd noobs-term
126 | chmod +x noobs-term.sh
127 | sh noobs-term.sh
128 | ```
129 |
130 | Single command install:
131 |
132 | `sh -c "$(wget -q https://raw.githubusercontent.com/aaronkjones/noobs-term/master/noobs-term.sh -O -)"`
133 | or
134 | `sh -c "$(curl -fsSL https://raw.githubusercontent.com/aaronkjones/noobs-term/master/noobs-term.sh)"`
135 |
136 | ## Setup
137 |
138 | > Note: You will have to log out and back in for zsh to be set as the default shell. If you don't want to log out, enter _zsh_.
139 |
140 | ### Ubuntu
141 |
142 | 1. Press Ctrl + a, then I to load tmux plugins
143 | 2. In Gnome terminal preferences, set Nord as your default profile
144 | 3. Set an appropriate font (e.g. Inconsolata for Powerline)
145 |
146 | ### OSX
147 |
148 | 1. Press Ctrl + a, then I to load tmux plugins
149 | 2. In iTerm, set your color profile to Nord
150 | 3. Set an appropriate font (e.g. Inconsolata for Powerline)
151 |
152 | ### Arch
153 |
154 | 1. Press Ctrl + a, then I to load tmux plugins
155 | 2. In Gnome terminal preferences, set Nord as your default profile
156 | 3. Set an appropriate font (e.g. Inconsolata for Powerline)
157 |
158 | ### Windows
159 |
160 | 1. Enable WSL
161 |
162 | **In Powershell (as Admin)**:
163 | `Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux`
164 |
165 | 2. Install Ubuntu 18.04
166 |
167 | From the Windows Store, search for Ubuntu 18.04
168 |
169 | 3. Install [Scoop](https://scoop.sh/)
170 |
171 | `iex (new-object net.webclient).downloadstring('https://get.scoop.sh')`
172 |
173 | > Note: if you get an error you might need to change the execution policy (i.e. enable Powershell) with Set-ExecutionPolicy RemoteSigned -scope CurrentUser
174 |
175 | 4. Add [Scoop Extras](https://github.com/lukesampson/scoop-extras)
176 |
177 | `scoop bucket add extras`
178 |
179 | 5. Install Hyper
180 |
181 | `scoop install hyper`
182 |
183 | 6. Install Font
184 |
185 | Download Inconsolata (or your preferred font), open, and click "Install"
186 | `https://github.com/powerline/fonts/raw/master/Inconsolata/Inconsolata%20for%20Powerline.otf`
187 |
188 | > To install all Powerline fonts, clone the repo `https://github.com/powerline/fonts.git` and run install.ps1
189 |
190 | 7. Set shell to wsl.exe
191 |
192 | **In Hyper**:
193 | `chsh -s $(which zsh)`
194 | In preferences (Ctrl + ,), find and change shell and font settings to:
195 |
196 | ```powershell
197 | shell: 'C:\\Windows\\System32\\wsl.exe',
198 | shellArgs: [],
199 | fontFamily: 'Inconsolata for Powerline',
200 | ```
201 |
202 | > If you want, you can add the font to the beginning to retain fallback fonts (e.g. fontFamily: 'Inconsolata for Powerline','monospace',...)
203 |
204 | 8. Install Nord-Hyper
205 | In Powershell (as Admin):
206 | `hyper i nord-hyper`
207 |
208 | 9. [Install](#install) Noobs Term
209 |
210 | ## Uninstall
211 |
212 | The uninstaller allows you to remove installed dotfiles, restore backed up dotfiles, and selectively remove installed plugins.
213 |
214 | To uninstall, run this command in your terminal:
215 |
216 | ```bash
217 | git clone https://github.com/aaronkjones/noobs-term.git
218 | cd noobs-term
219 | chmod +x noobs-term-uninstall.sh)"
220 | sh noobs-term-uninstall.sh
221 | ```
222 |
223 | Single command uninstall:
224 |
225 | `sh -c "$(wget -q https://raw.githubusercontent.com/aaronkjones/noobs-term/master/noobs-term-uninstall.sh -O -)"`
226 | or
227 | `sh -c "$(curl -fsSL https://raw.githubusercontent.com/aaronkjones/noobs-term/master/noobs-term-uninstall.sh)"`
228 |
229 | ## Key bindings
230 |
231 | See [Keybindings.md](Keybindings.md)
232 |
233 | ## Resources
234 |
235 | - [Awesome Tmux](https://github.com/rothgar/awesome-tmux)
236 | - [Awesome Vim](https://github.com/akrawchyk/awesome-vim)
237 | - [VimAwesome](https://vimawesome.com)
238 | - [Awesome Zsh](https://github.com/unixorn/awesome-zsh-plugins)
239 |
240 | ## Contributing
241 |
242 | Please read [CONTRIBUTING.md](https://github.com/aaronkjones/noobs-term/blob/master/CONTRIBUTING.md).
243 |
--------------------------------------------------------------------------------
/docs/_coverpage.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | # Noobs Term
4 |
5 | > A terminal bundle for ~~noobs~~ everyone.
6 |
7 | [Main](#main)
8 | [Showcase](#Showcase)
9 | [Install](#Install)
10 | [Code](https://github.com/aaronkjones/noobs-term)
--------------------------------------------------------------------------------
/docs/_media/cover_preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronkjones/noobs-term/6800666bb10aa511f71ecaace158334be41ab756/docs/_media/cover_preview.png
--------------------------------------------------------------------------------
/docs/_media/cover_preview_lrg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronkjones/noobs-term/6800666bb10aa511f71ecaace158334be41ab756/docs/_media/cover_preview_lrg.png
--------------------------------------------------------------------------------
/docs/_media/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronkjones/noobs-term/6800666bb10aa511f71ecaace158334be41ab756/docs/_media/favicon.ico
--------------------------------------------------------------------------------
/docs/_media/preview.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronkjones/noobs-term/6800666bb10aa511f71ecaace158334be41ab756/docs/_media/preview.png
--------------------------------------------------------------------------------
/docs/_media/zsh-autocompletion-suggestion.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/aaronkjones/noobs-term/6800666bb10aa511f71ecaace158334be41ab756/docs/_media/zsh-autocompletion-suggestion.gif
--------------------------------------------------------------------------------
/docs/css/theme-custom.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --theme-color: #4A5467;
3 | --base-font-size: 14px;
4 | --base-background-color: #fff;
5 | --cover-background-color: #D8DEE9;
6 | --cover-heading-color: #4A5467;
7 | --cover-button-color--hover: #5E81AC;
8 | --cover-button-text-decoration: bold;
9 | --cover-button-border-radius: 0;
10 | --cover-button-border: 0;
11 | }
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Noobs Term
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/docs/keybindings.md:
--------------------------------------------------------------------------------
1 | # Key bindings
2 |
3 | The following key bindings are what you would press after first sending the prefix.
4 |
5 | For example, to enter copy mode press: Ctrl + a [
6 |
7 | Key bindings can be displayed in Tmux with: Ctrl + a ?
8 |
9 | ## Prefix
10 |
11 | | | |
12 | | ------------------------------ | ----------- |
13 | | Ctrl + a | send prefix |
14 |
15 | ## Main
16 |
17 | | | |
18 | | ------------------------------ | --------------------- |
19 | | Ctrl + z | suspend client |
20 | | ! | break pane |
21 | | \$ | rename session |
22 | | : | command prompt |
23 | | ? | list keys |
24 | | D | choose client |
25 | | L | switch client |
26 | | [ | copy mode |
27 | | d | detach client |
28 | | i | display message |
29 | | r | refresh client |
30 | | s | choose tree (session) |
31 | | t | clock mode |
32 | | w | choose tree (window) |
33 | | ~ | show messages |
34 | | PPage | copy mode |
35 |
36 | ## Layout
37 |
38 | | | |
39 | | ------------------------------ | ----------------------------- |
40 | | Space | next layout |
41 | | E | select layout |
42 | | Meta + 1 | select layout even horizontal |
43 | | Meta + 2 | select layout even vertical |
44 | | Meta + 3 | select layout main horizontal |
45 | | Meta + 4 | select layout main vertical |
46 | | Meta + 5 | select layout tiled |
47 |
48 | ## Window
49 |
50 | | | |
51 | | ------------------------------ | ----------------------- |
52 | | & | kill window |
53 | | ' | index select window |
54 | | % | split window horizontal |
55 | | Ctrl + o | rotate window |
56 | | , | rename window |
57 | | . | move window |
58 | | f | find window |
59 | | Ctrl | new window |
60 | | l | last window |
61 | | n | next window |
62 | | Meta + n | next window |
63 | | Meta + o | rotate window |
64 | | Meta + p | previous window |
65 | | p | previous window |
66 | | 0 | select window 0 |
67 | | 1 | select window 1 |
68 | | 2 | select window 2 |
69 | | 3 | select window 3 |
70 | | 4 | select window 4 |
71 | | 5 | select window 5 |
72 | | 6 | select window 6 |
73 | | 7 | select window 7 |
74 | | 8 | select window 8 |
75 | | 9 | select window 9 |
76 |
77 | ## Buffer
78 |
79 | | | |
80 | | ------------ | ------------- |
81 | | - | delete buffer |
82 | | # | list buffers |
83 | | = | choose buffer |
84 | | ] | paste buffer |
85 |
86 | ## Plugins
87 |
88 | | | |
89 | | ------------------------------ | --------------- |
90 | | I | install plugins |
91 | | U | update plugins |
92 | | Meta + u | clean plugins |
93 |
94 | ## Pane
95 |
96 | | | |
97 | | ---------------------------------- | ----------------- |
98 | | ; | last pane |
99 | | o | next pane |
100 | | M | select pane |
101 | | m | mark pane |
102 | | q | display panes |
103 | | x | kill pane |
104 | | z | resize pane |
105 | | { | swap pane |
106 | | } | swap pane |
107 | | Up | select pane up |
108 | | Down | select pane down |
109 | | Left | select pane left |
110 | | Right | select pane right |
111 | | Meta + Up | resize pane up |
112 | | Meta + Down | resize pane down |
113 | | Meta + Left | resize pane left |
114 | | Meta + Right | resize pane right |
115 | | Ctrl + Up | resize pane up |
116 | | Ctrl + Down | resize pane down |
117 | | Ctrl + Left | resize pane left |
118 | | Ctrl + Right | resize pane right |
119 |
120 | ## Copy-mode
121 |
122 | | | |
123 | | ---------------------------------- | ------------------------- |
124 | | Ctrl + Space | begin selection |
125 | | Ctrl + a | start of line |
126 | | Ctrl + b | cursor left |
127 | | Ctrl + c | cancel |
128 | | Ctrl + e | end of line |
129 | | Ctrl + f | cursor right |
130 | | Ctrl + g | clear selection |
131 | | Ctrl + k | copy end of line |
132 | | Ctrl + n | cursor down |
133 | | Ctrl + p | cursor up |
134 | | Ctrl + r | search backward |
135 | | Ctrl + s | search forward |
136 | | Ctrl + v | page down |
137 | | Ctrl + w | copy selection and cancel |
138 | | Escape | cancel |
139 | | Space | page down |
140 | | , | jump reverse |
141 | | ; | jump again |
142 | | F | jump backward |
143 | | N | search reverse |
144 | | R | rectangle toggle |
145 | | T | jump to backward |
146 | | f | jump forward |
147 | | g | goto line |
148 | | n | search again |
149 | | q | cancel |
150 | | t | jump to forward |
151 | | Home | start of line |
152 | | End | end of line |
153 | | NPage | page down |
154 | | PPage | page up |
155 | | Up | cursor up |
156 | | Down | cursor down |
157 | | Left | cursor left |
158 | | Right | cursor right |
159 | | Meta + < | history top |
160 | | Meta + > | history bottom |
161 | | Meta + R | top line |
162 | | Meta + b | previous word |
163 | | Meta + f | next word end |
164 | | Meta + Meta | back to indentation |
165 | | Meta + r | middle line |
166 | | Meta + v | page up |
167 | | Meta + w | copy selection and cancel |
168 | | Meta + { | previous paragraph |
169 | | Meta + } | next paragraph |
170 | | Meta + Up | halfpage up |
171 | | Meta + Down | halfpage down |
172 | | Ctrl + Up | scroll up |
173 | | Ctrl + Down | scroll down |
174 |
175 | ## Copy-mode Vi
176 |
177 | | | |
178 | | --------------------------------- | --------------------------- |
179 | | Ctrl + b | page up |
180 | | Ctrl + c | cancel |
181 | | Ctrl + d | halfpage down |
182 | | Ctrl + e | scroll down |
183 | | Ctrl + f | page down |
184 | | Ctrl + h | cursor left |
185 | | Ctrl + j | copy selection and cancel |
186 | | Enter | copy selection and cancel |
187 | | Ctrl + u | halfpage up |
188 | | Ctrl + v | rectangle toggle |
189 | | Ctrl + y | scroll up |
190 | | Escape | clear selection |
191 | | Space | begin selection |
192 | | / | search down |
193 | | 0 | start of line |
194 | | : | goto line |
195 | | ; | jump again |
196 | | ? | search up |
197 | | A | append selection and cancel |
198 | | B | previous space |
199 | | D | copy end of line |
200 | | E | next space end |
201 | | F | jump backward |
202 | | G | history bottom |
203 | | H | top line |
204 | | J | scroll down |
205 | | K | scroll up |
206 | | L | bottom line |
207 | | Meta | middle line |
208 | | N | search reverse |
209 | | T | jump to backward |
210 | | V | select line |
211 | | W | next space |
212 | | ^ | back to indentation |
213 | | b | previous-word |
214 | | e | next word end |
215 | | f | jump forward |
216 | | g | history top |
217 | | h | cursor left |
218 | | j | cursor down |
219 | | k | cursor up |
220 | | l | cursor right |
221 | | n | search again |
222 | | o | other end |
223 | | q | cancel |
224 | | t | jump to forward |
225 | | v | rectangle toggle |
226 | | w | next word |
227 | | { | previous paragraph |
228 | | } | next paragraph |
229 | | BSpace | cursor left |
230 | | NPage | page down |
231 | | PPage | page up |
232 | | Up | cursor up |
233 | | Down | cursor down |
234 | | Left | cursor left |
235 | | Right | cursor right |
236 | | Ctrl + Up | scroll up |
237 | | Ctrl + Down | scroll down |
238 |
--------------------------------------------------------------------------------
/noobs-term-uninstall.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -e
4 |
5 | # dotfiles
6 | dotfiles=".tmux.conf \
7 | .zshrc \
8 | .tmux \
9 | .zsh \
10 | .oh-my-zsh \
11 | "
12 |
13 | # package dependencies
14 | dependencies="git \
15 | curl \
16 | wget \
17 | zsh \
18 | tmux \
19 | neovim \
20 | "
21 |
22 | dotfiles_dir="$HOME/.dotfiles" # dotfiles directory
23 | nvim_config="$HOME/.config/nvim/init.vim" # neovim config location
24 | platform="unknown" # default to unknown platform
25 |
26 | # restore backups
27 | restore_backups() {
28 | echo "Restoring old dotfiles..."
29 | for d in $dotfiles; do
30 | mv "$HOME/$d.backup" "$HOME/$d"
31 | done
32 | mv "$dotfiles_dir.backup" "$dotfiles_dir"
33 | mv "$HOME/.config/nvim/init.vim.backup" "$nvim_config"
34 | echo "Done"
35 | }
36 |
37 | # remove dotfiles
38 | remove_dotfiles() {
39 | echo "Removing dotfiles..."
40 | for d in $dotfiles; do
41 | rm -rf "${HOME:?}"/"$d"
42 | done
43 | rm -rf "$dotfiles_dir"
44 | rm -f "$nvim_config"
45 | echo "Done"
46 | }
47 |
48 | # remove dotfiles
49 | remove_backups() {
50 | echo "Removing dotfile backups..."
51 | for d in $dotfiles; do
52 | rm -rf "${HOME:?}"/"$d.backup"
53 | done
54 | rm -rf "$dotfiles_dir.backup"
55 | rm -f "$nvim_config.backup"
56 | echo "Done"
57 | }
58 |
59 | # find current platform and distribution
60 | if [ "$(uname)" = 'Linux' ]; then
61 | platform='Linux'
62 | if type lsb_release >/dev/null 2>&1; then
63 | distro="$(lsb_release -si)"
64 | distro_ver="$(lsb_release -r -s)"
65 | elif [ -f "/etc/arch-release" ]; then
66 | distro='Arch'
67 | fi
68 | elif [ "$(uname)" = 'Darwin' ]; then
69 | platform='Mac'
70 | fi
71 | echo
72 |
73 | # remove dotfiles
74 | echo "Delete installed dotfiles? [y]es [n]o "
75 | read -r answer
76 | if [ "$answer" != "${answer#[Yy]}" ]; then
77 | remove_dotfiles
78 | elif [ "$answer" != "${answer#[Nn]}" ]; then
79 | echo "Keeping dotfiles $dotfiles"
80 | else
81 | echo "Invalid input"
82 | fi
83 | echo
84 |
85 | # restore backups
86 | echo "Restore backups? [y]es [n]o [r]emove"
87 | read -r answer
88 | if [ "$answer" != "${answer#[Yy]}" ]; then
89 | restore_backups
90 | elif [ "$answer" != "${answer#[Nn]}" ]; then
91 | echo "Leaving backups in place"
92 | elif [ "$answer" != "${answer#[Rr]}" ]; then
93 | remove_backups
94 | else
95 | echo "Invalid input"
96 | fi
97 | echo
98 |
99 | # remove neovim repo
100 | if [ "$distro" = 'Ubuntu' ]; then
101 | if [ "$distro_ver" = "16.04" ] || [ "$distro_ver" = "18.04" ]; then
102 | echo "Remove Neovim Repository? [y]es [n]o"
103 | read -r answer
104 | if [ "$answer" != "${answer#[Yy]}" ]; then
105 | /usr/bin/sudo apt-add-repository --remove ppa:neovim-ppa/stable -y 1>/dev/null
106 | elif [ "$answer" != "${answer#[Nn]}" ]; then
107 | echo "Keeping Neovim Repo"
108 | fi
109 | else
110 | echo "Remove Neovim Repository? [y]es [n]o"
111 | read -r answer
112 | if [ "$answer" != "${answer#[Yy]}" ]; then
113 | /usr/bin/sudo apt-add-repository --remove ppa:neovim-ppa/unstable -y 1>/dev/null
114 | elif [ "$answer" != "${answer#[Nn]}" ]; then
115 | echo "Keeping Neovim Repo"
116 | else
117 | echo "Invalid input"
118 | fi
119 | fi
120 | fi
121 | echo
122 |
123 | # uninstall dependencies
124 | # ubuntu
125 | echo "Dependencies installed: $dependencies"
126 | if [ "$platform" = 'Linux' ]; then
127 | if [ "$distro" = 'Ubuntu' ]; then
128 | for p in $dependencies; do
129 | echo "Remove package $p? [y]es [n]o [a]ll"
130 | read -r answer
131 | if [ "$answer" != "${answer#[Yy]}" ]; then
132 | /usr/bin/sudo apt-get -qq remove -y "$p"
133 | elif [ "$answer" != "${answer#[Nn]}" ]; then
134 | echo "Keeping $p"
135 | elif [ "$answer" != "${answer#[Aa]}" ]; then
136 | for d in $dependencies; do
137 | /usr/bin/sudo apt-get -qq remove -y "$d"
138 | done
139 | fi
140 | done
141 | # arch
142 | elif [ "$distro" = 'Arch' ]; then
143 | for p in $dependencies; do
144 | echo "Remove package $p? [y]es [n]o [A]ll"
145 | read -r answer
146 | if [ "$answer" != "${answer#[Yy]}" ]; then
147 | /usr/bin/sudo pacman -q -Rs --noconfirm "$p" 1>/dev/null
148 | elif [ "$answer" != "${answer#[Nn]}" ]; then
149 | echo "Keeping $p"
150 | elif [ "$answer" != "${answer#[Aa]}" ]; then
151 | for d in $dependencies; do
152 | /usr/bin/sudo pacman -q -Rs --noconfirm "$d" 1>/dev/null
153 | done
154 | fi
155 | done
156 | fi
157 | # mac
158 | elif [ $platform = 'Mac' ]; then
159 | for p in $dependencies; do
160 | echo "Remove package? [y]es [n]o [A]ll"
161 | read -r answer
162 | if [ "$answer" != "${answer#[Yy]}" ]; then
163 | brew uninstall "$p" 1>/dev/null
164 | elif [ "$answer" != "${answer#[Nn]}" ]; then
165 | echo "Keeping $p"
166 | elif [ "$answer" != "${answer#[Aa]}" ]; then
167 | for d in $dependencies; do
168 | brew remove --force "$d"
169 | done
170 | break
171 | fi
172 | done
173 | fi
174 | echo
175 |
176 | # reset shell
177 | echo "Unset Zsh as default shell? [y]es [n]o"
178 | read -r answer
179 | if [ "$answer" != "${answer#[Yy]}" ]; then
180 | echo "Setting default shell to Bash"
181 | chsh -s "$(which bash)"
182 | elif [ "$answer" != "${answer#[Nn]}" ]; then
183 | echo "Keeping Zsh as default shell"
184 | else
185 | echo "Invalid input"
186 | fi
187 | echo
188 |
189 | # zsh plugins
190 | echo "Remove Zsh plugins? [y]es [n]o"
191 | read -r answer
192 | if [ "$answer" != "${answer#[Yy]}" ]; then
193 | rm -rf "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions"
194 | rm -rf "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting"
195 | rm -rf "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-history-substring-search"
196 | rm -rf "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-completions"
197 | elif [ "$answer" != "${answer#[Nn]}" ]; then
198 | echo "Keeping Zsh plugins"
199 | else
200 | echo "Invalid input"
201 | fi
202 | echo
203 |
204 | # tmux package manager
205 | echo "Remove Tmux package manager? [y]es [n]o"
206 | read -r answer
207 | if [ "$answer" != "${answer#[Yy]}" ]; then
208 | rm -rf "$HOME/.tmux/plugins/tpm"
209 | elif [ "$answer" != "${answer#[Nn]}" ]; then
210 | echo "Keeping Tmux package manager"
211 | else
212 | echo "Invalid input"
213 | fi
214 | echo
215 |
216 | # vim-plug plugin manager
217 | echo "Remove Vim-plug plugin manager? [y]es [n]o"
218 | read -r answer
219 | if [ "$answer" != "${answer#[Yy]}" ]; then
220 | rm -f "$HOME/.local/share/nvim/site/autoload/plug.vim"
221 | elif [ "$answer" != "${answer#[Nn]}" ]; then
222 | echo "Keeping Vim-plug plugin manager"
223 | else
224 | echo "Invalid input"
225 | fi
226 | echo
227 |
228 | if [ -x "$(command -v nvim)" ]; then
229 | # reload nvim plugins
230 | echo "Reloading Neovim plugins..."
231 | nvim +PlugInstall +qa || echo "Something went wrong reloading plugins or Neovim was removed. Check init.vim for errors and try again."
232 | echo "Done"
233 | echo
234 | fi
235 |
236 | # remove spaceship-prompt for zsh
237 | echo "Remove Spaceship-prompt for Zsh? [y]es [n]o"
238 | read -r answer
239 | if [ "$answer" != "${answer#[Yy]}" ]; then
240 | rm -f "$HOME/.oh-my-zsh/themes/spaceship-prompt"
241 | rm -f "$HOME/.oh-my-zsh/themes/spaceship.zsh-theme"
242 | elif [ "$answer" != "${answer#[Nn]}" ]; then
243 | echo "Keeping Spaceship-prompt theme"
244 | fi
245 | echo
246 |
247 | echo "Uninstall complete"
248 |
--------------------------------------------------------------------------------
/noobs-term.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | # colors
5 | if which tput >/dev/null 2>&1; then
6 | ncolors=$(tput colors)
7 | fi
8 | if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then
9 | BLUE="$(tput setaf 4)"
10 | PURP="$(tput setaf 5)"
11 | NORMAL="$(tput sgr0)"
12 | else
13 | BLUE=""
14 | PURP=""
15 | NORMAL=""
16 | fi
17 |
18 | # dotfiles
19 | dotfiles=".tmux.conf \
20 | .zshrc \
21 | .tmux \
22 | .zsh \
23 | .oh-my-zsh \
24 | "
25 |
26 | # package dependencies
27 | dependencies="git \
28 | curl \
29 | wget \
30 | zsh \
31 | tmux \
32 | neovim \
33 | "
34 |
35 | dotfiles_dir="$HOME/.dotfiles" # dotfiles directory
36 | dotfiles_repo="https://github.com/aaronkjones/noobs-term-dotfiles.git" # dotfiles repo
37 | nvim_config="$HOME/.config/nvim/init.vim" # neovim config location
38 | platform="unknown" # default to unknown platform
39 |
40 | # make git be quiet
41 | quiet_git() {
42 | stdout=$(mktemp)
43 | stderr=$(mktemp)
44 |
45 | if ! git "$@" "$stdout" 2>"$stderr"; then
46 | cat "$stderr" >&2
47 | rm -f "$stdout" "$stderr"
48 | exit 1
49 | fi
50 |
51 | rm -f "$stdout" "$stderr"
52 | }
53 | printf "${PURP}"
54 | # backup dotfiles
55 | backup_dotfiles() {
56 | echo "Backing up old dotfiles..."
57 | for d in $dotfiles; do
58 | cp -rf "$HOME/$d" "$HOME/$d.backup" 2>/dev/null || :
59 | done
60 | cp -rf "$dotfiles_dir" "$dotfiles_dir.backup" 2>/dev/null || :
61 | cp -f "$nvim_config" "$HOME/.config/nvim/init.vim.backup" 2>/dev/null || :
62 | cp -rf "$HOME/.oh-my-zsh" "$HOME/.oh-my-zsh.backup" 2>/dev/null || :
63 | echo "Done"
64 | }
65 |
66 | # remove dotfiles
67 | remove_old_dotfiles() {
68 | echo "Removing old dotfiles..."
69 | for d in $dotfiles; do
70 | rm -rf "${HOME:?}"/"$d"
71 | done
72 | rm -rf "$dotfiles_dir"
73 | rm -f "$nvim_config"
74 | rm -rf "$HOME/.oh-my-zsh"
75 | echo "Done"
76 | }
77 |
78 | # install dotfiles
79 | install_dotfiles() {
80 | echo "Installing dotfiles into $dotfiles_dir..."
81 | quiet_git clone "$dotfiles_repo" "$dotfiles_dir"
82 | echo "Symbollically linking dotfiles to home directory (e.g. ln -s $dotfiles_dir/.zshrc $HOME/.zshrc)"
83 | find "$dotfiles_dir" -type f -name ".*" -exec ln -sf {} "$HOME" \; >/dev/null 2>&1
84 | if [ ! -d "$HOME/.config/nvim" ]; then
85 | mkdir -p "$HOME/.config/nvim"
86 | fi
87 | ln -s "$dotfiles_dir/init.vim" "$nvim_config"
88 | }
89 |
90 | # backup and remove dotfiles
91 | if [ -d "$dotfiles_dir" ]; then
92 | echo "Old dotfiles exist"
93 | echo
94 | backup_dotfiles
95 | echo
96 | remove_old_dotfiles
97 | echo
98 | fi
99 | # find current platform and distribution
100 | if [ "$(uname)" = 'Linux' ]; then
101 | platform='Linux'
102 | if type lsb_release >/dev/null 2>&1; then
103 | distro="$(lsb_release -si)"
104 | distro_ver="$(lsb_release -r -s)"
105 | elif [ -f "/etc/arch-release" ]; then
106 | distro='Arch'
107 | elif [ -f "/etc/centos-release" ]; then
108 | distro='CentOS'
109 | distro_ver="$(cat /etc/centos-release | tr -dc '0-9.' | cut -d \. -f1).$(cat /etc/centos-release | tr -dc '0-9.' | cut -d \. -f2)"
110 | fi
111 | elif [ "$(uname)" = 'Darwin' ]; then
112 | platform='Mac'
113 | fi
114 | echo "Current platform: $platform"
115 | if [ "$platform" = 'Linux' ]; then
116 | echo "Current distribution version: $distro_ver"
117 | echo "Current distribution: $distro"
118 | fi
119 | echo
120 | # add neovim repo
121 | if [ "$distro" = 'Ubuntu' ]; then
122 | if ! command -v nvim; then
123 | echo "Adding Neovim Repository..."
124 | if [ "$distro_ver" = "16.04" ] || [ "$distro_ver" = "18.04" ]; then
125 | /usr/bin/sudo apt-add-repository ppa:neovim-ppa/stable -y 1>/dev/null
126 | else
127 | /usr/bin/sudo apt-add-repository ppa:neovim-ppa/unstable -y 1>/dev/null
128 | echo "Done"
129 | fi
130 | fi
131 | elif [ "$distro" = 'CentOS' ]; then
132 | /usr/bin/sudo yum -y -q install epel-release
133 | /usr/bin/sudo curl -o /etc/yum.repos.d/dperson-neovim-epel-7.repo https://copr.fedorainfracloud.org/coprs/dperson/neovim/repo/epel-7/dperson-neovim-epel-7.repo
134 | /usr/bin/sudo yum -y -q install neovim --enablerepo=epel
135 | fi
136 |
137 | echo
138 | # install dependencies
139 | # linux
140 | echo "Installing dependencies..."
141 | if [ "$platform" = 'Linux' ]; then
142 | if [ "$distro" = 'Ubuntu' ] || [ "$distro" = 'Raspbian' ]; then
143 | /usr/bin/sudo apt-get -qq update
144 | for p in $dependencies; do
145 | /usr/bin/sudo apt-get -qq install -y "$p"
146 | done
147 | elif [ "$distro" = 'Arch' ]; then
148 | for p in $dependencies; do
149 | /usr/bin/sudo pacman -q -S --noconfirm "$p" 1>/dev/null
150 | done
151 | elif [ "$distro" = 'CentOS' ]; then
152 | for p in $dependencies; do
153 | /usr/bin/sudo yum -y -q install "$p"
154 | done
155 | /usr/bin/sudo yum -y -q install gcc kernel-devel make ncurses-devel
156 | curl -s -OL https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz > /dev/null && \
157 | tar -xzf libevent-2.1.11-stable.tar.gz && \
158 | cd libevent-2.1.11-stable && \
159 | ./configure --prefix=/usr/local > /dev/null && \
160 | make > /dev/null 2>&1 && \
161 | sudo make install > /dev/null && \
162 | (cd .. || exit) && \
163 | curl -s -OL https://github.com/tmux/tmux/releases/download/2.9a/tmux-2.9a.tar.gz > /dev/null && \
164 | tar -xzf tmux-2.9a.tar.gz && \
165 | cd tmux-2.9a && \
166 | LDFLAGS="-L/usr/local/lib -Wl,-rpath=/usr/local/lib" ./configure --prefix=/usr/local > /dev/null && \
167 | make > /dev/null 2>&1 && \
168 | sudo make install > /dev/null 2>&1 && \
169 | (cd .. || exit) && \
170 | wget --quiet https://sourceforge.net/projects/zsh/files/zsh/5.7.1/zsh-5.7.1.tar.xz > /dev/null && \
171 | tar xf zsh-5.7.1.tar.xz && \
172 | cd zsh-5.7.1 && \
173 | ./configure > /dev/null && \
174 | make > /dev/null 2>&1 && \
175 | sudo make install > /dev/null 2>&1
176 | fi
177 | # mac
178 | elif [ $platform = 'Mac' ]; then
179 | if ! type "$(which brew)"; then
180 | echo "Brew not installed. Installing..."
181 | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
182 | else
183 | echo "Brew already installed. Proceeding..."
184 | echo
185 | fi
186 | echo "Installing dependencies with Brew"
187 | echo
188 | for d in $dependencies; do
189 | brew info "$d" | grep --quiet 'Not installed' && brew install "$d"
190 | done
191 | fi
192 | echo "Done"
193 | echo
194 | # oh my zsh
195 | echo "Installing Oh My Zsh..."
196 | printf "${NORMAL}"
197 | # Work around to non-standard shell error when chsh in oh-my-zsh script
198 | quiet_git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
199 | if [ $platform = 'Mac' ]; then
200 | sudo dscl . -create /Users/$USER UserShell "$(which zsh)"
201 | elif [ $platform = 'Linux' ]; then
202 | sudo chsh -s "$(which zsh)" "$(whoami)"
203 | fi
204 | printf "${PURP}"
205 | echo "Done"
206 | echo
207 | # install dotfiles
208 | install_dotfiles
209 | echo
210 | # zsh plugins
211 | echo "Installing Zsh plugins..."
212 | quiet_git clone https://github.com/zsh-users/zsh-autosuggestions "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-autosuggestions"
213 | quiet_git clone https://github.com/zsh-users/zsh-syntax-highlighting.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting"
214 | quiet_git clone https://github.com/zsh-users/zsh-history-substring-search "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-history-substring-search"
215 | quiet_git clone https://github.com/zsh-users/zsh-completions "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/plugins/zsh-completions"
216 | echo "Done"
217 | echo
218 | # tmux package manager
219 | echo "Installing Tmux package manager into $HOME/.tmux..."
220 | quiet_git clone https://github.com/tmux-plugins/tpm "$HOME/.tmux/plugins/tpm"
221 | echo "Done"
222 | echo
223 | # vim-plug plugin manager
224 | echo "Installing Vim-plug plugin manager into $HOME/.local/share/nvim/site/autoload/plug.vim..."
225 | curl -sfLo "$HOME/.local/share/nvim/site/autoload/plug.vim" --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
226 | echo "Done"
227 | echo
228 | # activate nvim plugins
229 | echo "Activating Neovim plugins..."
230 | mkdir -p "$HOME/.config/nvim"
231 | nvim +PlugInstall +qa || echo "Something went wrong installing Neovim plugins. Check init.vim for errors and try again."
232 | echo "Done"
233 | echo
234 | # install spaceship-prompt theme for zsh
235 | echo "Installing Spaceship-prompt theme for Zsh..."
236 | quiet_git clone https://github.com/denysdovhan/spaceship-prompt.git "$HOME/.oh-my-zsh/themes/spaceship-prompt"
237 | ln -s "$HOME/.oh-my-zsh/themes/spaceship-prompt/spaceship.zsh-theme" "$HOME/.oh-my-zsh/themes/spaceship.zsh-theme"
238 | echo "Done"
239 | echo
240 | # install nord theme for gnome terminal
241 | if [ "$platform" = 'Linux' ]; then
242 | # check if running desktop or headless
243 | if xhost >/dev/null 2>&1; then
244 | echo "Installing Nord theme for Gnome Terminal..."
245 | curl -sO https://raw.githubusercontent.com/arcticicestudio/nord-gnome-terminal/develop/src/nord.sh && chmod +x nord.sh && ./nord.sh
246 | rm -f nord.sh
247 | echo "Done"
248 | fi
249 | elif [ "$platform" = 'Mac' ]; then
250 | echo "Downloading Nord theme for iTerm"
251 | temp_dir=$(mktemp -d 2>/dev/null || mktemp -d -t 'mytmpdir')
252 | wget -q -O "$temp_dir/Nord.itermcolors" https://raw.githubusercontent.com/arcticicestudio/nord-iterm2/master/src/xml/Nord.itermcolors
253 | echo "Done"
254 | fi
255 | printf "${PURP}"
256 | echo
257 | echo "Installing Powerline fonts..."
258 | printf "${NORMAL}"
259 | quiet_git clone https://github.com/powerline/fonts.git --depth=1 &&
260 | cd fonts &&
261 | ./install.sh &&
262 | cd .. &&
263 | rm -rf fonts
264 | printf "${PURP}"
265 | echo "Done"
266 | echo
267 | if [ "$platform" = 'Mac' ] && [ "${TERM_PROGRAM}" = "iTerm.app" ]; then
268 | echo 'Installing Nord theme for iTerm...'
269 | open "$temp_dir/Nord.itermcolors"
270 | fi
271 | echo
272 | printf "${BLUE}"
273 | echo '****************************************************************************************************'
274 | echo ' _ __ ____ __ _ __ __ '
275 | echo ' (_)___ _____/ /_____ _/ / /___ _/ /_(_)___ ____ _________ ____ ___ ____ / /__ / /____ '
276 | echo " / / __ \/ ___/ __/ __ \`/ / / __ \`/ __/ / __ \/ __ \ / ___/ __ \/ __ \`__ \/ __ \/ / _ \/ __/ _ "
277 | echo ' / / / / (__ ) /_/ /_/ / / / /_/ / /_/ / /_/ / / / / / /__/ /_/ / / / / / / /_/ / / __/ /_/ __/'
278 | echo '/_/_/ /_/____/\__/\__,_/_/_/\__,_/\__/_/\____/_/ /_/ \___/\____/_/ /_/ /_/ .___/_/\___/\__/\___/ '
279 | echo ' /_/ '
280 | echo '***************************************************************************************************'
281 | echo ''
282 | echo " * Note: You will have to log out and back in for Zsh to be set as the default shell."
283 | echo " If you don't want to log out now, enter 'zsh'"
284 | echo ''
285 | echo ''
286 | echo ' * Press Ctrl + a, then I to load Tmux plugins'
287 | echo ''
288 | if [ "$platform" = 'Linux' ]; then
289 | echo ' * In Gnome Terminal preferences, set Nord as your default profile'
290 | elif [ "$platform" = 'Mac' ]; then
291 | echo ' * In iTerm, set your color profile to Nord'
292 | fi
293 | echo ''
294 | echo ' * Set an appropriate font (e.g. Inconsolata for Powerline)'
295 | echo ''
296 | echo ''
297 |
--------------------------------------------------------------------------------