Complete Xubuntu Desktop Post-Install Guide

For a full Xubuntu Desktop install: install native Firefox, Google Chrome and Brave Origin, remove Snap, add Flatpak/Flathub and Homebrew, configure passwordless APT, UFW, Caffeine, XFCE usability tweaks, recovery tools, media support, networking utilities, and ongoing maintenance.

1. What the Full Xubuntu Desktop Install Already Includes

Because you installed the normal Xubuntu Desktop edition rather than the Minimal edition, you already have a complete XFCE environment and a substantial set of desktop applications.

What this changes: you do not need to rebuild XFCE from scratch. Most of this guide is about replacing Snap, adding software sources, improving security/recovery, and polishing the desktop.
Snap note: Firefox and possibly other applications may be installed as Snaps. Install replacements before purging Snap so you do not accidentally remove your only browser.

Back to top

2. Update the System First

sudo apt update
sudo apt full-upgrade -y
sudo apt autoremove --purge -y

Reboot if the kernel or major system components were updated:

sudo reboot

Back to top

3. Install Useful Base and Administration Tools

sudo apt install -y \
  curl wget git nano vim \
  build-essential procps file rsync unzip p7zip-full \
  htop btop ncdu tree \
  software-properties-common

These cover downloads, editing, development tools, file synchronization, archive handling, process monitoring, and general troubleshooting.

Back to top

4. Install Flatpak and Flathub

Do this before removing Snap, especially if Firefox is currently a Snap.

sudo apt install -y flatpak

Add Flathub

flatpak remote-add --if-not-exists flathub \
https://dl.flathub.org/repo/flathub.flatpakrepo

Log out and back in, or reboot, so desktop integration is fully refreshed.

Verify

flatpak remotes

You should see flathub.

Example: install Firefox from Flathub

flatpak install flathub org.mozilla.firefox

Optional graphical software manager

sudo apt install -y gnome-software gnome-software-plugin-flatpak

Back to top

5. Install Firefox, Google Chrome, and Brave Origin

Install your replacement browsers before removing Snap. This is especially important on Xubuntu because Firefox may currently be installed as a Snap.

Recommended setup: install Firefox from Mozilla's official APT repository so it remains a native .deb package. Chrome and Brave Origin can use their own official repositories so normal apt update / apt upgrade maintenance keeps them current.

Firefox — Mozilla Official DEB Repository

Mozilla recommends its own APT repository for Debian- and Ubuntu-based distributions. The steps below are appropriate for modern Xubuntu/Ubuntu releases using the Deb822 .sources format.

1. Create the APT keyring directory

sudo install -d -m 0755 /etc/apt/keyrings

2. Import Mozilla's signing key

wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | \
sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null

3. Verify the Mozilla signing-key fingerprint

The expected fingerprint is:

35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3

Verify it with:

gpg -n -q --import --import-options import-show \
/etc/apt/keyrings/packages.mozilla.org.asc | \
awk '/pub/{getline; gsub(/^ +| +$/,""); \
if($0 == "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3") \
print "\nThe key fingerprint matches ("$0").\n"; \
else print "\nVerification failed: the fingerprint ("$0") does not match the expected one.\n"}'
If the fingerprint does not match, stop here and do not add the repository.

4. Add Mozilla's APT repository

For Ubuntu Resolute and newer, including current Xubuntu releases:

sudo tee /etc/apt/sources.list.d/mozilla.sources > /dev/null << 'EOF'
Types: deb
URIs: https://packages.mozilla.org/apt
Suites: mozilla
Components: main
Signed-By: /etc/apt/keyrings/packages.mozilla.org.asc
EOF

5. Make APT prefer Mozilla's Firefox and reject Ubuntu's Snap-transition Firefox package

sudo tee /etc/apt/preferences.d/mozilla > /dev/null << 'EOF'
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000

Package: firefox
Pin: release o=Ubuntu
Pin-Priority: -1
EOF

This keeps the native Mozilla package preferred while preventing Ubuntu's Firefox package from steering the installation back toward Snap.

6. Remove the existing Firefox Snap, if present

snap list firefox 2>/dev/null && sudo snap remove firefox
If Firefox is not installed as a Snap, the command above will simply report that it is not present.

7. Install Firefox from Mozilla

sudo apt update
sudo apt install -y firefox

8. Verify which Firefox package APT is using

apt policy firefox

The selected candidate should come from packages.mozilla.org.

Optional Firefox language packs

For example, to install French localization:

sudo apt install firefox-l10n-fr

To see all available Firefox language packs:

apt-cache search firefox-l10n

Google Chrome — Official DEB Package

The simplest official method on a typical 64-bit Intel/AMD Xubuntu PC is to install Google's current .deb package. Installing it also configures Google's software repository so Chrome can receive future updates through APT.

1. Download Chrome

cd /tmp
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

2. Install the package with APT

sudo apt install -y ./google-chrome-stable_current_amd64.deb

3. Remove the downloaded installer

rm -f /tmp/google-chrome-stable_current_amd64.deb

4. Verify Chrome

google-chrome --version
apt policy google-chrome-stable
The direct filename above is for amd64/x86_64 systems. If you are running Xubuntu on ARM64 hardware, use Google's current Linux download page to obtain the package appropriate for your architecture rather than changing the filename by guesswork.

Brave Origin — Official Installer

This installs Brave Origin, the standalone Origin build—not the standard Brave Browser release.

One-command installation

curl -fsS https://dl.brave.com/install.sh | FLAVOR=origin sh

Brave's installer configures the required repository and installs the current Brave Origin release.

Verify

apt policy brave-origin

Alternative: configure the Brave Origin repository manually

sudo apt install -y curl

sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg \
https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg

sudo curl -fsSLo /etc/apt/sources.list.d/brave-browser-release.sources \
https://brave-browser-apt-release.s3.brave.com/brave-browser.sources

sudo apt update
sudo apt install -y brave-origin

Check All Three Browsers

firefox --version
google-chrome --version
apt policy firefox google-chrome-stable brave-origin

Browser Update Strategy

Once these repositories are configured, normal system maintenance should update all three native browser packages:

sudo apt update
sudo apt full-upgrade
BrowserSourcePackage
FirefoxMozilla official APT repositoryfirefox
Google ChromeGoogle official Linux repositorygoogle-chrome-stable
Brave OriginBrave official Linux repositorybrave-origin

Official references: Mozilla — Install Firefox on Linux, Google — Download Chrome, Brave — Brave Origin on Linux.

Back to top

6. Permanently Remove Snap

Check what is installed

snap list
Replace anything important first. If Firefox is a Snap, install the Flatpak version before continuing.

Stop and disable Snap services

sudo systemctl disable --now snapd.socket
sudo systemctl disable --now snapd.service
sudo systemctl disable --now snapd.seeded.service 2>/dev/null

Purge Snap

sudo apt purge -y snapd
sudo apt autoremove --purge -y

Remove leftover directories

rm -rf ~/snap
sudo rm -rf /snap
sudo rm -rf /var/snap
sudo rm -rf /var/lib/snapd
sudo rm -rf /var/cache/snapd

Prevent Snap from being reinstalled

sudo nano /etc/apt/preferences.d/nosnap.pref

Put this in the file:

Package: snapd
Pin: release a=*
Pin-Priority: -10

Save with Ctrl+O, Enter, then exit with Ctrl+X.

Also place the package on hold:

sudo apt-mark hold snapd

Verify

apt policy snapd
which snap

which snap should ideally return nothing.

Firefox warning: after removing Snap, do not blindly reinstall Firefox from Ubuntu's normal package path if your goal is to remain Snap-free. Use your chosen Flatpak build or another non-Snap source.

Back to top

7. Passwordless sudo for APT Only

This allows package-management commands to run without asking for your password, without making every sudo command passwordless.

echo "$USER ALL=(root) NOPASSWD: /usr/bin/apt, /usr/bin/apt-get" | \
sudo tee /etc/sudoers.d/apt-nopasswd

Set the correct permissions:

sudo chmod 440 /etc/sudoers.d/apt-nopasswd

Validate the sudoers file:

sudo visudo -cf /etc/sudoers.d/apt-nopasswd

You want to see:

parsed OK

Test it

sudo -k
sudo apt update
APT runs as root and can install software, so passwordless APT still gives substantial administrative capability. It is safer than using NOPASSWD: ALL, which is not recommended for a normal desktop.

Back to top

8. Install and Configure UFW

