destination · Fedora KDE Plasma desktop
edition swap, not a distro swap — the other legs of this route argue that out
01
Master caution
items that do not cross over
⚠ Master caution
Four lamps stay lit no matter which distro you pick. Every one of them needs a named escape hatch before departure.
NO-GO · OFFICE
Desktop Office & VBA
There is no native Linux Office; the web apps are the only supported route, with no VBA, no add-ins, no offline, and degradation on large workbooks [3][4]
NO-GO · CALENDAR
Native Outlook calendar
Thunderbird 145+ speaks Exchange for mail only — calendar and contacts are roadmap, Graph is unimplemented [5]
NO-GO · DESIGNERS
WPF / WinForms designers
Rider edits XAML but ships no visual designers, and those apps only run on Windows anyway [6][17]
CAUTION · COMPLIANCE
Admin & compliance tooling
SQL Server Agent stays in Windows-only SSMS [1]; Belgian eID dies under any Snap or Flatpak browser [7]
02
Load manifest
rated by what happens when you try
Priority cargo first — the six pieces that carry the working day. Then the full manifest: what boards, and what gets left at the gate for the Windows partition.
IDE · replaces Visual Studio
ASP.NET, libraries, tests, containers, .NET 10 / C# 14. Free non-commercially; a paid licence for work [16]
boards ✓
documents you author
OOXML is its native internal format, not an import filter — best .docx/.xlsx fidelity for files you trade with Windows colleagues [8][9]
boards ✓
the office-worker layer
The only officially supported route on Linux — and your primary mail client, since Outlook Web is the one thing that keeps working [3]
boards ⚠
mail · on a clock
Native Exchange with OAuth2 [14] — but it rides EWS, which Microsoft starts blocking 1 Oct 2026 [15]
boards ⚠ expiring
corporate SSL VPN
SSO, MFA, YubiKey on top of OpenConnect, which covers AnyConnect, GlobalProtect, FortiGate and F5 [24][25]
boards ⚠ reimplementation
desktop UI, going forward
New cross-platform work here; Avalonia XPF lifts an existing WPF app across — commercial, and a port rather than a recompile
boards ⚠
boarding Crosses over
drop-in, or with one caveat you will hit
SQL Server → Docker container
Supported on x86-64 Linux hosts and
faster than Windows; emulation on ARM is untested and unsupported
[2]
Microsoft's own designated replacement: schema compare, schema designer, DACPAC/BACPAC, Query Profiler
[1]
All cross-platform, all fine
[18]
IIS + inetmgr → Kestrel behind nginx/Caddy, or your existing Compose
The direction the platform moved anyway
Teams desktop → Teams PWA
Microsoft retired the Linux Electron client in Dec 2022
[11]; PWA install is
Edge/Chrome only, not Firefox [12]
PowerShell 5.1 → PowerShell 7 native
Get-WmiObject is gone and the CIM cmdlets were never ported off Windows — anything WMI, registry, AD or COM stays behind
[19]
Photopea has the best PSD fidelity of the free tools; fine for dev-adjacent work, not an agency workflow
[20]
OOXML is a conversion here, so complex styling and layout drift
[8]
Belgian eID reader → official eid-mw + eid-viewer
Supported on Debian 12/13, Ubuntu 24.04/26.04 LTS, Mint, Fedora 43/44, RHEL 10, openSUSE Leap 16 — readers are CCID-class and need no vendor driver
[26]
Activate it
while still on Windows; the card reader then becomes a fallback rather than a dependency
[27]
Canva made Affinity free and unified in 2025 but ships Windows/macOS only
[21]; Linux is unofficial Wine-in-a-box
[22][23]
left at the gate Stays on Windows
needs a named hatch, or a partition
Excel VBA macros & Power Query
LibreOffice's converter and
Option VBASupport 1 are partial by design — anything touching the Excel object model, ActiveX or
Application. fails, and OnlyOffice doesn't try (its macros are JavaScript)
[10][8]. Power Query has no equivalent — move the ETL to Python or SQL
SQL Server Agent & classic administration
The real SQL gap. Microsoft deliberately keeps Agent in Windows-only SSMS. Job scheduling → RDP, VM, or T-SQL against
msdb [1]
Azure Data Studio
Retired 28 February 2026 — no updates, no security fixes. Do not build on it
[1]
.NET Framework 4.x projects
Don't build and don't run on Linux. Legacy Framework work = Windows VM
WPF / WinForms visual designers
EnableWindowsTargeting=true lets CI
build them on Linux — it does not let you run or design them
[17]
Outlook calendar & contacts
Nothing native. Outlook Web is the answer, not a workaround
[5]
After Effects · Acrobat Pro forms & redaction
Premiere has a native answer in DaVinci Resolve; these two do not
Posture-checked vendor VPN clients
OpenConnect is a reimplementation — if the security team mandates the vendor client with posture checking, you lose
[24]
eID in a sandboxed browser
Belgian landmine. Snap and Flatpak confinement blocks the PKCS#11 module, and Ubuntu's default Firefox
is a Snap — so eID is broken out of the box until you install a native browser
[7]
Practical rule
Documents you author → OnlyOffice. Documents with macros or Power Query that someone else owns → Windows VM or Cloud PC. Don't try to port a business-critical macro workbook; it is the single most common reason a switch reverses.
03
Fuel & load sheet
escape hatches, ranked by what they cost
| Hatch | Good for | Cost / caveat | Weight |
| Web app |
80% of the office layer — M365 web, Outlook Web, Photopea |
Free, zero maintenance, no offline, no macros [4] |
light |
| Wine / Bottles / CrossOver |
Office 2016 and older, Affinity, small vendor utilities |
Office 365 / 2021 / 2024 don't work reliably — click-to-run installers defeat Wine, and Outlook/OneDrive/OneNote are broken or absent [28] |
medium |
| WinApps / WinBoat |
Modern Office, Access, any single stubborn Windows app |
Individual Windows windows appear on your Linux desktop over RemoteApp/RDP with MIME and menu integration — far higher compatibility than Wine, at the price of running a Windows VM [29] |
heavy |
| Full VM under KVM |
Visual Studio proper, SSMS, .NET Framework, posture-checked VPN |
Best hypervisor on Linux: VirtIO, low overhead, real PCI passthrough. VirtualBox's 3D and passthrough are markedly weaker [30] |
heavy |
| GPU passthrough (VFIO) |
Near-native graphics inside the VM |
Single-GPU passthrough takes your GPU away from the host — the Linux desktop goes dark until the VM shuts down, on top of fiddly IOMMU/vBIOS setup [31] |
overweight |
| Windows 365 Cloud PC |
The compliance or legacy app you touch monthly |
Any HTML5 browser, no client needed [32]. Business runs ~$28–$56/user/month after the May 2026 cut; Enterprise starts near $31 and scales past $120 [33] |
recurring |
| Keep a Windows partition |
Everything above, at zero recurring cost |
Windows 11 is fine. On Windows 10, support ended 14 Oct 2025; consumer ESU (settings sync, 1,000 Rewards points, or $30) runs until the programme closes 12 Oct 2027 [34] |
disk only |
Selected hatch
For this profile: dual-boot Windows for Visual Studio designers, SSMS Agent and macro workbooks — and don't bother with GPU passthrough.
04
Weight & balance
where the data is allowed to sit
⚠ Master warning — Dropbox constrains your filesystem layout
The Linux client tracks files through extended attributes and supports only unencrypted ext4 for the sync folder [41]. This is the sharpest constraint in the whole migration:
- The Dropbox folder cannot live on NTFS, exFAT, btrfs or ZFS. If you were planning btrfs snapshots, keep at least one ext4 volume.
- ext4 inside a LUKS container is fine — LUKS is block-level and invisible to Dropbox. ext4's own file-based encryption (
fscrypt) is not [41].
- It also needs an AppIndicator-capable tray — GNOME requires an extension [42].
NTFS — read your old data, don't live on it
- The in-kernel
ntfs3 driver has a track record of freezes and corruption; ntfs-3g is slower and safe [39].
- Treat NTFS partitions as an archive to drain, then convert to ext4/btrfs once the data is verified elsewhere.
exFAT — the shared partition, with a catch
- Native read-write kernel support, works from both OSes [40].
- No POSIX permissions and no extended attributes — which is exactly why Dropbox can't use it.
05
Crew documents
carry these across in this order
01
SSH keys
Copy ~/.ssh, then chmod 700 ~/.ssh and chmod 600 ~/.ssh/id_*. Wrong permissions are the #1 "my key doesn't work".
02
GPG
gpg --export-secret-keys --armor on Windows, gpg --import on Linux, then gpg --edit-key <id> trust. Never copy private-keys-v1.d between versions.
03
Browser profiles
Sign in to sync rather than copying profile directories across OSes. On Ubuntu, install a non-Snap Firefox if you need eID [7].
04
Dotfiles
Put them in a git repo with a bootstrap script now — you will run it at least twice during a staged migration.
05
itsme, 2FA, password manager
Verify recovery on your phone before wiping anything [27].
06
Type-rating credit
what your WSL2 hours actually buy
WSL2 makes you competent at the Linux userland and leaves you a beginner at the Linux desktop. Budget the learning time accordingly: the surprises will be graphical, audio and power management — not shell.
✓ hours that count
- bash, coreutils,
apt/dnf muscle memory
- Docker, Compose and CLI workflows — and they get faster: ~0.3s container start native vs ~1.2s on WSL2, container filesystem ops 3–5× quicker [43]
- Shell scripting, ssh, git, editors
- General comfort at the command line
✗ hours that don't
- The desktop stack: X11 vs Wayland, compositor, portals, PipeWire audio, theming — WSL2 taught you none of it
- Hardware: printers, Bluetooth, webcam, sleep/resume, fingerprint readers, monitor hotplug, GPU drivers
- Networking: WSL2 defaults to NAT and is isolated from the host stack; native Linux gives you bridged/host networking and real interfaces [44]
- USB/GPU passthrough, kernel modules, init-system and system-wide tinkering [43]
07
Departure sequence
four phases, two hard gates
00
WalkaroundInventory · still on Windows · zero risk
½ day
List every app you opened in the last 90 days and mark each ✓ / ⚠ / ✗ against the manifest above. Anything ✗ must have a named hatch from the load sheet before you go further.
- Print the BitLocker recovery key — on paper, not on the machine
- Activate itsme while a working Windows box is still in front of you
- Push dotfiles to git with a bootstrap script
- Export GPG secret keys; verify 2FA recovery on your phone
- Decide where the Dropbox folder will live — it needs its own unencrypted ext4 volume
what takes over the boot path in phase 02
01
Live USBHardware test · nothing written to disk
2 evenings
Boot the candidate distro from USB without installing. This tests hardware — the failure mode you cannot fix later by changing software.
- Wi-Fi and Bluetooth work without hunting for firmware
- External monitor at the right resolution and refresh; laptop scaling readable
- Suspend and resume, twice — lid close, lid open
- Audio out and mic in, plus headset switching
- Teams PWA screen share picks up a window and a full screen [13]
- Webcam in a browser call
- Trackpad gestures and fn-keys — brightness, volume
phase 01 hardware · no partitions touched
Gate 1 · GOall seven must pass
Screen sharing is
the recurring Linux-Teams failure: missing or misconfigured
xdg-desktop-portal/PipeWire leaves the picker empty or crashes the browser, and the Wayland-vs-Xorg session choice changes the outcome
[13]. Test it on day one, not week three.
Fail any item → change distro or kernel version and re-run Gate 1. Do not proceed to a partitioning phase on hardware that doesn't work from USB.
07a
NOTAMs
read before you touch a partition table
NOTAM A0135/26 · BITLOCKER
Recovery-key prompt on repartition
Windows 11 24H2 can auto-enable BitLocker even on Home. Repartitioning or a bootloader change trips a recovery-key prompt
[35].
actionPrint the key. Suspend or disable BitLocker before touching partitions.
NOTAM A0136/26 · FAST STARTUP
Shared ESP damage on hibernate
Windows leaves NTFS hibernated and Linux refuses read-write mounts. Worse, hibernating one OS then booting the other can
damage a shared EFI System Partition [36].
actionDisable Fast Startup. Never hibernate in a dual-boot setup.
NOTAM A0137/26 · ESP SIZE
100 MB ESP fills up
Windows ships a ~100 MB ESP; GRUB or systemd-boot plus a couple of kernels and initramfs images fill it
[37].
actionTarget ≥ 260 MiB, 512 MB is comfortable. Reuse the existing ESP — never reformat it
[36].
NOTAM A0138/26 · INSTALL ORDER
Windows overwrites the bootloader
Windows installers overwrite the bootloader and don't detect Linux; Linux installers detect Windows and chain-load it
[36].
actionWindows first, Linux second. Always.
NOTAM A0139/26 · RTC SKEW
Clock jumps 1–2 h per reboot
Linux writes UTC to the hardware clock; Windows reads it as local time
[38].
actiontimedatectl set-local-rtc 1, or set Windows to UTC. Fix it once or it erodes your patience daily.
NOTAM A0140/26 · SECURE BOOT
Unsigned third-party modules
NVIDIA and VirtualBox kernel modules need signing under Secure Boot
[35].
actionEnroll a MOK key during install — or disable Secure Boot, accepting that it also disables BitLocker's TPM unseal.
02
Dual bootReal work on Linux · fully reversible
4 weeks
Shrink Windows from inside Windows (Disk Management), leaving ≥ 80 GB for Linux plus a separate /home. Suspend BitLocker, disable Fast Startup, reuse the ESP, install Linux second [36][35]. Fix the RTC immediately [38]. Put /home — or at minimum the Dropbox folder — on ext4 [41].
Then do real work on Linux, and log every reboot into Windows and why. That log is the instrument you read at Gate 2 — not your mood.
phase 02 · GRUB chain-loads the alternate
Gate 2 · GO / NO-GOthe checkpoints that decide whether it sticks
- Full .NET solution builds, tests run, and the debugger hits breakpoints in Rider
- Docker and Coolify deploys work end to end
- SQL Server container up, MSSQL extension connects, schema compare works [1][2]
- Corporate VPN connects and survives a sleep cycle [24]
- eID reads your card in a non-sandboxed browser and a real government or bank flow completes [26][7]
- Dropbox reports "Up to date", not a filesystem warning [41]
- You joined a Teams meeting, shared a screen and presented — twice
- Printing and scanning work, if you need them
- Windows reboot log ≤ 2 in the final week, every entry mapping to a known ✗ item
Fail any of the first six → fix or abandon; those are not things you learn to live with. Reboots > 2/week for reasons that aren't on your ✗ list → the switch is not ready.
03
CommitAfter Gate 2 · Windows stays, shrunk
ongoing
Don't wipe Windows. Shrink it to ~80–120 GB and keep it for Visual Studio designers, SSMS Agent, macro workbooks and any posture-checked VPN. Give Linux the rest.
- Convert one reclaimed NTFS partition to ext4/btrfs once you've verified the data is elsewhere [39]
- Booting Windows less than monthly after three months → convert it to a KVM guest and reclaim the disk [30]. A VM you can snapshot beats a partition you have to reboot into
- Keep the reboot log running — it is your only honest signal about whether the alternate is still needed
phase 03 · reclaiming the disk
Abort · go-around
If at any point you're spending more than ~2 hours a week fighting the desktop rather than working, go back to Windows for the quarter and retry after the next LTS or kernel release. The migration is cheap to repeat and expensive to force.
08
Filed documents
44 sources · the load-bearing ones
09
Other legs of this route
seven angles filed under one expedition