Skip to content

Instantly share code, notes, and snippets.

@adowning
Forked from hebertcisco/install.sh
Last active November 4, 2023 11:11
Show Gist options
  • Select an option

  • Save adowning/4fe81d606a3dc482d085396c1bad8f41 to your computer and use it in GitHub Desktop.

Select an option

Save adowning/4fe81d606a3dc482d085396c1bad8f41 to your computer and use it in GitHub Desktop.
Ubuntu Installation Automation
#!/bin/bash
## By Hebert F. Barros 2019
## Removing any apt ## crashes
sudo rm /var/lib/dpkg/lock-frontend ; sudo rm /var/cache/apt/archives/lock ;
sudo apt-get update
echo 'installing curl'
sudo apt install curl -y
echo 'installing snapd'
sudo apt-get install snapd -y
echo 'installing git'
sudo apt install git -y
echo "What name do you want to use in GIT user.name?"
# echo "For example, mine will be \"John Doe\""
# read git_config_user_name
# git config --global user.name "$git_config_user_name"
# clear
# echo "What email do you want to use in GIT user.email?"
# echo "For example, mine will be \"[email protected]\""
# read git_config_user_email
# git config --global user.email $git_config_user_email
# clear
echo "Can I set VIM as your default GIT editor for you? (y/n)"
read git_core_editor_to_vim
if echo "$git_core_editor_to_vim" | grep -iq "^y" ;then
git config --global core.editor vim
else
echo "Okay, no problem. :) Let's move on!"
fi
echo "Generating a SSH Key"
ssh-keygen -t rsa -b 4096 -C $git_config_user_email
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub | xclip -selection clipboard
echo 'enabling workspaces for both screens'
gsettings set org.gnome.mutter workspaces-only-on-primary false
echo 'installing zsh'
sudo apt-get install zsh -y
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
chsh -s /bin/zsh
echo 'installing tool to handle clipboard via CLI'
sudo apt-get install xclip -y
export alias pbcopy='xclip -selection clipboard'
export alias pbpaste='xclip -selection clipboard -o'
source ~/.zshrc
echo 'installing vim'
sudo apt install vim -y
clear
echo 'installing pip'
curl -fsSL http://bit.ly/pip-install-sh | sh
rm -rf get-pip.py
clear
curl -fsSL http://bit.ly/code-sh | sh
echo 'installing extensions'
code --install-extension dbaeumer.vscode-eslint
code --install-extension christian-kohler.path-intellisense
code --install-extension dbaeumer.vscode-eslint
code --install-extension dracula-theme.theme-dracula
code --install-extension esbenp.prettier-vscode
code --install-extension foxundermoon.shell-format
code --install-extension pmneo.tsimporter
code --install-extension waderyan.gitblame
code --install-extension yzhang.markdown-all-in-one
code --install-extension cweijan.cweijan-personal-material-icon-theme
code --install-extension ritwickdey.LiveServer
code --install-extension esbenp.prettier-vscode
code --install-extension ms-python.python
code --install-extension VisualStudioExptTeam.vscodeintellicode
code --install-extension msjsdiag.debugger-for-chrome
code --install-extension xabikos.JavaScriptSnippets
code --install-extension abusaidm.html-snippets
code --install-extension CoenraadS.bracket-pair-colorizer
code --install-extension TabNine.tabnine-vscode
code --install-extension nodesource.vscode-for-node-js-development-pack
code --install-extension jawandarajbir.react-vscode-extension-pack
code --install-extension loiane.ts-extension-pack
code --install-extension ritwickdey.LiveServer
code --install-extension ritwickdey.LiveServer
code --install-extension PKief.material-icon-theme
code --install-extension xabikos.JavaScriptSnippets
code --install-extension CoenraadS.bracket-pair-colorizer
code --install-extension formulahendry.auto-rename-tag
code --install-extension formulahendry.auto-close-tag
code --install-extension Zignd.html-css-class-completion
code --install-extension EditorConfig.EditorConfig
code --install-extension dsznajder.es7-react-js-snippets
code --install-extension naumovs.color-highlight
code --install-extension aaron-bond.better-comments
code --install-extension GitHub.vscode-pull-request-github
code --install-extension waderyan.nodejs-extension-pack
code --install-extension nodesource.vscode-for-node-js-development-pack
echo 'installing android-studio'
sudo snap install android-studio --classic
echo 'installing chrome'
curl -fsSL http://bit.ly/chrome-sh | sh
curl https://get.volta.sh | bash
volta install node
source ~/.zshrc
# nvm --version
# nvm install 12
# nvm alias default 12
node --version
npm --version
echo 'installing Homebrew'
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
echo 'installing rustup'
curl https://sh.rustup.rs -sSf | sh
echo 'installing deno'
curl -fsSL https://deno.land/x/install/install.sh | sh
echo 'installing autosuggestions'
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
echo "source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh" >> ~/.zshrc
source ~/.zshrc
echo 'installing theme'
sudo apt install fonts-firacode -y
wget -O ~/.oh-my-zsh/themes/node.zsh-theme https://raw.githubusercontent.com/skuridin/oh-my-zsh-node-theme/master/node.zsh-theme
sed -i 's/.*ZSH_THEME=.*/ZSH_THEME="node"/g' ~/.zshrc
# echo 'installing meet franz'
# wget https://github.com/meetfranz/franz/releases/download/v5.1.0/franz_5.1.0_amd64.deb -O franz.deb
# sudo dpkg -i franz.debchristian-kohler.path-intellisense
# sudo apt-get install -y -f
# echo 'installing slack'
# wget https://downloads.slack-edge.com/linux_releases/slack-desktop-3.3.8-amd64.deb
# sudo apt install ./slack-desktop-*.deb -y
echo 'installing terminator'
sudo apt-get update
sudo apt-get install terminator -y
echo 'adding dracula theme'
cat <<EOF > ~/.config/terminator/config
[global_config]
title_transmit_bg_color = "#ad7fa8"
[keybindings]
close_term = <Primary>w
close_window = <Primary>q
new_tab = <Primary>t
new_window = <Primary>i
paste = <Primary>v
split_horiz = <Primary>e
split_vert = <Primary>d
switch_to_tab_1 = <Primary>1
switch_to_tab_10 = <Primary>0
switch_to_tab_2 = <Primary>2
switch_to_tab_3 = <Primary>3
switch_to_tab_4 = <Primary>4
switch_to_tab_5 = <Primary>5
switch_to_tab_6 = <Primary>6
[layouts]
[[default]]
[[[child1]]]
parent = window0
type = Terminal
[[[window0]]]
parent = ""
type = Window
[plugins]
[profiles]
[[default]]
cursor_color = "#aaaaaa"
EOF
cat <<EOF >> ~/.config/terminator/config
[[Dracula]]
background_color = "#1e1f29"
background_darkness = 0.88
background_type = transparent
copy_on_selection = True
cursor_color = "#bbbbbb"
foreground_color = "#f8f8f2"
palette = "#000000:#ff5555:#50fa7b:#f1fa8c:#bd93f9:#ff79c6:#8be9fd:#bbbbbb:#555555:#ff5555:#50fa7b:#f1fa8c:#bd93f9:#ff79c6:#8be9fd:#ffffff"
scrollback_infinite = True
EOF
# echo 'installing docker'
# sudo apt-get remove docker docker-engine docker.io
# sudo apt install docker.io -y
# sudo systemctl start docker
# sudo systemctl enable docker
# docker --version
# chmod 777 /var/run/docker.sock
# docker run hello-world
# echo 'installing docker-compose'
# sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# sudo chmod +x /usr/local/bin/docker-compose
# docker-compose --version
# echo 'installing aws-cli'
# sudo apt-get install awscli -y
# aws --version
# curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb"
# sudo dpkg -i session-manager-plugin.deb
# session-manager-plugin --version
# echo 'installing teamviewer'
# wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb
# sudo apt install -y ./teamviewer_amd64.deb
# echo 'installing vnc-viewer'
# sudo apt-get install -y --no-install-recommends ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
# sudo apt-get install vnc4server -y
echo 'installing fzf'
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install --all
sudo apt purge -y gnome-contacts \
gnome-weather \
gnome-calendar \
gnome-terminal \
totem \
geary \
simple-scan \
gedit \
yelp \
gnome-shell-extension-desktop-icons-ng \
gnome-system-monitor
mattjakeman.ExtensionManager
sudo apt install gh
# git setup
gh auth login
git config --global user.name "Ash Downing"
git config --global user.email "[email protected]"
# Install pnpm things
curl -fsSL https://get.pnpm.io/install.sh | sh -
pnpm i --global typescript vercel
# Terminal setup
gh gist view 347e40f6a015bbba3fac831c900ad851 > ~/.zshrc
chmod -x ~/.zshrc
chsh -s /bin/zsh
mkdir -p ~/.config/kitty
gh gist view e433ca7af547aec311aa8f3406ffb1be > ~/.config/kitty/kitty.conf
# Coding setup
mkdir ~/Coding
# # Add docker group
# sudo groupadd docker
# sudo usermod -aG docker $USER
# Theme
gsettings set org.gnome.desktop.interface icon-theme "Papirus-Dark"
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
if [[ "$XDG_CURRENT_DESKTOP" == "GNOME" || "$XDG_CURRENT_DESKTOP" == *GNOME ]]; then
# Set custom keybindings on GNOME
# kitty
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name "kitty"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding "<Super>Return"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command "kitty"
# nautius
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ name "nautilus"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ binding "<Super>e"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/ command "nautilus"
# Other settings
gsettings set org.gnome.desktop.wm.preferences button-layout ":close"
gsettings set org.gnome.desktop.media-handling autorun-never true
# Workspaces
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-1 "['<Super>1']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-2 "['<Super>2']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-3 "['<Super>3']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-4 "['<Super>4']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-5 "['<Super>5']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-6 "['<Super>6']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-7 "['<Super>7']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-8 "['<Super>8']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-9 "['<Super>9']"
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-10 "['<Super>0']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-1 "['<Super><Shift>1']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-2 "['<Super><Shift>2']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-3 "['<Super><Shift>3']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-4 "['<Super><Shift>4']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-5 "['<Super><Shift>5']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-6 "['<Super><Shift>6']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-7 "['<Super><Shift>7']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-8 "['<Super><Shift>8']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-9 "['<Super><Shift>9']"
gsettings set org.gnome.desktop.wm.keybindings move-to-workspace-10 "['<Super><Shift>0']"
# Theming
gsettings set org.gnome.mutter attach-modal-dialogs false
gsettings set org.gnome.mutter center-new-windows true
xdg-mime default org.gnome.Nautilus.desktop inode/directory
# Cascadia Code Nerd Font
git clone --depth 1 https://github.com/ryanoasis/nerd-fonts.git /tmp/nerd-font
/tmp/nerd-font/install.sh CascadiaCode
rm -rf /tmp/nerd-font
sudo systemctl stop cups
sudo systemctl disable cups
sudo systemctl stop cups-browsed
sudo systemctl disable cups-browsed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment