Intro ⚡

As a software engineer, sometimes when I just re-install my Operating System, I need to setup my development for work, So in this article I will show you how I setup it 😄


1. Update and upgrade your system

After you install elementary, the default system is not up to date with all the packages and releases, so here why you need to update your system to the latest version.

sudo apt update &&
sudo apt upgrade &&
sudo apt dist-upgrade

2. Install GDebi

Gdebi is a powerfull software utility for Debian-based and therefore ubuntu based distros which allows users to install .deb package using a graphical interface.

sudo apt install gdebi

3. Install Multimedia Codecs

Do you like watching a movie or listening music?

Here is multimedia codecs for you if you want an unrestrictive experience while enjoying your movies or music.

sudo apt install ubuntu-restricted-extras libavcodec-extra libdvd-pkg

4. Install Drivers

Windows needs manufacturer-provided hardware drivers before your hardware will work. Linux and other operating systems also need hardware drivers before hardware will work — but hardware drivers are handled differently on Linux. … You may sometimes need to install drivers, but some hardware may just not work at all.

sudo ubuntu-drivers autoinstall

5. Install Elementary Tweak

Do you like customize your operating system? in elementary we can use elementary-tweak for customize.

sudo apt install software-properties-common &&
sudo add-apt-repository ppa:philip.scott/elementary-tweaks &&
sudo apt update &&
sudo apt install elementary-tweaks

6. Install ULauncher

Do you want to fast to access your applications without touching your touchpad or mouse? here is ULauncher was created, Ulauncher is a fast application launcher with extension and shortcut support to help you quickly access application and files in Linux.

sudo add-apt-repository ppa:agornostal/ulauncher &&
sudo apt update &&
sudo apt install ulauncher

Or if you want to download the .deb file, just go to ULauncher and then install it from your terminal.

sudo dpkg -i ulaucher-filename.deb

7. Improve Laptop Battery Life

To reduce background tasks in your system, I need to install tlp-rdw.

sudo apt install tlp tlp-rdw &&
sudo tlp start

8. Install curl, git and wget

curl is used in command lines or scripts to transfer data.

git is a version control system designed to handle everything from small to very large projects with speed and efficiency.

git is a package for retrieving files using HTTP, HTTPS, FTP and FTPS, the most widely used Internet protocols.

sudo apt install curl git wget

9. Install NodeJS

NodeJS (Node) is a development platform for executing JavaScript code server-side. Node is useful for developing applications that require a persistent connection from the browser to the server and is often used for real-time applications such as chat, news feeds and web push notifications.

# when this article created, the latest version of node is 16,
# So make sure you install the latest version

curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs

10. Install Visual Studio Code

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

Download the .deb file here and then install it via terminal.

sudo dkpg -i vscode-filename.deb

11. Install Docker and Docker Compose

Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. With Docker, you can manage your infrastructure in the same ways you manage your applications. By taking advantage of Docker’s methodologies for shipping, testing, and deploying code quickly, you can significantly reduce the delay between writing code and running it in production. read more here.

Docker Compose is a tool that was developed to help define and share multi-container applications. With Compose, you can create a YAML file to define the services and with a single command, can spin everything up or tear it all down.

Install packages to allow apt to use a repository over HTTPS

sudo apt-get install ca-certificates gnupg lsb-release

Add Docker’s official GPG key

curl -fsSL https://download.docker.com/linux/ubuntu/gpg |
sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Set up the stable repository

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Install Docker Engine

sudo apt-get install docker-ce docker-ce-cli containerd.io

Install Docker Compose

# To install a different version of Compose, substitute 1.29.2 with the version of Compose you want to use.
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

Apply executable permissions to the binary

sudo chmod +x /usr/local/bin/docker-compose

Manage docker as a non root user

# Create the docker group
sudo groupadd docker
# Add your user to the docker group
sudo usermod -aG docker $USER

Log out and log back in so that your group membership is re-evaluated

# Activate the changes to groups
newgrp docker
# Verify that you can run docker commands without sudo
docker run hello-world

12. Install Snapcraft

Snaps are app packages for desktop, cloud and IoT that are easy to install, secure, cross‐platform and dependency‐free.

sudo apt install snapd

13. Install Postman

Postman is a complete API development platform that helps you manage your APIs in every stage of development, from designing and testing, to publishing API documentation and monitoring.

Install postman via snap, make sure you have installed snapcraft

sudo snap install postman

14. Install Telegram

Telegram is a messaging app with a focus on speed and security, it’s super-fast, simple and free. You can use Telegram on all your devices at the same time — your messages sync seamlessly across any number of your phones, tablets or computers.

sudo add-apt-repository ppa:atareao/telegram &&
sudo apt update &&
sudo apt install telegram

15. Install VLC Media Player

VLC is multimedia player and framework that plays most multimedia files, and various streaming protocols.

sudo apt install vlc

16. Install Chromium and Firefox

I use 2 web browsers, firefox for work and chromium just for surfing, if you won’t to install both just remove firefox or chromium-browser.

sudo apt-get install chromium-browser firefox

17. Remove some default apps

When I use elementary, I have change the apps like Epiphany Browser with Firefox or Chromium, plank with ULauncher.

Remove epiphany-browser

sudo apt-get remove epiphany-browser &&
sudo apt-get purge epiphany-browser

Remove plank

sudo apt remove plank &&
sudo apt-get purge plank

18. System Cleanup 🏁

After you remove some apps, the data maybe still in your disk, to remove it just :

# You can clean partial packages using a command
sudo apt-get autoclean &&
# You can auto cleanup apt-cache
sudo apt-get clean &&
# You can clean up of any unused dependencies
sudo apt-get autoremove