New Ubuntu Desktop Preparation (18.04+ LTS)
#!/bin/bash
# Short URL: https://git.io/fjY3J
#
# How to use:
# $ cd ~/Downloads
# $ wget -O bootstrap.sh https://git.io/fjY3J
# $ chmod +x bootstrap.sh
# $ sudo ./bootstrap.sh
#
# To Do:
# - Adapt for Fedora
# - Adapt for 32/64 bit versions
# - Add checks for minimum version allowed to be installed
# - Add installer for Nano Editor (latest version with syntax highlight/support)
source /etc/os-release
mkdir -p ~/Downloads/Apps/
cd ~/Downloads/Apps/
# Update system first
sudo apt -y update
sudo apt -y dist-upgrade
# Utilities
sudo apt -y install apache2-utils apt-transport-https aptitude bash-completion bc bmon bzip2 cron curl debconf-utils dialog dnsutils ethtool expect fancontrol git gnupg hddtemp htop httpie ifstat iftop ifupdown iotop iptables iptraf jpegoptim linux-tools-common linux-tools-generic lm-sensors lsb-release lzop make multitail nano net-tools nethogs optipng psensor psmisc rsync screenfetch shellcheck siege slurm smartmontools snapd snmp software-properties-common speedometer sudo sysstat tasksel tcptrack telnet tree unzip webp zip
sudo apt -y install asunder bleachbit dconf-editor gedit-plugins gedit-plugins-common gnome-shell-extensions gnome-tweaks gprename gthumb hollywood pwgen renrot
# === Apps ===
sudo snap install alsa-utils cacher chromium coulr e-tools ffmpeg filebot fkill gifcurry gifski gimp glances gnome-system-monitor google-play-music-desktop-player gravit-designer handbrake-jz htop lepton matroska-tools notepadqq odio odrive-unofficial onlyoffice-desktopeditors opera pac-vs photoscape picard poedit polarr qownnotes raven-reader recollectr remmina remote-touchpad screencloud simplenote snap-store spotify termius-app vidcutter vlc
sudo snap install eclipse --classic
sudo snap install mackup --classic
sudo snap install node --channel=10/stable --classic
sudo snap install shotcut --classic
sudo snap install skype --channel=insider/stable --classic
sudo snap install snapcraft --classic
# Others to consider:
# disk-space-saver
# easy-disk-cleaner
# mkvtoolnix-jz (remove custom installer below first)
# rambox
# For developers:
# docker
# lxd
# microk8s
# netbeans --classic
# Configure GNOME
gsettings set org.gnome.shell enable-hot-corners true
gsettings set org.gnome.shell.extensions.dash-to-dock extend-height false
gsettings set org.gnome.shell.extensions.dash-to-dock dock-position BOTTOM
# Flatpak
sudo add-apt-repository -y ppa:alexlarsson/flatpak
sudo apt -y update
sudo apt -y install flatpak
sudo apt -y install gnome-software-plugin-flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# Flatpak Apps
#flatpak install -y flathub com.calibre_ebook.calibre
flatpak install -y flathub com.github.muriloventuroso.easyssh
flatpak install -y flathub com.viber.Viber
#flatpak install -y flathub org.gabmus.hydrapaper
# Using PyPi
sudo pip install -y glances youtube-dlg
# === Single Apps ===
# Brave
curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add -
echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt update
sudo apt install brave-browser
# MKVtoolnix - https://mkvtoolnix.download/downloads.html#ubuntu
wget -q -O - https://mkvtoolnix.download/gpg-pub-moritzbunkus.txt | sudo apt-key add -
sudo cat > "/etc/apt/sources.list.d/mkvtoolnix.list" <<EOF
deb https://mkvtoolnix.download/ubuntu/ $UBUNTU_CODENAME main
deb-src https://mkvtoolnix.download/ubuntu/ $UBUNTU_CODENAME main
EOF
sudo apt -y update
sudo apt -y install mkvtoolnix mkvtoolnix-gui
# Chrome
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/googlechrome.list'
sudo apt -y update
sudo apt -y install google-chrome-stable chrome-gnome-shell
# cd ~/Downloads/Apps/
# wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
# sudo dpkg -i google-chrome-stable_current_amd64.deb
# TeamViewer
wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb
sudo dpkg -i teamviewer_amd64.deb
# SublimeText
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
sudo apt-get update
sudo apt-get install sublime-text
# VSCode
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt update
sudo apt install code # or code-insiders
# Atom
wget -qO - https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add -
sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list'
sudo apt-get update
sudo apt-get install atom
# === Single Apps That Require Version Updating ===
# Boostnote
BOOSTNOTE_VERSION="0.16.1"
wget -O boostnote_$BOOSTNOTE_VERSION_amd64.deb https://github.com/BoostIO/boost-releases/releases/download/v$BOOSTNOTE_VERSION/boostnote_$BOOSTNOTE_VERSION_amd64.deb
sudo dpkg -i boostnote_$BOOSTNOTE_VERSION_amd64.deb
# Dropbox
DROPBOX_VERSION="2020.03.04"
wget -O dropbox_$DROPBOX_VERSION_amd64.deb https://www.dropbox.com/download?dl=packages/ubuntu/dropbox_$DROPBOX_VERSION_amd64.deb
sudo dpkg -i dropbox_$DROPBOX_VERSION_amd64.deb
# Github Desktop
GITHUB_DESKTOP_VERSION="2.6.1-linux2"
wget -O GitHubDesktop-linux-$GITHUB_DESKTOP_VERSION.deb https://github.com/shiftkey/desktop/releases/download/release-$GITHUB_DESKTOP_VERSION/GitHubDesktop-linux-$GITHUB_DESKTOP_VERSION.deb
sudo dpkg -i GitHubDesktop-linux-$GITHUB_DESKTOP_VERSION.deb
# === Finish ===
sudo apt -y autoremove
# === Path Aliases ===
sudo ln -s /home /Users
# === /etc/sysctl.conf Tweaks ===
# For VS Code: https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in-this-large-workspace-error-enospc
sudo sh -c 'echo "fs.inotify.max_user_watches=524288" >> /etc/sysctl.conf'
sudo sysctl -p
sudo apt-get -y autoremove
echo ""
echo ""
echo " === Installation Completed === "
echo ""
echo ""