There’s a unique satisfaction that comes with a fresh operating system install. Ubuntu 24.04 LTS boots up clean, fast, and full of potential. But a stock installation is just the starting point—a blank canvas. To transform it from a generic desktop into a personalized powerhouse tailored for development, productivity, and comfort, a series of deliberate steps are required. This is the process of making the system truly yours, equipping it with the right tools, tweaking the settings for a perfect workflow, and shaping the user interface to feel like home.
Over the years, I’ve refined a personal checklist that I run through after every new Ubuntu installation. It’s a comprehensive guide that has evolved from a simple list of commands into a battle-tested script for creating my ideal work environment. In this post, I’m sharing that entire cheat sheet with you. We will cover everything from essential system updates and must-have software to powerful terminal customizations with Oh My Zsh, essential GNOME extensions for a streamlined desktop experience, and a robust setup for developers including Docker and Kubernetes tools. Whether you’re a newcomer to Ubuntu or a seasoned user looking for new ideas, consider this your roadmap to a perfectly configured system.
Check and Install Package Updates
The following commands update the package lists, show upgradable packages, perform the upgrade, and remove any old, unused packages.
Three different package manager front-ends are shown.
Using Apt (the standard Ubuntu package manager)
- Refresh package lists
- List upgradable packages
- Upgrade all packages
- Remove unused dependencies
|
|
Using Nala (a more user-friendly front-end for Apt)
Same as above, but with Nala’s parallel downloads and clearer output
|
|
Using Aptitude (another powerful front-end for Apt)
Same as above, but using Aptitude for the upgrade process
|
|
Install Software and Tools:
Install a collection of essential command-line and GUI tools.
- nano: simple text editor;
- nala/aptitude: apt front-ends;
- git/wget/curl: download/version control tools;
- mc: terminal file manager;
- copyq: clipboard manager;
- filezilla: FTP client;
- neofetch/inxi: system information tools;
- remmina: remote desktop client;
- make: build tool;
- htop: process viewer;
- gnome-sushi: Nautilus file previewer;
- zsh: alternative shell;
- duf: disk usage utility;
- powerline/fonts-powerline: status line styling for shells;
- pavucontrol: advanced audio control;
- pipewire-pulse: PulseAudio compatibility for PipeWire.
|
|
System Tuning
Install tools for advanced GNOME desktop configuration.
- gnome-system-tools: legacy admin tools;
- dconf-editor: low-level settings editor;
- gnome-tweaks: essential customization tool;
- chrome-gnome-shell: browser integration for extensions.
|
|
Installing additional support for archivers
Add support for various archive formats like .rar, .7z, .ace, etc.
|
|
Google Chrome
Manual installation of Google Chrome browser.
- Download the .deb file from the official website.
- Use dpkg to install the downloaded .deb package.
|
|
Enpass
Install the Enpass password manager from its official repository.
- Add the Enpass repository to your system’s sources.
- Download and add the repository’s GPG key for verification.
- Update package lists and install Enpass.
|
|
PhpStorm
Manual installation of JetBrains PhpStorm IDE.
- Extract the downloaded tarball.
- Move the extracted folder to /opt, a common directory for optional software.
|
|
- Final step: Open PhpStorm and use its internal tool to create a .desktop file for the application menu.
|
|
DeaDBeeF Audio Player
- https://deadbeef.sourceforge.io/download.html
- https://sourceforge.net/projects/deadbeef/files/travis/linux
Install the DeaDBeeF audio player from a downloaded .deb file.
|
|
Terminal
Terminal themes:
Install a terminal color scheme using the “Gogh” script.
- This script downloads and runs an installer that offers many themes.
|
|
Azu
Adjusting GNOME Terminal preferences.
|
|
Install Z-shell (Oh My Zsh)
Install the Oh My Zsh framework for managing Zsh configuration.
|
|
Install plugins:
Clone the zsh-autosuggestions plugin (suggests commands as you type).
|
|
Clone the zsh-syntax-highlighting plugin (highlights shell commands).
|
|
Enable Oh-my-zsh plugins
Edit the Zsh configuration file to enable the installed plugins.
|
|
Ensure your personal bin directory is in the system’s PATH.
|
|
Add the new plugins to the plugins array in .zshrc.
|
|
Fix very slow paste
Edit .zshrc to fix a common issue where pasting text into the terminal is slow.
|
|
Add this line to disable a Zsh feature that can cause paste lag.
|
|
Install Gnome Extensions
Install base packages required for GNOME Shell Extensions.
|
|
Below is a list of recommended GNOME Shell Extensions. They can be installed from the website.
Dash to Panel
Merges the top bar and dash into a single, configurable panel.
Arc Menu
A traditional application menu for GNOME.
Caffeine
Prevents the screen from locking or the system from suspending.
Steal my focus window
Prevents windows from stealing focus.
Astra Monitor
A system monitor extension for the top bar.
Install Flatpak
Install Flatpak, a universal package management system.
|
|
Add the Flathub remote, which is the main repository for Flatpak apps.
|
|
Note: A system restart is required to complete the setup and integrate Flatpak with the software center.
Install Flatpak Apps:
Warehouse
A tool to manage Flatpak applications, including their data and permissions.
|
|
Flatseal
A graphical utility to review and modify permissions for your Flatpak applications.
|
|
Gear Lever
Manage AppImages and integrate them into your system.
|
|
Haruna Media Player
A video player built with Qt/QML and libmpv.
|
|
Bruno
An open-source API client, alternative to Postman/Insomnia.
|
|
Pika Backup
A simple backup tool based on BorgBackup.
|
|
Disk Usage Analyzer (Baobab)
A graphical tool to analyze disk space usage.
|
|
System Settings
Adjusting various system settings via the GUI.
|
|
Add “Create New Document” option to Nautilus File Manager
This adds options to the right-click context menu in Nautilus.
Navigate to the user’s Templates directory.
|
|
Create empty files that will serve as templates.
|
|
Nautilus Copy Path/Name
Install a Nautilus extension that adds “Copy Path” and “Copy Name” to the context menu.
Install dependencies for Nautilus Python extensions.
|
|
Clone the extension’s repository.
|
|
Navigate into the directory and run the installer.
|
|
Custom Hot Keys
Setting up a custom keyboard shortcut.
Task Manager
Ctrl
+Alt
+Delete
|
|
Fonts
https://github.com/mozilla/Fira
Common system-wide font directories.
- /usr/share/fonts
- /usr/local/share/fonts
Install Microsoft fonts
Install the popular Microsoft Core Fonts package (Times New Roman, Arial, etc.).
|
|
Manually Install Fonts
A script to manually install fonts from .ttf files.
Create a custom directory for your fonts.
|
|
Copy your .ttf font files into the new directory.
|
|
Set the correct ownership and permissions for the font files and directory.
|
|
Rebuild the system’s font cache so the new fonts are recognized.
|
|
Synaptic
Install Synaptic, a graphical package manager, and Gdebi, for installing local .deb files.
|
|
Install Synaptic Quick-Search filter
This indexes packages and enables a faster search filter in Synaptic.
|
|
How to disable Ctrl+Shift+U?
Problem
In the default “Ibus” input method, Ctrl+Shift+U is a shortcut to enter Unicode characters directly, which can conflict with shortcuts in other applications (like IDEs).
Solution
Disable this shortcut using the IBus preferences utility.
Launch the IBus preferences panel from the terminal.
|
|
- Go to the
Emoji
tab. - Find the
Unicode code point:
entry and click the three dots (…) to edit its shortcut. - In the dialog, click
Delete
to remove the keybinding, thenOK
. - Close the IBus Preferences window. The change takes effect immediately.
Change background to solid color
Use gsettings
to change the desktop background to a solid color instead of an image.
Clear the image URIs for both light and dark modes.
|
|
Set the desired solid color.
|
|
Global Git ignore
Set up a global .gitignore file to exclude common files (like IDE folders) from all Git repositories on your system.
Create the global ignore file in your home directory.
|
|
Open the file to add patterns to ignore (e.g., the .idea folder from JetBrains IDEs).
|
|
|
|
Configure Git to use this file globally.
|
|
Install Docker
Uninstall old versions
Remove any old or conflicting Docker packages.
|
|
Install using the apt repository
Add Docker’s official GPG key for package verification.
|
|
Add the Docker repository to your system’s Apt sources.
|
|
Install the latest versions of the Docker packages.
|
|
(Post-installation) Add your user to the ‘docker’ group to run docker commands without sudo.
|
|
Note: You must log out and log back in for this group change to take effect.
Additional Software
ONLYOFFICE Desktop
A free office suite. Download from the official website.
RcloneBrowser (Ubuntu Software)
A GUI for the powerful rclone command-line cloud storage tool.
Grsync
A graphical user interface for rsync, a powerful file-syncing tool.
|
|
Blueman - Bluetooth Manager
An advanced Bluetooth manager, often more reliable than the default.
|
|
Access files and folders on Ext from Windows
List of Windows tools that can read Linux (Ext4) filesystems.
Fix: GNOME Sushi freezes system when previewing OpenDocument
GNOME’s file previewer (Sushi) may freeze on OpenDocument files (e.g., .odt).
Installing unoconv
provides the necessary backend to fix this.
|
|
Detach Child Pop-up windows from Parent
A tweak to make modal dialogs (like “Save As…”) appear as separate, movable windows.
|
|
Add AppImage support
Install libfuse2, a common dependency required to run many AppImage applications.
|
|
My GRUB config
Customizing the GRUB bootloader, often to set the correct resolution.
Use xrandr to find your monitor’s native or preferred resolution.
|
|
Edit the GRUB configuration file.
|
|
Set the kernel video mode to your desired resolution (e.g., 2560x1440).
|
|
Update GRUB to apply the changes.
|
|
Update the initramfs (initial RAM filesystem).
|
|
Reboot to see the changes.
|
|
Scale GRUB menu on 4K displays
If the GRUB menu itself is too small on a high-resolution display, you can set its resolution.
Edit the GRUB configuration file.
|
|
Add these lines to set a lower resolution for the GRUB menu text.
|
|
Update GRUB to apply the changes.
|
|
QT Applications Style
Improve the look of Qt-based applications so they integrate better with the GNOME (GTK) theme.
Install Qt5 style plugins.
|
|
Set an environment variable to tell Qt apps to use the GTK2 theme engine.
|
|
Visual Studio Code
MuonSSH
A modern SSH client. Download from GitHub releases.
kubectl
Install the Kubernetes command-line tool.
Download the latest stable release binary.
|
|
Make the binary executable.
|
|
Move the binary to a directory in your PATH (e.g., a personal bin folder).
|
|
minikube
Install Minikube, a tool for running a local Kubernetes cluster.
Download the .deb package for the latest release.
|
|
Install the downloaded package.
|
|
System Maintenance / Cleanup
A routine for system cleanup and backup.
lsblk
- List disks and partitions.duf
- Check disk usage status.bleachbit
- System cleanup (e.g., with BleachBit).rsync
,Synology Drive
- Backup / File backup (e.g., with rsync or a dedicated tool like Synology Drive).- Restart if core system components were updated.
And there you have it—a comprehensive blueprint for transforming a fresh Ubuntu installation into a powerful, personalized workstation. The true power of a list like this isn’t in following it verbatim, but in using it as a solid foundation to build upon. I encourage you to treat this guide as a starting point: feel free to pick and choose, substitute your favorite tools, and discard what doesn’t fit your unique workflow. Ultimately, the goal is to craft a system that feels like an extension of yourself—one that gets out of your way and empowers you to do your best work. I hope this guide saves you time and helps you achieve exactly that.
Enjoy your newly configured, powerful, and uniquely personal Ubuntu desktop