Ubuntu Out-of-the-Box Experience
Convenience Script
Static file: /static/scripts/ubuntu-oobe.sh
sudo apt install -y curl && curl -fSsL https://script.aaanh.app/static/scripts/ubuntu-oobe.sh | bash
If curl is not installed, install it with sudo apt install curl.
Note: This script should not be run as root. It will use sudo when needed and will prompt for your password.
What this script does?
- Updates and upgrades system packages via apt
- Installs essential packages: git, zsh, net-tools, build-essential, openssh-server, tmux, curl, wget, unzip, ca-certificates
- Sets up and configures zsh with oh-my-zsh, zsh-syntax-highlighting, and flazz theme
- Installs development tools: NVM (Node Version Manager), Go, and Rust
- Installs GitHub CLI (gh)
- Installs Homebrew (Linuxbrew)
- Installs Docker Engine and adds user to docker group
- Downloads and installs Fantasque Sans Mono fonts
Important: After running the script, you should log out and back in for all changes to take effect (especially zsh shell and docker group membership).
Dev Tools
sudo apt install -y curl && curl -fSsL https://script.aaanh.app/static/scripts/ubuntu-dev-tools.sh | bash
Manual
-
Update and upgrade apt
sudo apt update && sudo apt upgrade -y -
Install commonly-used packages
sudo apt install -y git zsh net-tools build-essential openssh-server \ tmux curl wget unzip ca-certificates -
Additional optional desktop packages
sudo apt install gnome-tweaks grub-customizer nodejs npm -
Install and power up
vimgit clone https://github.com/aaanh/vimrc ~/.vim_runtime && cd ~/.vim_runtime && ./install_awesome_vimrc.sh -
Use local time (optional, for dual boot with Windows)
timedatectl set-local-rtc 1 --adjust-system-clock -
Setup zsh with oh-my-zsh and plugins
chsh -s $(which zsh) git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh-syntax-highlighting --depth 1 echo "source ~/.zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.zshrc sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="flazz"/' ~/.zshrc -
Install NVM, Go, and Rust
# NVM export NVM_DIR="$HOME/.nvm" curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash # Go curl -L https://git.io/vQhTU | bash # Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y -
GitHub CLI
sudo mkdir -p -m 755 /etc/apt/keyrings wget -nv -O- https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null sudo apt update sudo apt install -y ghAfter installation, login with
gh auth login -
Homebrew (Linuxbrew)
NONINTERACTIVE=1 /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)"' >> ~/.zshrc -
Docker Engine
sudo apt-get update sudo apt-get install -y ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin sudo usermod -aG docker $USERNote: Log out and back in for docker group changes to take effect.
-
Fantasque Sans Mono fonts
TMP_DIR="$HOME/.tmp-font-install" FONT_ZIP_URL="https://script.aaanh.app/static/fonts/FantasqueSansMono.zip" mkdir -p "$TMP_DIR" cd "$TMP_DIR" curl -O "$FONT_ZIP_URL" unzip -q FantasqueSansMono.zip -d fantasque-mono sudo mkdir -p /usr/share/fonts/custom find fantasque-mono -type f -name "*.ttf" -exec sudo cp {} /usr/share/fonts/custom \; sudo fc-cache -fv rm -rf "$TMP_DIR" -
Additional user applications
-
Visual Studio Code: https://code.visualstudio.com/download
-
Discord: https://discord.com/download
-
Zoom: https://zoom.us/download
-
Slack (snap or rpm): https://slack.com/downloads/linux
-
-
Solid black 4K resolution wallpaper 👌
curl -o ~/Pictures/black.png "https://script.aaanh.app/static/images/black.png"