Here is a short guide on setting up Ubuntu Linux 18.04 to be comfortable, high-performance development environment for everyday use.

This is kind of a summary of things I think important when you have Linux as a primary operating system.

About me — I am developer, architect and Tech Lead and I was using Linux for past 3 years as a primary desktop OS. Here is the latest notes on installing and running Linux Ubuntu.

Core stuff

Partition and installing

For maximum compatibility, use ext4 filesystem (Dropbox does not support other filesystems).

Align partitions on 1Mb boundary for best SSD life. (Check afterwards using “sudo parted /dev/nvme0n1 align-check”)

Encryption

LVM

Rescue partition

Use gparted or during install, create 10GB rescue partition. Format it as ext4. Label and enter name rescue.

Add following file to /boot/grub as custom.cfg

/boot/grub/custom.cfg

Download xubuntu-18.04.3-desktop-amd64.iso and ubuntu-18.04.3-desktop-amd64.iso and put them in the root directory of rescue partition.

Run “update-grub” and it will add this menu entries to Grub boot menu.

System software

  • etckeeper — Commits /etc to git. Execute (cd /etc && sudo git log) to see latest changes. Useful to keep track of things you and package control changes.

Kernel and system tweaks

  • Enable maximum file watches — needed for a lot of stuff, for example Dropbox, Docker.

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

  • Disable USB power control — sometimes can result in high CPU usage in kworker process.

Desktop tweaks

sudo apt autoremove — purge snapd gnome-software-plugin-snap

  • Disable telemetry— Telemetry gathering for Ubuntu are implemented by using two packages. Remove them.

sudo apt remove ubuntu-report
sudo apt remove popularity-contest

  • Image Viewing — Remove shotwell image viewer and install nomacs — If you are a fan of IrfanView you will find that nomacs are actually quite decent image viewer. Set it as default image viewer in Settings. Nomacs 3.12 (not in repo) have a dark theme!

sudo apt remove shotwell
sudo apt install nomacs

sudo add-apt-repository ppa:linuxuprising/shutter
sudo apt install shutter

Gnome desktop

  • This is modern, good looking theme. Install by running:

sudo add-apt-repository ppa:communitheme/ppa
sudo apt install ubuntu-communitheme-session

Install these important packages

  • gnome-shell-extensions Enables shell extensions (see below)

Remove cruft

apt remove speech-dispatcher speech-dispatcher-audio-plugins
sudo apt remove gnome-todo gnome-todo-common

Keyboard shortcuts & mouse settings

  • Show the run command prompt — Super+R (like in Windows, does not interfere with terminal apps)
  • Disable natural scrolling in Mouse & Touchpad

Important extensions

  • USB eject menu — adds USB eject menu to the task list menu
  • Disable jack notification — Disables prompt when you connect headphones.

Gnome-terminal

Enable embedded dark mode.

Deja-dup

Lower its priority level
You can run it with lower priority level so it will not interfere with interactive applications.

  • Copy /etc/xdg/autostart/org.gnome.DejaDup.Monitor.desktop to ~/.config/autostart folder
  • Open file by editor and prepend Exec=… with Exec=nice …

This way deja-dup will start with nice level 10 and all commands started by it (duplicity) will also be nice level 10.

Exclude more files (hidden)
Open dconf-editor at “org/gnome/deja-dup” and edit exclude-list to exclude .dot folders or files manually.

Slack

Dropbox

Midnight commander

Add to .bashrc following lines:

export EDITOR=mysudoedit
export SUDO_EDITOR=mcedit

Create file on $PATH mysudoedit:

mysudoedit

This way, if you try to edit file in Midnight Commander it will ask for password. And you will not loose changes if you accidentally trying to edit file you can not write to.

Visual Studio Code — build from source

Use build instructions and it will create folder VSCode-linux-x64 with binaries. I don’t move it anywhere but just symlink it to my $HOME/bin folder.

VSCodium desktop entry
  1. Put vscodium.desktop into ~/.local/share/applications.
  2. Put vscodium.png into ~/.local/share/icons.
  3. Make symbolic link “code” from $HOME/src/vscodium/VSCode-linux-x64 to $HOME/bin/code

Now you can start your code by typing “> code .” in any folder. Also you can start by desktop launcher.

Fonts

Keeping system working properly

Conclusion

Tech Lead & Software engineer with a passion for #DevRel, Serverless, Java, and Javascript. https://ruslan.org

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store