Ubuntu Desktop personal setup
This is how I customize a clean Ubuntu install.
Essentials
First we install the essentials.
# basic packagessudo apt update && sudo apt install -y \ curl vim fish tmux git xclipSSH keys
ssh-keygen -t ed25519 -C "user@domain.com"# copy public key to clipboardxclip -sel clip < ~/.ssh/id_ed25519.pubFolder 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/fisherfisher install jethrokuan/zUbuntu 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-tweaksRecommended 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 | bashPython
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
