Skip to content

Instantly share code, notes, and snippets.

@sminez
Last active January 26, 2018 22:33
Show Gist options
  • Save sminez/2a0bce386ad106f33d2ebf9a003dce75 to your computer and use it in GitHub Desktop.
Save sminez/2a0bce386ad106f33d2ebf9a003dce75 to your computer and use it in GitHub Desktop.
Bootstrap new environments
#! /bin/bash
# ----------
# Bootstrap a new environment using my preferred packages
# curl -L curl -L https://gist.githubusercontent.com/sminez/2a0bce386ad106f33d2ebf9a003dce75/raw/044cbc55779f1013a111fc42cfb4b76fb638aed4/bootstrap.sh
echo "Bootstrapping the environment"
echo "Anything and everything that can be apt-get installed!"
sudo apt-get install -y software-properties-common
echo "NeoVim official PPA"
sudo add-apt-repository ppa:neovim-ppa/stable
echo "Peek screen recorder"
sudo add-apt-repository ppa:peek-developers/stable
echo "Cava music visualiser"
sudo add-apt-repository ppa:tehtotalpwnage/ppa
echo "Arc gtk themes"
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/Horst3180/xUbuntu_16.04/ /' >> /etc/apt/sources.list.d/arc-theme.list"
echo "Paper icon theme"
sudo add-apt-repository ppa:snwh/pulp
sudo apt-get update
echo "General packages to install..."
sudo apt-get install -y zsh silversearcher-ag curl rofi git npm python3-pip docker.io ranger neovim tree uuid i3blocks gnuplot vlc feh mpv jq pv audacity autoconf automake cava dconf-cli dconf-editor mopidy mpd ncmpcpp xclip cmake build-essential thunar sox nodejs htop scrot compton lxappearance rofi automake pkg-config libevent-dev libncurses5-dev julia arc-theme paper-icon-theme paper-gtk-theme paper-cursor-theme
echo "Installing Rust..."
curl https://sh.rustup.rs -sSf | sh
# -------------------------------------------------------------------------------------------------
echo "Compiling and installing the latest tmux..."
rm -fr /tmp/tmux
git clone https://github.com/tmux/tmux.git /tmp/tmux
cd /tmp/tmux
sh autogen.sh
./configure && make
sudo make install
cd -
rm -fr /tmp/tmux
# -------------------------------------------------------------------------------------------------
echo "Getting i3-gaps to work"
sudo apt-get install -y libxcb1-dev libxcb-keysyms1-dev libpango1.0-dev libxcb-util0-dev libxcb-icccm4-dev libyajl-dev libstartup-notification0-dev libxcb-randr0-dev libev-dev libxcb-cursor-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev autoconf xutils-dev libtool
echo "Compiling and install libxcb-xrm-dev..."
cd /tmp
git clone https://github.com/Airblader/xcb-util-xrm
cd xcb-util-xrm
git submodule update --init
./autogen.sh --prefix=/usr
make
sudo make install
echo "Compiling and install i3-gaps itself..."
cd /tmp
git clone https://www.github.com/Airblader/i3 i3-gaps
cd i3-gaps
git checkout gaps && git pull
autoreconf --force --install
rm -rf build
mkdir build
cd build
../configure --prefix=/usr --sysconfdir=/etc
make
sudo make install
# -------------------------------------------------------------------------------------------------
# echo "Fetch antigen for zsh plugins and put it in the right place"
# curl -L git.io/antigen > ~/.zsh/antigen.zsh
echo "Useful Python modules that I use often enough that I want them system wide..."
sudo python3 -m pip install --upgrade pip
sudo python3 -m pip install requests jedi ptpython awscli aws-mfa jupyter neovim flake8 pyflakes PyQt5 csvkit bokeh Flask ipython jupyter-console jupyter-qtconsole-colorschemes pytest numpy pandas matplotlib opencv-python openpyxl prompt-toolkit pygame qtconsole requests scipy scikit-learn seaborn tmuxp youtube-dl
echo "go tools and binaries via gimme..."
cd && mkdir -p bin
curl -sL -o ~/bin/gimme https://raw.githubusercontent.com/travis-ci/gimme/master/gimme
chmod +x ~/bin/gimme
eval $(gimme 1.8)
go get github.com/pcarrier/gauth/ # gauth 2 factor auth tool
go get golang.org/x/tools/cmd/goimports
go get golang.org/x/tools/cmd/oracle
go get honnef.co/go/tools/cmd/gosimple
echo "fzf fuzzy search tool..."
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
# -------------------------------------------------------------------------------------------------
echo "Pull in dotfiles to configure everything..."
cd "$HOME"
echo "Setting git config..."
cat > .gitconfig <<EOF
[user]
name = sminez
email = innesdmorrison@gmail.com
[push]
default = simple
[pull]
rebase = true
[core]
editor = vim
[diff]
tool = vimdiff
[difftool]
prompt = false
[alias]
dt = difftool
EOF
echo "Pull in my dotfiles and notes..."
git clone https://sminez@bitbucket.org/sminez/dots.git
git clone https://sminez@bitbucket.org/sminez/notes.git
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment