Menialov Mykhailo

Ubuntu Desktop personal setup

This is how I customize a clean Ubuntu install.


Essentials

First we install the essentials.


# basic packages
sudo apt update && sudo apt install -y \
curl vim fish tmux git xclip

SSH keys


ssh-keygen -t ed25519 -C "user@domain.com"
# copy public key to clipboard
xclip -sel clip < ~/.ssh/id_ed25519.pub

Folder structure

Update the folder structure. Basically changing the default locations of folders like ~/Downloads and ~/Desktop.


Create new folders:


cd ~
mkdir -p work dl docs media tpl pub \
media/{music,books,pics,vids,screens,torrents}

Make Ubuntu use our new folders. Edit ~/.config/user-dirs.dirs and update it so it looks like this:


XDG_DESKTOP_DIR="$HOME/desk"
XDG_DOWNLOADS_DIR="$HOME/dl"
XDG_TEMPLATES_DIR="$HOME/tpl"
XDG_PUBLICSHARE_DIR="$HOME/pub"
XDG_DOCUMENTS_DIR="$HOME/docs"
XDG_MUSIC_DIR="$HOME/media/music"
XDG_PICTURES_DIR="$HOME/media/pics"
XDG_VIDEOS_DIR="$HOME/media/vids"

Fish configuration

Make fish the default shell and install useful plugins.


Install Fisher and the z plugin:


# install fisher (assumes fish is installed)
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
fisher install jethrokuan/z

Ubuntu configuration


Tweak appearance and input sources via Settings:


  • Settings → Appearance → Dark
  • Dock → Auto-hide: On, Position: Bottom

Install GNOME Tweaks and enable recommended options:


sudo apt install -y gnome-tweaks

Recommended GNOME Tweaks options:


  • Top Bar: Activities Overview Hot Corner
  • Top Bar: Battery Percentage
  • Top Bar: Weekday
  • Workspaces: Static Workspaces (Number of Workspaces: 5)
  • Workspaces span displays

GNOME Terminal

Download and install the Dracula theme for GNOME Terminal and restart the terminal to apply changes.


Tmux configuration

Install tpm and add the Dracula theme plugins. Example ~/.config/tmux/tmux.conf snippet:


set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'dracula/tmux'
set -g @dracula-plugins 'git, network-ping, attached-clients, network-vpn, weather, time'
set -g @dracula-show-left-icon 'uwu'
# initialize tpm (run inside tmux)
run -b '~/.tmux/plugins/tpm/tpm'

Node

Install n (node version manager):


curl -L https://git.io/n-install | bash

Python

Install pyenv using the recommended installer and the system build dependencies.


See suggested build environment:


https://github.com/pyenv/pyenv/wiki#suggested-build-environment


Install Poetry for Python packaging: https://python-poetry.org/docs/#installation


Install pyenv-installer: https://github.com/pyenv/pyenv-installer

Ubuntu Desktop personal setup - Blog - Meniailov Mykhailo