sudo apt install -y ufw gufw

Set sensible workstation defaults

sudo ufw default deny incoming
sudo ufw default allow outgoing

If you use SSH

Allow SSH before enabling the firewall:

sudo ufw allow OpenSSH

Or restrict SSH to your LAN:

sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp

Change the subnet to match your network.

Enable UFW

sudo ufw enable

Check status

sudo ufw status verbose

A typical desktop configuration should show:

Status: active
Default: deny (incoming), allow (outgoing)

List numbered rules

sudo ufw status numbered

Delete a rule

sudo ufw delete 3

Graphical frontend

gufw

Back to top

9. Install Homebrew

Use APT for system packages, Flatpak for desktop applications, and Homebrew mainly for CLI/development tools where you want newer releases.

Prerequisites

sudo apt install -y build-essential procps curl file git

Install

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Add Homebrew to Bash

echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

If you use Zsh

echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

Verify

brew --version
brew doctor

Example package

brew install fastfetch
Package systemBest use
APTOperating system, kernel, drivers, libraries, services
FlatpakDesktop applications
HomebrewCLI and development utilities

Back to top

10. Install Caffeine for XFCE

sudo apt install -y caffeine

Start the indicator

caffeine-indicator

The tray icon lets you temporarily prevent the display from blanking, the screensaver from activating, the session from locking, or the system from suspending.

Run a command while keeping the system awake

caffeinate rsync -avh source/ destination/

The machine stays awake until the command finishes.

Back to top

11. Make XFCE More User-Friendly

The full Xubuntu Desktop edition already includes many XFCE extras, so you may already have most or all of these packages.

sudo apt install -y \
  xfce4-goodies \
  xfce4-whiskermenu-plugin \
  xfce4-clipman-plugin \
  xfce4-pulseaudio-plugin \
  xfce4-screenshooter \
  xfce4-notifyd \
  xfce4-power-manager \
  thunar-archive-plugin \
  thunar-media-tags-plugin \
  file-roller \
  pavucontrol \
  catfish \
  menulibre

Recommended panel layout

Right-click the panel and open Panel → Panel Preferences. A straightforward layout is:

Whisker Menu
Launchers
Separator [Expand]
Window Buttons
Notification Area / Status Tray
PulseAudio
Power Manager
Clock
Action Buttons

For the separator between launchers and the window list:

Expand: enabled
Style: Transparent

Open Whisker Menu with the Super key

Open Whisker Menu properties and assign:

Super L

Useful window shortcuts

Go to Settings → Window Manager → Keyboard and consider:

Alt+F4       Close window
Alt+F10      Maximize
Super+Left   Tile left
Super+Right  Tile right
Super+Up     Maximize
Super+Down   Restore/minimize
Alt+Tab      Switch windows

Improve Thunar and Samba/NAS integration

sudo apt install -y \
  thunar-archive-plugin \
  thunar-media-tags-plugin \
  samba-common-bin \
  smbclient \
  gvfs-backends

After logging out and back in, you can use addresses like:

smb://server/share

Back to top

12. Fonts and Appearance

Install useful fonts

sudo apt install -y \
  fonts-dejavu \
  fonts-liberation \
  fonts-noto \
  fonts-noto-color-emoji \
  fonts-ubuntu

Install some themes and icons

sudo apt install -y \
  adwaita-icon-theme-full \
  papirus-icon-theme \
  greybird-gtk-theme

Then open Settings → Appearance. A safe combination is:

Style: Greybird or Adwaita
Icons: Papirus
Font: Ubuntu 10 or 11

Font rendering

Under Settings → Appearance → Fonts:

Anti-aliasing: Enabled
Hinting: Slight
Sub-pixel: RGB

Back to top

13. Clipboard Manager

Xubuntu Desktop generally already includes Clipman. Add it to the panel if it is not visible:

Panel → Add New Items → Clipman

You can also start it manually:

xfce4-clipman

This gives you clipboard history instead of only the most recently copied item.

Back to top

14. Application Finder

XFCE's built-in application launcher is:

xfce4-appfinder

A good shortcut is Super+Space.

Go to Settings → Keyboard → Application Shortcuts, add:

xfce4-appfinder

and assign:

Super+Space

This gives XFCE a Spotlight/KRunner-style launcher.

Back to top

