🌱Aadam's Garden

Search

Search IconIcon to open search

Things to do after installing Ubuntu

Last updated Jan 3, 2023

I’ve been setting up Ubuntu on my laptop and desktop for a while, and using several online resources to set everything up each time. This is my effort to consolidate all of those different resources 1 into a single place which will hep me out in the long run.

# Install updates and reboot

1
2
3
4
5
6
7
8
9
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo apt autoremove
sudo apt autoclean
sudo fwupdmgr get-devices
sudo fwupdmgr get-updates
sudo fwupdmgr update
sudo reboot now

# Switch to Vanilla Gnome

I like the default gnome experience. It’s perfect for me, fast, minimal, and functional.

1
sudo apt install gnome-session

Log-out and activate the Gnome DE from the login screen.

# Install Apps

# Microsoft Edge

I use Edge mostly on Windows, as it performs quite well nowadays. All my extensions, bookmarks, and passwords are there, so I need to set it up here for syncing as well. Go to the Microsoft Edge download page, and download the .deb file. Install it using the following command, and start syncing.

1
sudo apt install ./microsoft-edge*

# Flatpack support

Enable flatpack support by running:

1
2
sudo apt install flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Also, use Flatseal to check or change the permissions of your flatpack apps:

1
flatpak install flatseal

# Fish shell

1
2
3
4
5
sudo apt install -y fish
chsh -s /usr/bin/fish

mkdir -p /home/$USER/.local/bin
set -Ua fish_user_paths /home/$USER/.local/bin

# Starship prompt

1
2
curl -sS https://starship.rs/install.sh | sh
echo "starship init fish | source" >> ~/.config/fish/config.fish

# System Utilities

1
2
3
sudo apt install -y gnome-tweaks gnome-shell-extensions
sudo apt install -y nautilus-admin
sudo apt install -y curl

# Communication

1
2
3
sudo snap install discord
flatpak install -y zoom
sudo snap install slack

# Coding

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
sudo apt install -y git git-lfs
git-lfs install
git config --global user.name "Aadam"
git config --global user.email "aadimator@gmail.com"
git config --global url."git@github.com:".insteadOf "https://github.com/"

sudo snap install code --classic
sudo apt install -y ttf-mscorefonts-installer

sudo snap install node --classic

curl https://sh.rustup.rs -sSf | sh
fish_add_path "$HOME/.cargo/bin"

# pgAdmin

1
2
3
4
curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'

sudo apt install pgadmin4

# Add ssh-key to GitHub

1
2
3
4
ssh-keygen -t ed25519 -C "aadimator@gmail.com"
exec ssh-agent bash
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub

# Docker

Check kvm is supported or not:

1
2
3
modprobe kvm
modprobe kvm_intel
lsmod | grep kvm

Uninstall any previous installations:

1
2
3
4
sudo apt remove docker-desktop
rm -r $HOME/.docker/desktop
sudo rm /usr/local/bin/com.docker.cli
sudo apt purge docker-desktop

Set up Docker’s package repository and install docker engine:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \\   "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) 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-compose-plugin

Create a docker group and add $USER to it, so you don’t have to use sudo every time:

1
2
3
4
5
6
7
8
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

Download and install Docker Desktop:

1
2
3
4
5
6
7
8
9
wget https://desktop.docker.com/linux/main/amd64/docker-desktop-4.15.0-amd64.deb
sudo apt-get update
sudo apt install ./docker-desktop-4.15.0-amd64.deb

systemctl --user start docker-desktop
docker compose version
docker --version
docker version
systemctl --user enable docker-desktop

# Multimedia

1
2
sudo apt install -y vlc mpv
sudo apt install -y libavcodec-extra libdvd-pkg; sudo dpkg-reconfigure libdvd-pkg

# Cloud

I use Mega.io to store all my Zotero and Calibre files. We can install it using the following commands:

1
2
3
4
5
6
7
wget https://mega.nz/linux/repo/xUbuntu_22.10/amd64/megasync-xUbuntu_22.10_amd64.deb
sudo apt install ./megasync-xUbuntu_22.10_amd64.deb
rm ./megasync-xUbuntu_22.10_amd64.deb

wget https://mega.nz/linux/repo/xUbuntu_22.10/amd64/nautilus-megasync-xUbuntu_22.10_amd64.deb
sudo apt install ./nautilus-megasync-xUbuntu_22.10_amd64.deb
rm ./nautilus-megasync-xUbuntu_22.10_amd64.deb

Login to the account and start syncing.

# Text

These are apps that I use to read and take notes.

Download the Obsidian .deb package and install it manually. To make the templates work, make sure that node is installed and then run the following command:

1
npm i -g nanoid
1
flatpak install -y zotero

Zotero File Access

Also, make sure that All system files access is granted to Zotero in the Flatseal application. Otherwise you won’t be able to access \mnt directory where the Zotero library is stored.