Last active
January 4, 2023 20:18
-
-
Save andria-dev/d6424a58dbd948c4285397db5901f90a to your computer and use it in GitHub Desktop.
WSL Config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# function definitions | |
pressAnyKeyToContinue() { | |
read -n 1 -s -r -p "Press any key to continue." | |
} | |
# Get sudo privileges beforehand | |
sudo -v | |
# Welcome the user" | |
echo "Hi $(whoami)! Let's get your Windows Subsystem for Linux (WSL) set up." | |
echo "Let's do a quick check for updates." | |
sudo apt-get update && sudo apt-get upgrade | |
echo "" | |
echo "Now let's start by installing some applications and packages for you." | |
echo "" | |
if [[ ! $(which zsh) ]]; then | |
echo "Installing zsh" | |
sudo apt-get -y install zsh | |
echo "Changing $(whoami)'s and root's shell to $(which zsh)" | |
chsh -s $(which zsh) | |
sudo chsh -s $(which zsh) root | |
echo "Changing their prompt's as well" | |
prompt_file=\ | |
'''# Inserts a blank line between shell promptsadd_newline = true | |
# Replace the "❯" symbol in the prompt with "➜" | |
[character] | |
success_symbol = "[➜](bold green)" | |
error_symbol = "[➜](bold red)" | |
# Disable the package module, hiding it from the prompt completely | |
[package] | |
disabled = true | |
''' | |
echo "$prompt_file" > $HOME/.config/starship.toml | |
sudo echo "$prompt_file" > /root/.config/starship.toml | |
else | |
echo "ZSH is already installed: $(which zsh)" | |
fi | |
# Install homebrew so that we can install other things. | |
if [[ ! $(which brew) ]]; then | |
echo "Installing homebrew (https://brew.sh)" | |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | |
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" | |
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> $HOME/.zshrc | |
else | |
echo "Homebrew is already installed: $(which brew)" | |
fi | |
# Install our commands | |
echo """ | |
Installing the following applications via homebrew | |
git (https://git-scm.com) | |
hub (https://github.com/github/hub) | |
rg (https://github.com/BurntSushi/ripgrep) | |
watchman (https://facebook.github.io/watchman) | |
tree (https://formulae.brew.sh/formula/tree) | |
bat (https://github.com/sharkdp/bat) | |
exa (https://github.com/ogham/exa) | |
java | |
starship (https://starship.rs/) | |
z (https://github.com/rupa/z) | |
""" | |
brew install git hub ripgrep watchman tree bat exa java starship z | |
echo 'eval "$(starship init zsh)"' >> $HOME/.zshrc | |
echo '. /home/linuxbrew/.linuxbrew/etc/profile.d/z.sh' >> $HOME/.zshrc | |
echo ''' | |
# Aliases | |
alias ls="exa" | |
alias ll="exa -l" | |
alias la="exa -a" | |
alias cd="z" | |
''' >> $HOME/.zshrc | |
echo "Installing rust, cargo, rustup, etc. (https://crates.io/)" | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh | |
echo """ | |
# Add Cargo Binaries | |
PATH=\"\$HOME/.cargo/bin:\$PATH\" | |
""" | tee -a $HOME/.bashrc $HOME/.zshrc 1>/dev/null | |
echo "Configuring git!" | |
git config --global credential.helper store | |
git config --global user.email "[email protected]" | |
git config --global user.name "Andria Brown" | |
git config --global core.editor "code --wait" | |
if [[ ! $(which volta) ]]; then | |
echo "Installing volta (https://docs.volta.sh/)" | |
sudo mkdir /opt/volta | |
sudo chown $(whoami):$(whoami) /opt/volta | |
export VOLTA_HOME=/opt/volta | |
curl https://get.volta.sh | bash -s -- --skip-setup | |
export PATH="$VOLTA_HOME/bin:$PATH" | |
echo 'export VOLTA_HOME="/opt/volta"' | sudo tee -a /etc/zsh/zshenv 1>/dev/null | |
echo 'export PATH="$VOLTA_HOME/bin:$PATH"' | sudo tee -a /etc/zsh/zshenv 1>/dev/null | |
else | |
echo "Volta is already installed." | |
fi | |
volta install node@latest | |
volta install yarn@latest | |
# Install pip3 so we can install AdvancedNewFile | |
echo "Installing pip3 (python package manager)" | |
sudo apt-get -y install python3-pip | |
echo "Installing ad (https://github.com/tanrax/terminal-AdvancedNewFile)" | |
pip3 install --user advance-touch | |
echo "Installing git open (https://github.com/paulirish/git-open)" | |
npm install -g git-open | |
echo """# set PATH so it includes user's private bin if it exists | |
if [[ -d \"\$HOME/.local/bin\" ]]; then | |
PATH=\"\$HOME/.local/bin:\$PATH\" | |
fi | |
""" >> $HOME/.zshrc | |
# Set up SSH keychain if no SSH exists | |
if [[ ! -d "$HOME/.ssh" ]]; then | |
echo "Configuring your SSH keychain now." | |
read -p "What is your email? " email | |
ssh-keygen -t ed25519 -C $email -f $HOME/.ssh/id_ed25519 | |
eval "$(ssh-agent -s)" | |
ssh-add ~/.ssh/id_ed25519 | |
echo "If you would like to add your SSH key to GitHub please do so now." | |
cat $HOME/.ssh/id_ed25519.pub | clip.exe | |
echo "The public key is in your clipboard." | |
echo "https://github.com/settings/keys" | |
pressAnyKeyToContinue | |
fi | |
if [[ ! -f "$HOME/.vimrc" ]]; then | |
echo "Creating vim configuration." | |
echo """ | |
set tabstop=2 | |
set shiftwidth=2 | |
set autoindent | |
set smartindent | |
set mouse=a | |
set listchars=tab:→\ ,space:·,nbsp:␣,trail:•,eol:¶,precedes:«,extends:» | |
set number | |
if has('syntax') | |
syntax enable | |
silent! colorscheme eldar | |
endif | |
""" > $HOME/.vimrc | |
mkdir $HOME/.vim | |
mkdir $HOME/.vim/colors | |
curl 'https://raw.githubusercontent.com/agude/vim-eldar/master/colors/eldar.vim' -o $HOME/.vim/colors/vim-eldar | |
fi | |
if [[ ! -d "$HOME/Workspace" ]]; then | |
echo "Creating your Workspace directory." | |
mkdir $HOME/Workspace | |
fi | |
echo "Cloning some GitHub repositories down if they aren't already there." | |
cd $HOME/Workspace | |
if [[ ! -d "./use-shopping-cart" ]]; then | |
echo "use-shopping-cart" | |
git clone https://github.com/dayhaysoos/use-shopping-cart.git | |
cd use-shopping-cart | |
yarn | |
cd .. | |
fi | |
if [[ ! -d "./brownie" ]]; then | |
echo "brownie" | |
git clone https://github.com/andria-dev/brownie.git | |
cd brownie | |
yarn | |
cd .. | |
fi | |
if [[ ! -d "./portfolio" ]]; then | |
echo "portfolio" | |
git clone https://github.com/andria-dev/portfolio.git | |
cd portfolio | |
yarn | |
cd .. | |
fi | |
if [[ ! -d "./react-spring-modal" ]]; then | |
echo "react-spring-modal" | |
git clone https://github.com/andria-dev/react-spring-modal.git | |
cd react-spring-modal | |
yarn | |
cd .. | |
fi | |
cd $HOME | |
echo "Done setting up your WSL! Have fun 😊" | |
zsh |
// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.
module.exports = {
config: {
scrollback: 3000,
// choose either `'stable'` for receiving highly polished,
// or `'canary'` for less polished but more frequent updates
updateChannel: 'stable',
// default font size in pixels for all tabs
fontSize: 17,
// font family with optional fallbacks
fontFamily: '"FantasqueSansMono Nerd Font", "JetBrains Mono", Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',
// default font weight: 'normal' or 'bold'
fontWeight: 'normal',
// font weight for bold characters: 'normal' or 'bold'
fontWeightBold: 'bold',
// line height as a relative unit
lineHeight: 1,
// letter spacing as a relative unit
letterSpacing: 0,
// terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
cursorColor: 'rgba(248,28,229,0.8)',
// terminal text color under BLOCK cursor
cursorAccentColor: '#000',
// `'BEAM'` for |, `'UNDERLINE'` for _, `'BLOCK'` for █
cursorShape: 'BLOCK',
// set to `true` (without backticks and without quotes) for blinking cursor
cursorBlink: false,
// color of the text
foregroundColor: '#fff',
// terminal background color
// opacity is only supported on macOS
backgroundColor: '#000',
// terminal selection color
selectionColor: 'rgba(248,28,229,0.3)',
// border color (window, tabs)
borderColor: '#333',
// custom CSS to embed in the main window
css: `
#hyper .header_header {
height: 23px;
background-color: #111;
color: black;
}
#hyper .header_shape {
background-color: #111;
color: black;
}
#hyper {
background-color: #111;
}
`,
// custom CSS to embed in the terminal window
termCSS: `
`,
// if you're using a Linux setup which show native menus, set to false
// default: `true` on Linux, `true` on Windows, ignored on macOS
showHamburgerMenu: true,
// set to `false` (without backticks and without quotes) if you want to hide the minimize, maximize and close buttons
// additionally, set to `'left'` if you want them on the left, like in Ubuntu
// default: `true` (without backticks and without quotes) on Windows and Linux, ignored on macOS
showWindowControls: true,
// custom padding (CSS format, i.e.: `top right bottom left`)
padding: '12px 14px 12px 14px',
// the full list. if you're going to provide the full color palette,
// including the 6 x 6 color cubes and the grayscale map, just provide
// an array here instead of a color map object
colors: {
black: '#000000',
red: '#C51E14',
green: '#40CC40',
yellow: '#DDD950',
blue: '#6B75F8',
magenta: '#C839C5',
cyan: '#20C5C6',
white: '#C7C7C7',
lightBlack: '#686868',
lightRed: '#FD6F6B',
lightGreen: '#91EA91',
lightYellow: '#FFFC84',
lightBlue: '#9098FC',
lightMagenta: '#FD7CFC',
lightCyan: '#68FDFE',
lightWhite: '#FFFFFF',
},
// the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
// if left empty, your system's login shell will be used by default
//
// Windows
// - Make sure to use a full path if the binary name doesn't work
// - Remove `--login` in shellArgs
//
// Bash on Windows
// - Example: `C:\\Windows\\System32\\bash.exe`
//
// PowerShell on Windows
// - Example: `C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`
shell: 'C:\\Windows\\System32\\wsl.exe',
// for setting shell arguments (i.e. for using interactive shellArgs: `['-i']`)
// by default `['--login']` will be used
shellArgs: ['--cd', '~', '--distribution', 'Ubuntu', '--user', 'andria'],
// for environment variables
env: {},
// set to `false` for no bell
bell: 'SOUND',
// if `true` (without backticks and without quotes), selected text will automatically be copied to the clipboard
copyOnSelect: false,
// if `true` (without backticks and without quotes), hyper will be set as the default protocol client for SSH
defaultSSHApp: true,
// if `true` (without backticks and without quotes), on right click selected text will be copied or pasted if no
// selection is present (`true` by default on Windows and disables the context menu feature)
quickEdit: false,
// choose either `'vertical'`, if you want the column mode when Option key is hold during selection (Default)
// or `'force'`, if you want to force selection regardless of whether the terminal is in mouse events mode
// (inside tmux or vim with mouse mode enabled for example).
macOptionSelectionMode: 'vertical',
// URL to custom bell
// bellSoundURL: 'http://example.com/bell.mp3',
// Whether to use the WebGL renderer. Set it to false to use canvas-based
// rendering (slower, but supports transparent backgrounds)
webGLRenderer: true,
// for advanced config flags please refer to https://hyper.is/#cfg
},
// a list of plugins to fetch and install from npm
// format: [@org/]project[#version]
// examples:
// `hyperpower`
// `@company/project`
// `project#1.0.1`
plugins: ["hyper-search"],
// in development, you can create a directory under
// `~/.hyper_plugins/local/` and include it here
// to load it and avoid it being `npm install`ed
localPlugins: [],
keymaps: {
// Example
// 'window:devtools': 'cmd+alt+o',
},
};
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
WSL Config
Start by installing your basic Ubuntu WSL. Follow this up with the following command:
curl https://gist.githubusercontent.com/andria-dev/d6424a58dbd948c4285397db5901f90a/raw/252817e3b747c5fcc46a2d545827ec9d47ddc646/wsl.sh > wsl.sh chmod u+x wsl.sh ./wsl.sh
Sit back and relax while all of the above tools install 👍