15. Useful GUI Utilities

sudo apt install -y \
  synaptic \
  gdebi \
  gparted \
  baobab \
  transmission-gtk \
  remmina \
  vlc \
  flameshot
Xubuntu Desktop already includes some of these. APT will simply report that they are already installed.

Flatpak alternative example

flatpak install flathub org.videolan.VLC

Avoid installing the same app through APT, Flatpak, Snap, and Brew unless you intentionally need more than one build.

Back to top

16. Set Up Timeshift

sudo apt install -y timeshift

Launch it with:

sudo timeshift-gtk

Suggested mode:

EXT4 filesystem  → RSYNC mode
Btrfs filesystem → BTRFS mode

Example retention policy:

3 daily
2 weekly
2 monthly
Timeshift is for system recovery, not a substitute for backing up your personal files.

Back to top

17. Automatic Security Updates

sudo apt install -y unattended-upgrades

Configure it:

sudo dpkg-reconfigure --priority=low unattended-upgrades

Check the service:

systemctl status unattended-upgrades

You can still perform normal updates manually:

sudo apt update
sudo apt full-upgrade

Back to top

18. Enable SSD TRIM

Check whether the timer is already active:

systemctl status fstrim.timer

If needed:

sudo systemctl enable --now fstrim.timer

Verify:

systemctl list-timers | grep fstrim

Back to top

19. Multimedia Codecs and FFmpeg

sudo apt install ubuntu-restricted-extras

You may be asked to accept a Microsoft font license during installation.

Install additional multimedia utilities:

sudo apt install -y \
  ffmpeg \
  libavcodec-extra \
  mediainfo

Verify FFmpeg:

ffmpeg -version

Back to top

20. Hardware, Storage, and Networking Tools

sudo apt install -y \
  pciutils \
  usbutils \
  lshw \
  lm-sensors \
  smartmontools \
  ethtool \
  iperf3 \
  dnsutils \
  traceroute \
  nmap \
  net-tools

Sensor detection

sudo sensors-detect
sensors

Useful checks

lspci
lsusb
ip addr
ip route
ethtool enp2s0

Replace enp2s0 with the actual name of your Ethernet interface.

Back to top

21. Flatpak Maintenance

Update Flatpaks

flatpak update

Remove unused runtimes

flatpak uninstall --unused

List installed applications

flatpak list --app

Search for software

flatpak search joplin

Install an application

flatpak install flathub APP.ID

Back to top

22. APT and Homebrew Maintenance

APT

sudo apt update
sudo apt full-upgrade
sudo apt autoremove --purge
sudo apt clean

Flatpak

flatpak update
flatpak uninstall --unused

Homebrew

brew update
brew upgrade
brew cleanup

Back to top

23. Recommended Final Package Strategy

Xubuntu / XFCE
│
├── APT
│   └── OS, kernel, drivers, libraries and system services
│
├── Flatpak + Flathub
│   └── Desktop applications
│
├── Homebrew
│   └── CLI and development utilities
│
├── Snap
│   └── Removed and blocked
│
├── UFW
│   └── Deny incoming / allow outgoing
│
├── Timeshift
│   └── System recovery snapshots
│
├── unattended-upgrades
│   └── Automatic security updates
│
└── XFCE
    ├── Whisker Menu
    ├── Clipman
    ├── Caffeine
    ├── Application Finder
    ├── Enhanced Thunar
    └── XFCE goodies
Suggested philosophy: let APT manage the operating system, Flatpak handle most desktop applications, and Brew handle selected CLI/development tools. This keeps the system easier to understand and maintain.

Quick post-install checklist

  1. Update Xubuntu.
  2. Install Flatpak and add Flathub.
  3. Install Firefox from Mozilla's native DEB repository.
  4. Install Google Chrome and Brave Origin if desired.
  5. Install replacement applications for any other Snaps you use.
  6. Remove and block Snap.
  7. Configure passwordless APT if desired.
  8. Enable UFW.
  9. Install Homebrew.
  10. Install Caffeine.
  11. Configure Samba/NAS support.
  12. Set up Timeshift.
  13. Enable unattended security updates.
  14. Enable SSD TRIM.
  15. Install codecs and networking tools.
  16. Polish XFCE shortcuts, panel layout, fonts, and appearance.

Back to top