This guide outlines my personalized configuration for a minimal installation of Ubuntu 23.04 with the Gnome 4 desktop environment. If you're looking for the official ISO file, you can find it here.
Initially, this configuration was tailored for Manjaro 22.1.3 using the minimalist Gnome 4 desktop. However, due to stability concerns, I migrated to Ubuntu on July 30, 2023. If you're interested in the initial Manjaro setup, you can check out the associated git tag (v0.1) that corresponds to the last Manjaro-supporting commit.
This configuration primarily involves executing Shell commands. By using these commands, you can simplify the installation and customization processes without needing to navigate intricate settings menus. ust copy and paste the commands provided below. Keep in mind that while most tasks can be handled through these commands, certain adjustments may still require graphical utilities.
For a seamless setup experience, I recommend starting with the tools mentioned in the Utilities and Installers sections. These tools might be essential for other parts of the configuration process.
- Configuration for Ubuntu 23.04 Gnome minimal
A package manager used in Debian and its derivatives, including Ubuntu.
# Update the system
sudo apt update && sudo apt upgrade && sudo apt autoremove
A user-friendly front-end for apt, offering an improved interface and features like parallel downloads, history and undo.
sudo apt install nala
# Get the fastest mirror
sudo nala fetch
An official application store by Canonical, allowing developers to distribute their applications.
# Update snap packages
sudo snap refresh
A comprehensive app repository, useful to obtain applications not found in apt or snap.
# Install Flatpak
sudo nala install flatpak
# Integrate Flatpak with Gnome Software
sudo nala install gnome-software-plugin-flatpak
# Add Flathub repository for applications
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# Restart your computer after making these changes
The official Gnome installer, offering an aesthetic alternative to the Canonical's snap store while featuring the same applications.
# Install Gnome Software
sudo nala install gnome-software
A package manager for Python applications. Many applications rely on it, making its installation vital.
# Install pip for Python
sudo nala install python3-pip
The recommended approach for installing Python applications via pip. This method ensures that each application resides within an isolated virtual environment, preventing conflicts with the system's Python environment.
# Install pipx for managing Python applications
sudo nala install pipx
Enabling TRIM enhance SSD performance.
sudo systemctl enable fstrim.timer
sudo systemctl start fstrim.timer
# For English
sudo nala install aspell-en
sudo nala install libmythes-1.2-0
sudo nala install mythes-en-us
sudo snap install languagetool
# For French
sudo nala install aspell-fr mythes-fr
# Font management tool
sudo nala install font-manager
# Glacial indifference (a cool font)
wget https://www.fontsquirrel.com/fonts/download/glacial-indifference --output-document=glacial-indifference.zip
unzip glacial-indifference.zip -d glacial-indifference
font-manager --install glacial-indifference/*.otf
rm -r glacial-indifference.zip glacial-indifference
# CascadiaCode Nerd
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.2/CascadiaCode.zip
unzip CascadiaCode.zip -d CascadiaCode
font-manager --install CascadiaCode/*.ttf
rm -r CascadiaCode*
# JetBrainsMono Nerd
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.0.2/JetBrainsMono.zip
unzip JetBrainsMono.zip -d JetBrainsMono
font-manager --install JetBrainsMono/*.ttf
rm -r JetBrainsMono*
Acquire the unaltered Gnome 4 desktop (without the Ubuntu appearance) as the foundation for the customized desktop setup.
sudo nala install gnome-session
sudo nala install gnome-software
# Following this, restart your computer and opt for 'Gnome' as the desktop environment on the login screen, as opposed to 'Ubuntu'
Add minimize and maximize buttons to windows.
dconf write /org/gnome/desktop/wm/preferences/button-layout "'appmenu:minimize,maximize,close'"
Enable the tap-to-click functionality on your touchpad, making tapping the touchpad equivalent to clicking.
gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true
Use 4 workspaces by default.
dconf write /org/gnome/desktop/wm/preferences/num-workspaces 4
dconf write /org/gnome/mutter/dynamic-workspaces false
# Tool to manage extensions
flatpak run com.mattjakeman.ExtensionManager
# Tool to install from cli
pipx install gnome-extensions-cli --system-site-packages
Enable the use of custom shell themes.
gext install user-theme@gnome-shell-extensions.gcampax.github.com
Add an elegant blur effect.
gext install blur-my-shell@aunetx
dconf write /org/gnome/shell/extensions/blur-my-shell/panel/blur false
dconf write /org/gnome/shell/extensions/blur-my-shell/overview/style-components 3
Prevent screen saving during activities.
gext install caffeine@patapon.info
Enhance the dock's appearance and behavior.
gext install dash-to-dock@micxgx.gmail.com
dconf write /org/gnome/shell/extensions/dash-to-dock/multi-monitor true
dconf write /org/gnome/shell/extensions/dash-to-dock/intellihide-mode "'ALL_WINDOWS'"
dconf write /org/gnome/shell/extensions/dash-to-dock/animation-time 0.1
dconf write /org/gnome/shell/extensions/dash-to-dock/hide-delay 0.1
dconf write /org/gnome/shell/extensions/dash-to-dock/show-apps-at-top true
dconf write /org/gnome/shell/extensions/dash-to-dock/show-trash false
dconf write /org/gnome/shell/extensions/dash-to-dock/hot-keys false
dconf write /org/gnome/shell/extensions/dash-to-dock/middle-click-action "'launch'"
dconf write /org/gnome/shell/extensions/dash-to-dock/shift-middle-click-action "'quit'"
dconf write /org/gnome/shell/extensions/dash-to-dock/custom-theme-shrink true
dconf write /org/gnome/shell/extensions/dash-to-dock/disable-overview-on-startup true
dconf write /org/gnome/shell/extensions/dash-to-dock/apply-custom-theme false
dconf write /org/gnome/shell/extensions/dash-to-dock/custom-background-color true
dconf write /org/gnome/shell/extensions/dash-to-dock/background-color "'rgb(14,13,31)'"
dconf write /org/gnome/shell/extensions/dash-to-dock/transparency-mode "'DYNAMIC'"
dconf write /org/gnome/shell/extensions/dash-to-dock/customize-alphas true
dconf write /org/gnome/shell/extensions/dash-to-dock/min-alpha 0
dconf write /org/gnome/shell/extensions/dash-to-dock/max-alpha 1
Prevent glitches during fullscreen operations, such as avoiding the dock from remaining visible.
gext install unredirect@vaina.lt
Monitor system temperatures, voltage, and fan RPMs, particularly beneficial for tracking CPU temperatures.
# freon relies on lm-sensors
sudo nala install lm-sensors
sudo sensors-detect # hit enter and type 'yes' at the end to save to /etc/modules
sudo /etc/init.d/kmod start
# restart your computer
gext install freon@UshakovVasilii_Github.yahoo.com
dconf write /org/gnome/shell/extensions/freon/hot-sensors "['__max__']"
dconf write /org/gnome/shell/extensions/freon/show-rotationrate false
dconf write /org/gnome/shell/extensions/freon/show-voltage false
dconf write /org/gnome/shell/extensions/freon/show-power false
dconf write /org/gnome/shell/extensions/freon/group-rotationrate false
dconf write /org/gnome/shell/extensions/freon/group-voltage false
Enhance the overview with larger workspace thumbnails and a hidden search box.
gext install gnome-ui-tune@itstime.tech
Customize the desktop by hiding UI elements and altering behavior.
gext install just-perfection-desktop@just-perfection
dconf write /org/gnome/shell/extensions/just-perfection/theme true
dconf write /org/gnome/shell/extensions/just-perfection/activities-button false
dconf write /org/gnome/shell/extensions/just-perfection/app-menu-label false
dconf write /org/gnome/shell/extensions/just-perfection/world-clock false
dconf write /org/gnome/shell/extensions/just-perfection/weather false
dconf write /org/gnome/shell/extensions/just-perfection/events-button false
dconf write /org/gnome/shell/extensions/just-perfection/startup-status 0
dconf write /org/gnome/shell/extensions/just-perfection/animation 4
dconf write /org/gnome/shell/extensions/just-perfection/notification-banner-position 2
Introduce rounded corners to the screen edges.
gext install panel-corners@aunetx
dconf write /org/gnome/shell/extensions/panel-corners/screen-corners true
dconf write /org/gnome/shell/extensions/panel-corners/panel-corners true
Display valuable system information, such as RAM and swap usage.
gext install Resource_Monitor@Ory0n
dconf write /com/github/Ory0n/Resource_Monitor/cpustatus false
dconf write /com/github/Ory0n/Resource_Monitor/decimalsstatus true
dconf write /com/github/Ory0n/Resource_Monitor/iconsposition "'left'"
dconf write /com/github/Ory0n/Resource_Monitor/diskspacestatus false
dconf write /com/github/Ory0n/Resource_Monitor/diskstatsstatus false
dconf write /com/github/Ory0n/Resource_Monitor/gpustatus false
dconf write /com/github/Ory0n/Resource_Monitor/netethstatus false
dconf write /com/github/Ory0n/Resource_Monitor/netwlanstatus false
dconf write /com/github/Ory0n/Resource_Monitor/ramunit "'perc'"
dconf write /com/github/Ory0n/Resource_Monitor/swapstatus true
dconf write /com/github/Ory0n/Resource_Monitor/swapunit "'perc'"
dconf write /com/github/Ory0n/Resource_Monitor/thermalcputemperaturestatus false
dconf write /com/github/Ory0n/Resource_Monitor/thermalgputemperaturestatus false
Implement rounded corners for application windows.
gext install rounded-window-corners@yilozt
dconf write /org/gnome/shell/extensions/rounded-window-corners/global-rounded-corner-settings "{'padding': <{'left': <uint32 1>, 'right': <uint32 1>, 'top': <uint32 1>, 'bottom': <uint32 1>}>, 'keep_rounded_corners': <{'maximized': <false>, 'fullscreen': <false>}>, 'border_radius': <uint32 6>, 'smoothing': <uint32 1>, 'enabled': <true>}"
Display CPU usage using a running cat whose speed corresponds to CPU load.
gext install runcat@kolesnikov.se
dconf write /org/gnome/shell/extensions/runcat/idle-threshold 15
Enable window transparency during movement or resizing.
gext install transparent-window-moving@noobsai.github.com
# Install Gnome Tweaks for theme management
sudo nala install gnome-tweaks
# Install gnomelooks for downloading Gnome themes
pipx install gnomelooks
Install the Sweet-Dark-v40 GTK theme.
gnomelooks get https://www.gnome-look.org/p/1253385/
dconf write /org/gnome/desktop/interface/gtk-theme "'Sweet-Dark-v40'"
dconf write /org/gnome/desktop/wm/preferences/theme "'Sweet-Dark-v40'"
Install the Sweet-cursors theme.
gnomelooks get https://www.gnome-look.org/p/1393084/
# need to move it else the cursor theme will not apply everywhere
mv ~/.local/share/icons/Sweet-cursors ~/.icons/
dconf write /org/gnome/desktop/interface/cursor-theme "'Sweet-cursors'"
To theme Libadwaita applications, we need to use Gradiance.
sudo flatpak install flathub com.github.GradienceTeam.Gradience
flatpak run com.github.GradienceTeam.Gradience
flatpak run --command=gradience-cli com.github.GradienceTeam.Gradience download --preset-name "Pretty Purple"
flatpak run --command=gradience-cli com.github.GradienceTeam.Gradience apply -n "Pretty Purple"
# then logout
Install the ePapirus-Dark icon theme (purple folders).
gnomelooks get https://www.gnome-look.org/p/1166289
dconf write /org/gnome/desktop/interface/icon-theme "'ePapirus-Dark'"
Install Vimix theme with colors. See the github page for futher information about the configuration (e.g. screen resolution).
git clone https://github.com/vinceliuice/grub2-themes.git
cd grub2-themes/
sudo ./install.sh --theme vimix --icon color --screen 1080p
cd ..
rm -rf grub2-themes
# Close window with Shift + Super + q
dconf write /org/gnome/desktop/wm/keybindings/close "['<Shift><Super>q']"
# Initiate window move with Super + m
dconf write /org/gnome/desktop/wm/keybindings/begin-move "['<Super>m']"
# Maximize window with Super + Up
dconf write /org/gnome/desktop/wm/keybindings/maximize "['<Super>Up']"
# Launch terminal with Super + Return
dconf write /org/gnome/settings-daemon/plugins/media-keys/terminal "['<Super>Return']"
# Disable Help keybinding
dconf write /org/gnome/settings-daemon/plugins/media-keys/help "'[]'"
# Assign workspace switch shortcuts
dconf write /org/gnome/desktop/wm/keybindings/move-to-workspace-1 "['<Super>F1']"
dconf write /org/gnome/desktop/wm/keybindings/move-to-workspace-2 "['<Super>F2']"
dconf write /org/gnome/desktop/wm/keybindings/move-to-workspace-3 "['<Super>F3']"
dconf write /org/gnome/desktop/wm/keybindings/move-to-workspace-4 "['<Super>F4']"
# Clear application switch shortcuts
dconf write /org/gnome/shell/keybindings/switch-to-application-1 '@as []'
dconf write /org/gnome/shell/keybindings/switch-to-application-2 '@as []'
dconf write /org/gnome/shell/keybindings/switch-to-application-3 '@as []'
dconf write /org/gnome/shell/keybindings/switch-to-application-4 '@as []'
# Assign workspace switch shortcuts
dconf write /org/gnome/desktop/wm/keybindings/switch-to-workspace-1 "['<Super>1']"
dconf write /org/gnome/desktop/wm/keybindings/switch-to-workspace-2 "['<Super>2']"
dconf write /org/gnome/desktop/wm/keybindings/switch-to-workspace-3 "['<Super>3']"
dconf write /org/gnome/desktop/wm/keybindings/switch-to-workspace-4 "['<Super>4']"
For a custom shortcut that opens the system monitor, to mimic Windows 10 behavior, follow these steps in Settings > Keyboard > Custom Shortcuts:
- Name: 'Open Monitor'
- Command: 'gnome-system-monitor'
- Shortcut: Ctrl + Shift + Escape
I rarely find myself using the PageUp and PageDown keys, and I frequently press them unintentionally.
Therefore, I find it more convenient to disable them.
However, it's worth noting that this approach might not be effective in certain applications like VSCode.
To check which keycode is linked to PageUp and PageDown, use the xev
command.
xmodmap -e 'keycode 112 = '
xmodmap -e 'keycode 117 = '
Configure your global Git settings.
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --global core.editor nano
Generate an SSH key and add it to your GitHub account by pasting the copied key here.
ssh-keygen -t ed25519 -C "your-gh-email@something"
wl-copy < ~/.ssh/id_*.pub
My preferred text editor: visually appealing, user-friendly, and enriched with numerous plugins.
sudo snap install code --classic
My preferred Python IDE.
sudo snap install pycharm-professional --classic
An interactive Python shell with many modern features (e.g. autocomplete, colors, nice tabulations).
pipx install bpython
In the Text
configuration, set the font to CaskaydiaCove Nerd Font Mono
and the initial terminal size to 90 columns.
In the Colors
configuration, select Show bold text in bright colors
to increase visibility.
Shell with a lot of cool features and customization.
sudo nala install zsh
# do your configuration
zsh
# set zsh as the default shell
chsh -s /bin/zsh `whoami`
# logout
Framework to manage Zsh configuration.
# install
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# in .zshrc, replace the 'plugin' line by this one
plugins=(colored-man-pages cp)
Fish-like autosuggestions for zsh.
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# add zsh-autosuggestions to your plugin list in .zshrc
Fish shell like syntax highlighting for Zsh.
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# add zsh-syntax-highlighting at the end of your plugin list in .zshrc
Minimalistic, powerful and extremely customizable Zsh prompt.
git clone https://github.com/spaceship-prompt/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
# Set ZSH_THEME="spaceship" in your .zshrc.
Remplacement for ls
, way more fancy.
sudo nala install exa
Remplacement for cat
, with syntax hightlighting.
sudo nala install bat
sudo snap install discord
# Install BetterDiscord
sudo add-apt-repository ppa:chronobserver/betterdiscordctl
sudo nala update
sudo nala install betterdiscordctl
betterdiscordctl -i snap install
GIMP is ugly and hard to learn, but it's a powerful graphics editing software.
sudo nala install gimp
# Install curl to fetch content from the web
# If needed, you may have to downgrade libcurl before: sudo nala install libcurl4=7.88.1-8ubuntu2
sudo nala install curl
# Install wl-clipboard to copy text and images to clipboard from the command line
sudo nala install wl-clipboard