A fresh Zorin OS 18 install looks finished the moment the desktop appears, but it isn’t. On our test machine the first login asked for 1,189 MB of updates, the firewall was off, and Zorin Connect was disabled. The Windows App Support that Zorin pitches to Windows 10 switchers wasn’t installed at all. Those gaps are the real list of things to do after installing Zorin OS.
This checklist starts where our Zorin OS install walkthrough stops. It covers updates, drivers, Windows apps with Wine and Bottles, Zorin Connect, layouts, Flatpak and Snap cleanup, and Timeshift, with the disk cost of each step measured. The steps below were run on a fresh Zorin OS 18.1 Core install in a KVM virtual machine in October 2026, so the outputs and timings are real, and the few steps a VM could not show are marked where they appear.
Install the Zorin OS 18 Updates First
Run the updates before you install anything else, because the ISO is months behind the archive and the first batch touches the shell, the login manager and libc. The Software Updater pops up over the welcome tour on the first login. On our install it wanted 1189.3 MB, which is more than a quarter of the ISO itself:

Clicking Install Now does the job, but the terminal tells you what is going on and keeps going if you close the window. Refresh the package lists first:
sudo apt update
The source list is worth a look. Besides the Ubuntu noble archive, Zorin OS pulls from its own packages.zorinos.com repositories, the matching Zorin PPAs on Launchpad, and Brave’s repository, since Brave is the default browser on the panel:
Hit:1 http://ke.archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://ke.archive.ubuntu.com/ubuntu noble-updates InRelease
Hit:3 http://ke.archive.ubuntu.com/ubuntu noble-backports InRelease
Hit:4 https://brave-browser-apt-release.s3.brave.com stable InRelease
Hit:5 http://security.ubuntu.com/ubuntu noble-security InRelease
Hit:6 https://ppa.launchpadcontent.net/zorinos/apps/ubuntu noble InRelease
Hit:7 https://ppa.launchpadcontent.net/zorinos/drivers/ubuntu noble InRelease
Hit:8 https://ppa.launchpadcontent.net/zorinos/patches/ubuntu noble InRelease
Hit:9 https://ppa.launchpadcontent.net/zorinos/stable/ubuntu noble InRelease
Hit:10 https://packages.zorinos.com/stable noble InRelease
Hit:11 https://packages.zorinos.com/patches noble InRelease
Hit:12 https://packages.zorinos.com/apps noble InRelease
Hit:13 https://packages.zorinos.com/drivers noble InRelease
Reading package lists...
Building dependency tree...
Reading state information...
410 packages can be upgraded. Run 'apt list --upgradable' to see them.
Use full-upgrade rather than upgrade. The batch adds 39 new packages (split linux-firmware packages, new Zorin fonts), and plain upgrade holds back anything that needs a new dependency:
sudo apt full-upgrade -y
Ours looked like this, and the counts grow every week the ISO ages. It took 12 minutes 6 seconds on a fast link, most of it unpacking rather than downloading:
410 upgraded, 39 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,189 MB of archives.
After this operation, 116 MB of additional disk space will be used.
The Flatpak side needs its own command, because apt never touches Flatpak runtimes. On a fresh install it has nothing to do, but it’s the habit you want once apps arrive from Flathub:
sudo flatpak update -y
Then check whether the upgrade wants a reboot. Ours did, because libc6, AppArmor and GNOME Shell were all replaced, and a desktop running an old shell against new libraries is how you get odd extension crashes:
cat /var/run/reboot-required.pkgs
If the file exists, reboot with sudo reboot before you go further, but fix the regional formats in the next section first so one reboot covers both. Zorin leaves security updates on automatic install, and you can confirm that under Software & Updates, Updates tab, which also shows the support date for the release:

Leave those defaults alone. Security updates install on their own every day, other updates show up weekly, and the release is supported until May 2029, so there is no rush to move to a newer Zorin OS.
Fix the Date and Number Formats
The installer sets your regional formats from the time zone you click, not from the language you picked. We chose English and the Africa/Nairobi time zone, and the panel clock came up as “Okt 29” with Swahili day names, because every LC_* value was set to sw_KE. If your time zone and your language don’t share a locale, check the file before you notice it in a spreadsheet:
cat /etc/default/locale
This is what our fresh install held. The language is English, while dates, currency, paper size and measurements all follow the Kenyan Swahili locale:
# File generated by update-locale
LANG="en_US.UTF-8"
LC_NUMERIC="sw_KE"
LC_TIME="sw_KE"
LC_MONETARY="sw_KE"
LC_PAPER="sw_KE"
LC_NAME="sw_KE"
LC_ADDRESS="sw_KE"
LC_TELEPHONE="sw_KE"
LC_MEASUREMENT="sw_KE"
LC_IDENTIFICATION="sw_KE"
Pick Settings, System, Region & Language if you prefer the GUI. The terminal route resets every format variable in one go, and you swap en_US.UTF-8 for en_GB.UTF-8 or whatever locale you actually want:
sudo localectl set-locale LANG=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8 LC_TELEPHONE=en_US.UTF-8 LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=en_US.UTF-8
After that, /etc/default/locale collapses to a single LANG=en_US.UTF-8 line. The change applies at the next login, so reboot now if the update step asked for it, or log out and back in if it didn’t.
Check for Proprietary Drivers
Most hardware works on the open drivers in the kernel, so this step matters mainly for NVIDIA graphics and a few Broadcom Wi-Fi cards. If you booted the ISO with the “modern NVIDIA drivers” menu entry, the installer already handled the card. Otherwise open Software Updater, Settings, Additional Drivers, or ask the same tool from the terminal:
ubuntu-drivers devices
Our VM has a virtio GPU, so the command printed nothing and the GUI tab said the same thing in words. An empty list is also the normal result on most Intel and AMD graphics, because their drivers already ship in the kernel and Mesa. NVIDIA cards and a handful of Wi-Fi chips are what show up here.

On a laptop with an NVIDIA card, the same list shows the driver packages with one marked “recommended”, and you install it with Apply Changes or sudo ubuntu-drivers install. By default that command installs the prebuilt, signed driver, which works with Secure Boot as is. Only a driver built with DKMS (for example on a kernel with no prebuilt module) asks you to set a MOK password and enroll the key on the next boot, and that blue screen must not be skipped. We couldn’t exercise either path in a VM, so treat the NVIDIA part as Ubuntu’s documented flow rather than something we watched.
Turn On the Firewall
Zorin OS ships ufw and its GUI, Gufw, but the firewall is inactive after install, the same default Ubuntu uses. The systemd unit is enabled, so the service is running, it just has no rules loaded:
sudo ufw status verbose
A fresh install answers with one line, which means no rules are loaded and every port a service opens is reachable from the network you’re on.
Status: inactive
Turn it on. The default policy denies all incoming traffic and allows everything outgoing, which suits a laptop that moves between networks. If you are connected over SSH, ufw warns “Command may disrupt existing ssh connections” and waits for a y, so run sudo ufw allow OpenSSH first or you will lock yourself out:
sudo ufw enable
ufw confirms it with “Firewall is active and enabled on system startup”. Leave the Zorin Connect rule for the Zorin Connect section below, where you’ll know whether you need it.
Install Windows App Support
Windows App Support is Zorin’s packaging of Wine, and it wasn’t installed on our Zorin OS 18 Core machine until we asked for it. You find out the first time you double-click an .exe or .msi: a guard program called zorin-exec-guard intercepts the file, checks it against a database of known Windows installers, and offers either a native alternative or the install button. We opened the 7-Zip installer and it pointed out that Zorin already handles .7z files:

That hint is worth taking seriously. For a lot of the Windows apps people try first, from 7-Zip to Outlook, Zorin’s own advice is a native Linux app from the Software store, and it’ll run better than the Wine version. Install Windows App Support for the app that has no native replacement, such as a tax tool, a vendor’s config utility or an old game.
The button installs the zorin-windows-app-support package. The terminal does the same and shows the cost.
sudo apt install zorin-windows-app-support
Read the size line before you say yes. The package pulls 32-bit libraries for Wine’s i386 side, 303 packages in all:
0 upgraded, 303 newly installed, 0 to remove and 0 not upgraded.
Need to get 407 MB of archives.
After this operation, 2,057 MB of additional disk space will be used.
That 2 GB is only the apt half, because the package’s setup script then installs a second stack from Flathub without asking. Here is everything that landed on our machine in those 12 minutes 8 seconds:
- Wine with its 32-bit and 64-bit halves
- Bottles, the Flathub build
- the GNOME Flatpak runtime that Bottles runs on
- Wine Mono and Wine Gecko runtimes
- the i386 compatibility and GL runtimes
The Flatpak half is the bigger one. On our machine /var/lib/flatpak grew from 130 MB to 3.5 GB, so plan for about 5.5 GB of disk in total before you click the button on a small SSD.
Once it finishes, check the Wine build Zorin installed. Zorin packages its own Wine rather than shipping the WineHQ builds, so this is the version to quote when you ask for help with an app.
wine --version
Look for Zorin’s own patch suffix at the end of the version string:
wine-10.0 (Ubuntu 10.0~repack-6ubuntu1+zorin5)
The +zorin5 tells you this Wine came from the Zorin repository and not from WineHQ. Leave it that way unless an app needs a newer Wine, because adding the WineHQ repository on top puts two sets of Wine packages on one system, and Windows App Support only knows about its own.
Run a Windows installer under Wine
After the install, double-clicking an .exe runs it through Wine. The terminal route is handy for silent installers, and 7-Zip is a good first test because it’s small and its installer accepts /S. We tested the 25.01 build below, and the download page now lists newer releases, so swap in the current file name if you want the latest. Download it into ~/Downloads:
cd ~/Downloads
# https://www.7-zip.org/download.html
curl -sLo 7z-x64.exe https://www.7-zip.org/a/7z2501-x64.exe
Run the installer silently. The first Wine command creates the ~/.wine prefix, which is why the first run took 36 seconds here while a later Wine command finished in 1.8:
wine 7z-x64.exe /S
Wine’s default prefix reports itself as Windows 10 Pro, and the program lands under the fake C: drive at ~/.wine/drive_c/Program Files/7-Zip/. Call the console binary to prove the install works:
wine 'C:\Program Files\7-Zip\7z.exe'
The banner is the real Windows build talking, so the prefix, the installer and the binary all work.
7-Zip 25.01 (x64) : Copyright (c) 1999-2025 Igor Pavlov : 2025-08-03
The installer also added a menu entry, and the 7-Zip File Manager opened as a normal window on the Zorin panel:

Simple utilities like this run fine in the shared ~/.wine prefix. Anything that installs its own runtimes, such as .NET or Visual C++ redistributables, belongs in Bottles instead.
Error: “end of file on stdin at conffile prompt”
We hit this one when we installed Windows App Support from a script with no terminal attached. One of the new 32-bit packages, libgtk-3-0t64:i386, ships a config file at /etc/gtk-3.0/settings.ini.real that Zorin removes, so dpkg stops to ask which version to keep. With nobody to answer, it leaves two packages half-configured, and the next apt install fails:
dpkg: error processing package libgtk-3-0t64:i386 (--configure):
end of file on stdin at conffile prompt
dpkg: dependency problems prevent configuration of libdecor-0-plugin-1-gtk:i386:
libdecor-0-plugin-1-gtk:i386 depends on libgtk-3-0t64 (>= 3.19.12); however:
Package libgtk-3-0t64:i386 is not configured yet.
Finish the configuration and keep the current file, which is what Zorin’s own theme expects:
sudo dpkg --configure -a --force-confold
Afterwards sudo dpkg --audit prints nothing, which means no package is left half-installed. If you install from an interactive terminal and dpkg asks about settings.ini.real, answer N to keep the installed version.
Use Bottles for Harder Windows Apps
Bottles is already on the system if you installed Windows App Support, so don’t install it a second time. It gives every Windows app its own prefix (“bottle”) with a preset for software or gaming, and it can install dependencies like .NET or the Visual C++ runtimes into one bottle without touching the others. That isolation is the reason to use it over the plain wine command, because one app’s runtime can’t break another’s.
Confirm where it came from, because a Flathub build updates through flatpak update and not through apt.
flatpak info com.usebottles.bottles
It is the Flathub build, sandboxed, on the GNOME runtime. Because it is a system-wide install, every account on the machine gets Bottles, while each user keeps their own bottles under their home folder.
Bottles - Run Windows software
ID: com.usebottles.bottles
Ref: app/com.usebottles.bottles/x86_64/stable
Arch: x86_64
Branch: stable
Version: 67.5
License: GPL-3.0-only
Origin: flathub
Collection: org.flathub.Stable
Installation: system
Installed: 537.4 MB
Runtime: org.gnome.Platform/x86_64/50
If you skipped Windows App Support and only want Bottles, install it straight from Flathub, which is already enabled on Zorin OS. Flathub lists the app itself as a 178.9 MB download, plus whatever runtimes your system doesn’t have yet. We didn’t need this command, since Windows App Support had already installed Bottles:
flatpak install -y flathub com.usebottles.bottles
The first launch walks you through downloading a Wine runner into Bottles’ own sandbox, which is separate from the system Wine. That means you can end up with two Wine builds on one machine, and that’s fine, since each tool only uses its own.
Pair a Phone with Zorin Connect
Zorin Connect is a GNOME Shell extension based on GSConnect, which speaks the KDE Connect protocol: phone notifications on the desktop, file sending both ways, a shared clipboard and the phone as a touchpad. It ships in two packages, zorin-connect and gnome-shell-extension-zorin-connect, but on our install the shell extension was not enabled:
gnome-extensions info [email protected]
Look at the last two lines. “INITIALIZED” with Enabled: No means the extension is loaded but nothing is listening:
[email protected]
Name: Zorin Connect
Description: Zorin Connect allows devices to securely share content like notifications or files and other features like SMS messaging and remote control.
Path: /usr/share/gnome-shell/extensions/[email protected]
Version: 74
Enabled: No
State: INITIALIZED
Enable it from your desktop session because the command talks to the running GNOME Shell through the session’s environment. Open a terminal on the desktop itself with Ctrl+Alt+T and run it there.
gnome-extensions enable [email protected]
A few seconds later the extension reports Enabled: Yes and State: ACTIVE, and a gjs process starts listening on port 1716:
sudo ss -tulpn | grep 1716
Both UDP (device discovery) and TCP (the paired connection) should appear. No line at all means the extension is still disabled, so check gnome-extensions info again before you look at the firewall.
udp UNCONN 0 0 *:1716 *:* users:(("gjs",pid=4271,fd=18))
tcp LISTEN 0 10 *:1716 *:* users:(("gjs",pid=4271,fd=17))
With the firewall you turned on earlier, the phone can’t reach either port yet. Zorin ships a ufw application profile for it, and the name is lowercase: sudo ufw allow 'Zorin Connect' fails with “Could not find a profile matching”. Check the profile first:
sudo ufw app info zorin-connect
Note the ports. Zorin’s profile opens 1716 plus 1739 to 1764, not the 1714 to 1764 range most KDE Connect guides tell you to open:
Profile: zorin-connect
Title: Zorin Connect
Description: Connect your mobile device with your Zorin OS computer
Ports:
1716,1739:1764/tcp
1716,1739:1764/udp
Allow it by profile name rather than typing the ports. The rule then follows the profile, so if a package update changes the ports, sudo ufw app update zorin-connect brings the rule in line without you rewriting it.
sudo ufw allow zorin-connect
The verbose status now lists the expanded port ranges for IPv4 and IPv6, and the default deny policy still covers every other port.
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
1716,1739:1764/tcp (zorin-connect) ALLOW IN Anywhere
1716,1739:1764/udp (zorin-connect) ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
1716,1739:1764/tcp (zorin-connect (v6)) ALLOW IN Anywhere (v6)
1716,1739:1764/udp (zorin-connect (v6)) ALLOW IN Anywhere (v6)
Our lab VM also has an OpenSSH rule because we drove it over SSH. A normal desktop install has no SSH server, so you’ll only see the Zorin Connect lines. Open Zorin Connect from the menu next, which shows the computer’s name, a device search and links to the phone app:

Install the Zorin Connect app on Android from Google Play or F-Droid, keep the phone on the same Wi-Fi network, and accept the pairing request on both ends. Our VM sat on a NAT network a phone couldn’t reach, so we stopped at the listening ports. If the phone never shows up, the cause is nearly always the firewall rule above or a guest Wi-Fi network that isolates clients from each other.
Pick a Layout in Zorin Appearance
Zorin Appearance is where the desktop stops looking like a demo, and the Layout page is the part Windows 10 switchers care about. Zorin OS 18 Core gives you four layouts, drawn as icons on the page:

The icons have no labels, but the layout files in the zorin-appearance-layouts-shell-core package name them, in the same order as the grid:
- Windows-style panel with app icons (the default)
- Windows-style panel with a window list and labels
- Zorin Touch, a full-screen app grid
- Plain GNOME with the Activities overview
If you are coming from Windows 10, stay on the first one, or take the second if you used taskbar labels. The “Get more desktop layouts” section underneath is Zorin OS Pro: the macOS, Windows 11 and Windows Classic looks are paid, and nothing in Core unlocks them. Before you leave the window, look at Windows, Advanced Window Tiling, because Zorin 18 shows a tiling layout picker when you drag a window to the top of the screen, and some people want that off.
Trim Flatpak and Remove Snap
Zorin OS 18 enables three package sources in the Software store: apt, Flatpak (with Flathub and Zorin’s own Flatpak remote) and Snap. On a fresh install, though, Snap holds nothing at all:
snap list
No snaps, which is the opposite of stock Ubuntu where Firefox and the store are snaps. Zorin kept the daemon and the store plugin but installs no snap apps, so Snap is available without being in use.
No snaps are installed yet. Try 'snap install hello-world'.
So “Snap cleanup” on Zorin is really a decision about whether to keep the snapd daemon running. It costs little until a snap gets installed, and from then on every snap is a squashfs mount and keeps old revisions around. If you prefer Flatpak for desktop apps, remove it now while nothing depends on it. Check what else wants snapd first:
apt-cache rdepends --installed snapd
The zorin-os-desktop metapackage in that list only recommends snapd, and AppArmor only declares a Breaks against snapd releases from the Ubuntu 20.04 era, so neither stops the removal. The other two names are command-not-found, which only suggests snapd, and the libsnapd-glib-2-1 library, which stays installed on its own. Purge it, and read the removal list before you confirm:
sudo apt purge snapd
Only the daemon and the Software store’s Snap plugin go, and 119 MB comes back. Nothing disappears from the menu, because no installed app came from a snap.
The following packages will be REMOVED:
gnome-software-plugin-snap* snapd*
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
After this operation, 119 MB disk space will be freed.
zorin-os-desktop stays installed and the Software app keeps working with apt and Flatpak sources. To stop a later apt install from pulling snapd back in as a dependency, pin it to a negative priority:
printf 'Package: snapd\nPin: release a=*\nPin-Priority: -10\n' | sudo tee /etc/apt/preferences.d/nosnap.pref
Verify the pin took before you trust it, because a typo in a preferences file fails silently.
apt-cache policy snapd
Every snapd version now shows priority -10 and the candidate reads (none), so apt refuses it even as a dependency.
snapd:
Installed: (none)
Candidate: (none)
Version table:
2.77.1+ubuntu24.04 -10
500 http://ke.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
2.76+ubuntu24.04.1 -10
500 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages
2.62+24.04build1 -10
500 http://ke.archive.ubuntu.com/ubuntu noble/main amd64 Packages
Delete the file if you ever change your mind. On the Flatpak side, the usual cleanup is removing runtimes no app uses any more:
flatpak uninstall --unused -y
Right after setup it finds nothing. The 16 Zorin GTK theme runtimes that ship with the system are pinned on purpose, because Flatpak apps need them to match your desktop theme, and they take about 130 MB:
These runtimes in installation 'system' are pinned and won't be removed; see flatpak-pin(1):
runtime/org.gtk.Gtk3theme.ZorinBlue-Dark/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinBlue-Light/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinBrown-Dark/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinBrown-Light/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinGreen-Dark/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinGreen-Light/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinGrey-Dark/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinGrey-Light/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinOrange-Dark/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinOrange-Light/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinPurple-Dark/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinPurple-Light/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinRed-Dark/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinRed-Light/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinYellow-Dark/x86_64/3.22
runtime/org.gtk.Gtk3theme.ZorinYellow-Light/x86_64/3.22
Nothing unused to uninstall
Run the same command after you remove a Flatpak app, and every few months as runtimes move to new branches. That is where Flatpak disk use creeps up, not in the themes. We go through the same Snap trade-off in numbers in our Ubuntu vs Linux Mint comparison.
Set Up Timeshift Snapshots
Timeshift wasn’t installed on our Zorin OS 18 machine. The preinstalled Backups app (Déjà Dup) covers your home folder, but it can’t roll the system back after a bad driver or update, and that is the job Timeshift does. Install it from the Ubuntu archive:
sudo apt install timeshift
Zorin OS installs on ext4 by default, so Timeshift uses rsync mode, which copies the system files instead of taking an instant Btrfs snapshot. Choose where those copies go before you take the first one, because the default location is the worst one. Open Timeshift from the menu and run through the setup:
- Click Wizard and keep RSYNC as the type.
- Pick a second internal disk or an ext4 USB drive on the Location page.
- Turn on daily snapshots and keep 3 to 5.
- Leave home folders excluded, Backups covers them.
Scheduled snapshots stay off until you finish the Wizard, which is what the yellow warning in the Timeshift window means. With a location saved, take the first snapshot while the system is in a known-good state. This is the command we ran:
sudo timeshift --create --comments 'after post-install setup' --rsync --scripted
We ran it before choosing a location, to see what a reader who skips the Wizard gets. With no config file, Timeshift picks the system partition itself as the snapshot device and never asks, so the copy lands on the same disk it is meant to protect:
First run mode (config file not found)
Selected default snapshot type: RSYNC
Mounted '/dev/vda2' at '/run/timeshift/5323/backup'
Selected default snapshot device: /dev/vda2
------------------------------------------------------------------------------
Estimating system size...
Creating new snapshot...(RSYNC)
Saving to device: /dev/vda2, mounted at path: /run/timeshift/5323/backup
Syncing files with rsync...
RSYNC Snapshot saved successfully (629s)
Tagged snapshot '2026-10-29_15-39-15': ondemand
That first snapshot took 10 and a half minutes and used 17 GB on the same 39 GB partition, which dropped free space to 2.3 GB (94% used). The Wine and Bottles install from earlier is a big part of it, because /var/lib/flatpak alone held 3.5 GB. On a 32 GB system disk with the same 18 GB in use, a 17 GB copy would not have fit at all, and a snapshot on the same disk does nothing for you if that disk dies anyway. The Timeshift window showed the squeeze plainly:

If you already took a snapshot on the system disk, run the Wizard now to move future snapshots elsewhere, then delete the one that is filling the partition. Rsync snapshots after the first are incremental, so once the full copy exists on the other drive, the daily ones stay small.
sudo timeshift --delete --snapshot '2026-10-29_15-39-15' --scripted
Use the snapshot name from your own sudo timeshift --list output. Deleting ours took the partition back from 35 GB used to 18 GB. Our Timeshift backup and restore guide covers restoring from the boot menu when the desktop won’t start.
Disk and Memory Before and After Setup
Every step above has a cost in disk, download or time. These are the numbers from our VM, which had 3 vCPUs, 6 GB of RAM and a 40 GB disk, taken with the standard disk, memory and boot-time tools.
| Measurement | Fresh install | After this checklist |
|---|---|---|
| Root partition used | 9.3 GB | 18 GB |
/var/lib/flatpak | 130 MB | 3.5 GB |
| RAM used | 750 MB (login screen, no desktop session) | 1.2 GB (idle logged-in desktop) |
| First update batch | 410 upgraded, 39 new, 1,189 MB, 12 min 6 s | |
| Windows App Support | 303 packages, 407 MB download, 2,057 MB on disk, 12 min 8 s | |
| First Timeshift rsync snapshot | 17 GB, 10 min 29 s | |
| Boot to graphical target (automatic login on) | 27.0 s (3.65 s kernel, 23.4 s userspace) | |
Windows App Support is the biggest single item in the extra 8.7 GB: about 2 GB of apt packages plus 3.4 GB of Flatpak runtimes, roughly 60% of the growth. The first update batch took the partition from 9.3 GB to 12 GB on its own. So skip Windows App Support if every app you need has a native version. The two memory figures are not a like-for-like comparison, since the fresh number was taken at the login screen before any desktop session existed. In the 27 second boot, 21.7 s is plymouth-quit-wait.service, the boot splash waiting for the login screen to take over, so run systemd-analyze blame on your own hardware before you judge the boot time. On a 64 GB laptop SSD this setup still leaves plenty of room, as long as Timeshift lives on another drive. If you are still deciding between distros, our Linux Mint post-install checklist and Ubuntu Desktop setup guide show the same work on the two other common choices for Windows switchers.