- Published on
Ubuntu Toolset
- Authors
- Name
- Yair Mark
- @yairmark
I recently reinstalled Ubuntu and found that the below tools were what I installed immediately after. For simplicity, I have added a bash script at the end that installs and sets up most of the below where possible.
Tools
Area | Tool | Comment |
---|---|---|
Browser | Chromium | Ubuntu does come with Firefox but it cannot use security keys |
cli | fasd | Link |
cli | curl | |
vcs | git | |
containers | docker | |
js | nvm | |
js | yarn | |
python | pip | |
shell | zsh | |
shell | oh-my-zsh | Link |
shell | yakuake | Link |
editor | vim | |
editor | emacs | |
cli | linuxbrew | Link |
ssl | mkcert | Link |
Setup in One Script
For simplicity I have created one large script to install and setup most of the tools mentioned above. I have added TODO change
above user specific configs that should be changed in the below before running this.
sudo apt-get update
################# curl :: START #################
echo Installing curl :: START
sudo apt install curl
echo Installing curl :: END
################# curl :: END #################
################# git :: START #################
echo Installing git :: START
sudo apt-get install git-core
# TODO change
git config --global user.name "your-username-for-commits"
# TODO change
git config --global user.email "[email protected]"
echo Installing git :: END
################# git :: END #################
################# FASD :: START #################
echo Installing FASD :: START
sudo add-apt-repository ppa:aacebedo/fasd
sudo apt-get update
sudo apt-get install fasd
# remove it from repos
sudo add-apt-repository -r ppa:aacebedo/fasd
echo 'eval "$(fasd --init auto)"' >> ~/.zshrc
echo Installing FASD :: END
################# FASD :: DONE #################
################# Chrome :: START #################
echo Installing Chromium :: START
sudo snap install chromium
echo Installing Chromium :: END
################# Chrome :: END #################
################# Docker :: START #################
echo Installing Docker :: START
sudo apt install docker.io
sudo usermod -aG docker $(whoami)
## While this is not necessarily the newest version of docker this will work on very new versions of ubuntu like 19.04 (as of the writing of this)
echo Installing Docker :: END
################# Docker :: END #################
################# nvm :: START #################
echo Installing nvm :: START
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
source ~/.bashrc
nvm install --lts
nvm install --latest-npm
## npm needs python2.7 for node-gyp
## You get: gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
sudo apt install python2.7
sudo ln -s /usr/bin/python2.7 /usr/bin/python
echo Installing nvm :: END
################# nvm :: END #################
################# yarn :: START #################
echo Installing yarn :: START
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
echo Installing yarn :: END
################# yarn :: END #################
################# pip :: START #################
echo Installing pip :: START
sudo apt install python3-pip
echo Installing pip :: END
################# pip :: END #################
################# zsh and oh-my-zsh :: START #################
echo Installing zsh and oh-my-zsh :: START
sudo apt-get install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
# ZSH autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# TODO Add the following to your oh-my-zsh plugins section: zsh-autosuggestions
echo Installing zsh and oh-my-zsh :: END
################# zsh and oh-my-zsh :: END #################
################# yakuake :: START #################
echo Installing yakuake :: START
sudo apt install yakuake
echo Installing yakuake :: END
################# yakuake :: END #################
################# vim and emacs :: START #################
echo Installing vim and emacs :: START
sudo apt install vim emacs
echo Installing vim and emacs :: END
################# vim and emacs :: END #################
################# linuxbrew :: START #################
echo Installing linuxbrew :: START
sudo apt install libnss3-tools
sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
echo 'eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)' >>~/.zshrc
source ~/.zshrc
echo Installing linuxbrew :: END
################# linuxbrew :: END #################
################# mkcert :: START #################
echo Installing mkcert :: START
brew install mkcert
echo Installing mkcert :: END
################# mkcert :: END #################
Gnome Shell Extensions
- System Monitor
- Before trying to install the extension first run
sudo apt-get install gir1.2-gtop-2.0 gir1.2-networkmanager-1.0 gir1.2-clutter-1.0
as described in the extension's README. - Menu meter of your CPU, RAM and Network
- Before trying to install the extension first run
- EasyScreenCast
- Easily screencast using Ubuntu's built in recording tools. Can select the area you want to record and has a bunch of other features.
- Multi Monitors Add-On
- Easily extend your menu bar across multiple monitors. If for example you want the clock to display on all monitors.
- OpenWeather
- Weather in your menu bar.
- Screenshot Tool
- Tool to easily take screenshots of a selection, all screens or/and just an application window.
Oh My ZSH
Changing the default prompt to a random emoticon (really helpful if you have multiple tabs open as you can remember one had a specific emoticon). This is done by adding the following to the .zshrc
file:
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
#prompt_segment black default "%(!.%{%F{yellow}%}.)$USER"
# Custom (Random emoji)
emojis=("⚡️" "🔥" "💀" "👑" "😎" "🐸" "🐵" "🦄" "🌈" "🍻" "🚀" "💡" "🎉" "🔑" "🇹🇭" "🚦" "🌙")
RAND_EMOJI_N=$(( $RANDOM % ${#emojis[@]} + 1))
prompt_segment black default "${emojis[$RAND_EMOJI_N]} "
fi
}