This is not a 2015 post-install list. The Fedora 44 ecosystem in May 2026 ships modern terminals (Ghostty, Alacritty, WezTerm, Kitty, Tabby), AI coding agents in your shell (Claude Code, Gemini CLI, OpenCode), a Wayland-native GNOME 50 desktop, dnf5 + RPM 6 underneath, and a full menu of alternative desktops (KDE Plasma 6.6, Cinnamon, Budgie 10.10) one dnf install away. This guide rebuilds a fresh Fedora 44 Workstation install into a serious 2026 developer machine in about an hour.
The 43 steps across 12 sections run from the system foundation and package repos through terminals, shells, AI coding CLIs, browsers, containers, desktops, remote access and backup. Every command was executed on a real Fedora 44 Workstation install (GNOME 50.1 at test time, while Fedora 44 updates in November 2026 bring GNOME 50.6), and the screenshots come from that live desktop. If you are already on Fedora 45, follow the Fedora 45 post-install checklist instead, because its repository and desktop steps target the newer release.

Close the welcome tour once it appears. Everything below starts from the plain GNOME desktop it leaves behind.
Section 1: Foundation
1. Pull all updates and reboot
Anaconda’s ISO is days or weeks behind by the time you boot it. First task is full sync:
sudo dnf upgrade --refresh
sudo systemctl reboot
The reboot matters because a first update on a fresh install usually pulls a newer kernel, and nothing below should be configured against the old one.
Every dnf command here, plus versionlock, history undo and offline updates, is in our DNF5 commands cheat sheet.
2. Set the hostname and UTC clock
Give the machine a real name so logs, SSH banners, and Distrobox containers know where they live. UTC keeps things sane on a multi-OS box:
sudo hostnamectl set-hostname desktop.example.com
sudo timedatectl set-local-rtc 0
sudo timedatectl set-timezone Africa/Nairobi # or your zone
timedatectl status
In the status output, RTC in local TZ should read no. A dual-boot box with Windows is the one case where that line causes clock drift between the two systems.
3. Configure chrony NTP
Fedora ships chrony by default. Confirm it is running and synchronizing:
sudo systemctl enable --now chronyd
chronyc tracking
chronyc sources
If you want to point at internal NTP servers, edit /etc/chrony.conf and replace the pool directives with your server <hostname> iburst lines.
4. Update firmware with fwupdmgr
Modern laptops (Dell, Lenovo, Framework, System76, HP, Star Labs, TUXEDO) ship BIOS, EC, SSD, and dock firmware on LVFS. Fedora’s fwupd wires the whole pipeline together. Docks are the accessory most likely to misbehave on Linux, so if you are shopping for one, the Thunderbolt 4 docks that work well on Linux is the shortlist worth starting from:
sudo fwupdmgr refresh --force
sudo fwupdmgr get-devices
sudo fwupdmgr get-updates
sudo fwupdmgr update
UEFI and SSD firmware updates take effect on the next boot, so keep the laptop on AC power when fwupdmgr asks to restart.
5. Configure firewalld
firewalld is on by default, and Fedora Workstation puts your network interfaces in its own FedoraWorkstation zone, which is the default zone the commands below change. Open up the services you actually need (KDE Connect for phone integration, mDNS for service discovery, optionally Samba):
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-service=kdeconnect
sudo firewall-cmd --permanent --add-service=mdns
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
The services: line of that listing should now include kdeconnect and mdns. If either is missing, rerun its add-service line and reload again.
6. Configure DNS-over-TLS via systemd-resolved
Fedora uses systemd-resolved as the stub resolver. It forwards plaintext DNS to whatever DHCP hands out unless you configure DoT. Point it at Cloudflare’s security DNS:
sudo mkdir -p /etc/systemd/resolved.conf.d
printf '%s\n' '[Resolve]' \
'DNS=1.1.1.2#security.cloudflare-dns.com 1.0.0.2#security.cloudflare-dns.com' \
'DNSOverTLS=yes' \
'DNSSEC=allow-downgrade' \
'Domains=~.' | sudo tee /etc/systemd/resolved.conf.d/99-dns-over-tls.conf > /dev/null
sudo systemctl restart systemd-resolved
resolvectl status
Look for +DNSOverTLS on the Global protocols line and both Cloudflare servers under DNS Servers. Captive portals in hotels and airports break with strict DoT, so drop this file temporarily when you hit one.
Section 2: Package ecosystem
7. Enable RPM Fusion (free + nonfree)
The most important repo on a workstation. Adds codecs, NVIDIA drivers, Steam, VLC, OBS, and dozens of others. One-liner:
sudo dnf install \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
Full walkthrough including the ffmpeg-free to ffmpeg swap, the multimedia group, OpenH264 from Cisco’s repo, and hardware video acceleration setup is in the companion guide on enabling RPM Fusion and multimedia codecs for Fedora 44 in this same series.
8. Enable the Fedora Third-Party Repository
This is a curated set of upstream RPMs that Fedora cannot ship (Chrome, Steam, the Cisco OpenH264 codec). Enable from GNOME Software (Menu β Software Repositories β Third Party) or via CLI:
sudo dnf install -y fedora-workstation-repositories
sudo dnf config-manager setopt google-chrome.enabled=1
sudo dnf config-manager setopt rpmfusion-nonfree-nvidia-driver.enabled=1
sudo dnf config-manager setopt fedora-cisco-openh264.enabled=1
Chrome and the NVIDIA driver repo come from the third-party set, and OpenH264 is usually on already, so that line just makes sure. The rest of the third-party set stays disabled until you switch it on the same way.
9. Add Flathub for Flatpak apps
Flatpak is preinstalled. Add the Flathub remote so GNOME Software shows the full app catalog:
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak remotes
The remotes list should now show flathub next to the Fedora remote, and GNOME Software picks up the full catalog on its next refresh.
Section 3: Modern terminal stack
The default gnome-terminal was retired in favour of GNOME Console (kgx), which is fine for basic shell work but limiting for serious developers. In 2026 the high-performance terminal scene has shifted to GPU-accelerated emulators. Install one (or several) and pick a daily driver:
10. Ghostty: Mitchell Hashimoto’s Zig terminal
Ghostty is fast, native, and ships in a community Fedora COPR repo. Enable and install:
sudo dnf install -y dnf-plugins-core
sudo dnf copr enable scottames/ghostty
sudo dnf install ghostty
The kind of output you should see once you launch a GPU-accelerated terminal and combine it with modern Rust replacements for ls, cat, and fastfetch:

That is Alacritty running fastfetch with eza and bat, and the same commands render identically in the other terminals below.
11. Alacritty: minimal GPU terminal
Alacritty is the leanest option, pair it with tmux or zellij for tabs and splits:
sudo dnf install -y alacritty
Alacritty has no tab bar at all and keeps its settings in one TOML file under ~/.config/alacritty/, which is exactly why the multiplexer pairing matters.
12. Kitty: graphics-protocol-capable
Kitty is the terminal that pioneered the inline-image (Kitty graphics protocol) standard now adopted by many tools (ranger, nvim, image viewers). Heavier than Alacritty, lighter than WezTerm:
sudo dnf install -y kitty
Kitty reads ~/.config/kitty/kitty.conf, and kitty +kitten themes gives you a theme picker without editing that file by hand.
13. WezTerm: Lua-scriptable workstation terminal
WezTerm is configured in Lua, supports tabs/splits/key tables, and has SSH multiplexing built in. WezTerm is not in Fedora’s default repos. The maintainer publishes a Copr repo:
sudo dnf copr enable -y wezfurlong/wezterm-nightly
sudo dnf install -y wezterm
The Copr name says nightly, so expect frequent package updates. WezTerm looks for its config in ~/.wezterm.lua.
14. Tabby: cross-platform with built-in SSH
Tabby is a graphical terminal with a connection manager, SSH/serial/local tabs, ZMODEM support, and settings sync across machines. Install via the upstream packagecloud RPM repo:
curl -s https://packagecloud.io/install/repositories/eugeny/tabby/script.rpm.sh | sudo bash
sudo dnf install -y tabby-terminal
Tabby is an Electron app, so it uses noticeably more memory than the GPU terminals above. Its connection manager is what you pay that memory for.
15. Multiplexers: tmux and Zellij
Tmux remains the universal multiplexer for SSH sessions and ships in Fedora’s default repos. Zellij is the modern, batteries-included alternative with a visible status bar and a more discoverable keymap, available via a Copr repo:
sudo dnf install -y tmux
sudo dnf copr enable -y varlad/zellij
sudo dnf install -y zellij
Start zellij once and the bar along the bottom lists its key bindings, which is the main reason newcomers find it easier than tmux.
Section 4: Shells and prompts
16. Switch to Zsh and install Oh My Zsh
Bash is fine. Zsh is better for interactive work (smarter completion, globbing, prompt). Install zsh, switch your login shell, then bootstrap Oh My Zsh:
sudo dnf install -y zsh
chsh -s $(which zsh)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Log out and back in for the shell change to take effect. The Oh My Zsh installer drops you into a fresh zsh with the robbyrussell theme.
17. Install Powerlevel10k
Powerlevel10k is the most popular Zsh theme. Its first-run wizard walks you through colors, icons, and density:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
sed -i 's|^ZSH_THEME=.*|ZSH_THEME="powerlevel10k/powerlevel10k"|' ~/.zshrc
# install MesloLGS Nerd Font (required for icons)
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts && for s in Regular Bold Italic 'Bold Italic'; do
curl -L -o "MesloLGS NF $s.ttf" "https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20${s// /%20}.ttf"
done && fc-cache -fv ~/.local/share/fonts
Restart the shell with exec zsh and the Powerlevel10k wizard starts on its own. Rerun it any time with p10k configure.
18. Alternative: Starship cross-shell prompt
If you prefer one prompt that works in Bash, Zsh, Fish, and Nushell with sub-50ms startup, install Starship instead. The Fedora repos do not ship a starship package, so use the official installer:
curl -sS https://starship.rs/install.sh | sh
echo 'eval "$(starship init zsh)"' >> ~/.zshrc # for zsh
echo 'eval "$(starship init bash)"' >> ~/.bashrc # for bash
starship preset gruvbox-rainbow -o ~/.config/starship.toml
Only add the eval line for the shell you actually use. If Powerlevel10k is still active from step 17, disable it first, or the two prompts fight over the same line.
19. Fish shell with Oh My Fish (optional)
Fish is friendlier than zsh out of the gate (autocompletion, syntax highlighting, web-based config). Pair it with Oh My Fish for plugins:
sudo dnf install -y fish
curl -L https://get.oh-my.fish | fish
Fish is not POSIX compatible, so keep your bash scripts running under bash even if fish becomes the login shell.
20. Atuin: synced, searchable shell history
Atuin replaces ctrl-R with a fuzzy-search TUI and syncs your shell history end-to-end-encrypted across machines:
curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh
atuin register -u $USER -e [email protected] # optional, for sync
Open a new shell after the installer finishes so its hook loads, then press ctrl-R to search the imported history. Skip the register line if this is the only machine you care about.
Section 5: Modern CLI tools (replace the 2015 set)
The classic Unix tools (ls, cat, grep, find, du, top) are fine but the Rust-based replacements are faster, prettier, and more useful. Install them as a set:
sudo dnf install -y eza bat ripgrep fd-find zoxide fzf btop htop iotop-c \
nvtop du-dust duf ncdu fastfetch git-delta jq yq gh tldr neovim helix
# lazygit lives in a Copr (not the default Fedora repos):
sudo dnf copr enable -y atim/lazygit
sudo dnf install -y lazygit
The roles, briefly:
- eza (replaces
ls): coloured, sortable, with git status integration. - bat (replaces
cat): syntax-highlighted, line-numbered. - ripgrep (replaces
grep -r): order-of-magnitude faster, respects.gitignore. - fd (replaces
find): sane defaults, regex-friendly. - zoxide + fzf:
zjumps to frecent directories;fzfpowers fuzzy selection everywhere. - btop: gorgeous process/CPU/memory/disk monitor, replaces
top. - nvtop: GPU monitor for Intel/AMD/NVIDIA.
- dust + duf: friendlier
duanddf. - lazygit: terminal UI for git; delta: better diffs.
- gh: GitHub CLI; tldr: practical man-page summaries.
- neovim and helix: modern modal editors.

btop replaces top and htop in one package, with per-core load, memory, disk and network panes in a single view.
Section 6: AI coding agents in your terminal
The biggest change in developer tooling since the last Fedora release is the move of AI agents out of the IDE and into the shell. Three of them are worth installing.
21. Claude Code (Anthropic)
Anthropic ships an official installer script and an npm package. The CLI launches as claude and integrates with the official VS Code extension:
# Recommended: the official Anthropic installer
curl -fsSL https://claude.ai/install.sh | bash
# OR via npm (Node.js 20+ required)
sudo dnf install -y nodejs npm
sudo npm install -g @anthropic-ai/claude-code
claude --version
A version number back from claude --version confirms the install. The first interactive run asks you to sign in.
22. Gemini CLI (Google)
Open-source AI agent built around Google’s Gemini models. Distributed via npm (Node.js 20+ required):
sudo dnf install -y nodejs npm
npm install -g @google/gemini-cli
gemini --version
For more depth, see our Gemini CLI install and configuration guide.
23. OpenCode (model-neutral)
OpenCode is a model-agnostic terminal agent: point it at Anthropic, OpenAI, Google, Ollama, or anything OpenAI-compatible. Install via the upstream script:
curl -fsSL https://opencode.ai/install | bash
# or via npm:
npm install -g opencode-ai
opencode --version
If the shell reports opencode as not found, open a new terminal so the PATH change from the installer loads.
24. VS Code with AI extensions
Microsoft maintains a Fedora-friendly RPM repo. Install VS Code, then layer on the Claude Code and Gemini Code extensions:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
printf '%s\n' '[code]' \
'name=Visual Studio Code' \
'baseurl=https://packages.microsoft.com/yumrepos/vscode' \
'enabled=1' \
'autorefresh=1' \
'type=rpm-md' \
'gpgcheck=1' \
'gpgkey=https://packages.microsoft.com/keys/microsoft.asc' | sudo tee /etc/yum.repos.d/vscode.repo > /dev/null
sudo dnf install -y code
code --install-extension anthropic.claude-code
code --install-extension Google.geminicodeassist
Once VS Code, the modern terminals, and the modern CLI tools are all on the system, the Activities Overview gives you the bigger picture of what is running and where to launch from:

Press the Super key to reach that overview from anywhere, then start typing an app name to launch it.
Section 7: Browsers
Firefox is preinstalled. For everything else, three first-class Chromium-family options all ship Fedora RPM repos:
25. Brave Browser
Built-in ad blocker, Tor private windows, IPFS, crypto-optional wallet:
sudo dnf config-manager addrepo --from-repofile=https://brave-browser-rpm-release.s3.brave.com/brave-browser.repo
sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc
sudo dnf install -y brave-browser
With the repo in place, Brave updates through dnf like any other package.
26. Vivaldi
Power-user Chromium with built-in mail, calendar, feed reader, and the most configurable tab system on the market:
sudo rpm --import https://repo.vivaldi.com/archive/linux_signing_key.pub
sudo dnf config-manager addrepo --from-repofile=https://repo.vivaldi.com/archive/vivaldi-fedora.repo
sudo dnf install -y vivaldi-stable
The Vivaldi repo file works the same way, so a normal sudo dnf upgrade keeps it current.
27. Microsoft Edge
The only first-party browser that syncs with the Microsoft 365 ecosystem and integrates Copilot natively:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
printf '%s\n' '[edge]' \
'name=Microsoft Edge' \
'baseurl=https://packages.microsoft.com/yumrepos/edge' \
'enabled=1' \
'autorefresh=1' \
'type=rpm-md' \
'gpgcheck=1' \
'gpgkey=https://packages.microsoft.com/keys/microsoft.asc' | sudo tee /etc/yum.repos.d/edge.repo > /dev/null
sudo dnf install -y microsoft-edge-stable
All three browsers run side by side on Fedora 44 GNOME 50. Pick whichever fits your workflow; Brave on the fedoraproject.org homepage is what a fresh install looks like:

Set the default browser under Settings, Apps, Default Apps once you have picked one, so links from the terminal and other apps open there.
Section 8: Containers and dev runtimes
28. Podman 5 and Podman Compose
Podman is Red Hat’s daemonless, rootless-by-default Docker drop-in. Fedora 44 ships Podman 5.8 on a cgroups-v2-only base (legacy v1 support is gone). Most docker commands map to podman directly:
sudo dnf install -y podman podman-compose podman-docker
podman --version
podman info | head -20
The podman-docker package installs a /usr/bin/docker symlink so existing scripts and tools keep working unchanged.
29. Docker Engine (if you really need it)
Podman covers 95% of Docker use cases on Fedora. If you specifically need Docker Engine (e.g. for CI parity with a Docker-Engine-only platform), install from Docker’s official Fedora repo:
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager addrepo --from-repofile=https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
sudo usermod -aG docker $USER # log out and back in for group to apply
Full walkthrough including rootless mode and Compose: Install Docker on Fedora.
30. Distrobox and Toolbox: cross-distro dev containers
Run Ubuntu / Arch / Debian / openSUSE userlands as containers with full home directory integration. Essential when an upstream project’s instructions assume Ubuntu:
sudo dnf install -y distrobox toolbox
distrobox create --name ubuntu --image ubuntu:24.04
distrobox enter ubuntu
Inside the container your home directory is the same one the host uses, so files you create there show up on the host.
31. Nix package manager (new in F44)
Fedora 44 is the first Fedora release to package Nix natively, with proper systemd integration and SELinux policies:
sudo dnf install -y nix
sudo systemctl enable --now nix-daemon
sudo usermod -aG nix-users $USER # log out and back in
Group membership only applies to new logins, so log out before running nix commands as your own user.
Section 9: GNOME tweaks and extensions
32. Install GNOME Tweaks and Extension Manager
GNOME 50 hides hundreds of toggles behind Tweaks. Extension Manager (from Flathub) is more usable than the website:
sudo dnf install -y gnome-tweaks gnome-extensions-app
flatpak install -y flathub com.mattjakeman.ExtensionManager
GNOME Tweaks running on Fedora 44 Workstation, with the Mouse panel open. Files (Nautilus) and the Extensions Have Moved migration dialog are visible behind it after a couple of clicks through the Activities Overview:

Tweaks covers fonts, title bar buttons and startup apps. Extensions live in Extension Manager, which is where the next step picks up.
33. The short-list of GNOME extensions worth installing
Open Extension Manager and install:
- AppIndicator and KStatusNotifierItem Support: brings back tray icons for Slack, Discord, Steam.
- Dash to Dock or Dash to Panel: persistent dock / Windows-style taskbar.
- Blur My Shell: Wayland-native blur on the panel, overview, and dash.
- Caffeine: one-click do-not-sleep toggle.
- Just Perfection: granular UI toggles.
- Vitals: top-bar CPU temp, memory, network.
- Pop Shell (in Fedora repos as
gnome-shell-extension-pop-shell): tiling.
34. Install good coding fonts
JetBrains Mono, Cascadia Code, and Fira Code are the trio worth installing. All three are in Fedora repos:
sudo dnf install -y \
jetbrains-mono-fonts cascadia-code-fonts fira-code-fonts \
google-noto-sans-fonts google-noto-serif-fonts google-noto-emoji-fonts \
adobe-source-code-pro-fonts liberation-fonts
For Microsoft Office compatibility fonts (Arial, Times New Roman, Calibri):
sudo dnf install -y curl cabextract xorg-x11-font-utils fontconfig
sudo dnf install -y https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
That installer RPM fetches the font files from SourceForge while dnf runs, so it needs network access during the install.
Section 10: Alternative desktop environments
GNOME 50 is the Fedora Workstation default, but every other major desktop is one dnf environment install away. They install side by side and you pick at the GDM login screen.
35. KDE Plasma 6.6
Plasma 6.6 with the new Plasma Login Manager and Plasma Setup wizard:
sudo dnf environment install kde-desktop-environment
# log out, then pick "Plasma (Wayland)" from the gear menu on the login screen
GNOME stays installed next to it, so you can switch back from the same menu.
36. Cinnamon
The Linux Mint flagship desktop. Familiar, traditional, fast:
sudo dnf environment install cinnamon-desktop-environment
Cinnamon then appears as its own session on the login screen.
37. Budgie 10.10 (Wayland-native)
Budgie 10.10 made the switch from X11 to Wayland for Fedora 44, putting it on equal footing with GNOME and KDE:
sudo dnf group install budgie-desktop
Pick Budgie from the same session menu on the login screen.
38. Sway and Hyprland (tiling Wayland compositors)
For tiling Wayland workflows. Sway is i3-compatible and ships in Fedora’s default repos; Hyprland is the eye-candy choice and lives in a Copr:
sudo dnf install -y sway swaybg swayidle swaylock waybar grim slurp wofi
sudo dnf copr enable -y solopasha/hyprland
sudo dnf install -y hyprland
Both show up in the login screen session list. Sway reads ~/.config/sway/config and Hyprland reads ~/.config/hypr/hyprland.conf.
Section 11: Remote access
GNOME 50’s System Settings panel has first-class entries for both Remote Desktop (RDP) and Secure Shell now. The CLI commands below give you the same result; the panel gives you a one-toggle on/off:

Flip Remote Desktop or Secure Shell on in that panel if you prefer clicks over the commands that follow.
39. Harden the OpenSSH server
OpenSSH server is installed and disabled by default on Workstation. Enable, harden, and lock down:
sudo dnf install -y openssh-server
sudo systemctl enable --now sshd
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
# disable password and root login, restrict server host key types
printf '%s\n' 'PasswordAuthentication no' \
'PermitRootLogin no' \
'PubkeyAuthentication yes' \
'HostKeyAlgorithms ssh-ed25519,rsa-sha2-512' | sudo tee /etc/ssh/sshd_config.d/99-hardening.conf > /dev/null
sudo systemctl restart sshd
Test a key login from a second terminal before closing the current session, so a typo in the hardening file cannot lock you out.
40. GNOME Remote Desktop with RDP
GNOME 50 ships a built-in RDP server. Enable it system-wide so you can RDP from a Windows laptop or any RDP client:
sudo dnf install -y gnome-remote-desktop
sudo firewall-cmd --permanent --add-service=rdp
sudo firewall-cmd --reload
# generate TLS cert
sudo mkdir -p /var/lib/gnome-remote-desktop/.local/share/gnome-remote-desktop
cd /var/lib/gnome-remote-desktop/.local/share/gnome-remote-desktop
sudo openssl req -new -x509 -nodes \
-newkey ec:<(openssl ecparam -name secp384r1) \
-keyout tls.key -out tls.crt -days 3650 \
-subj "/CN=$(hostname)"
# configure system-wide RDP
sudo grdctl --system rdp set-tls-key /var/lib/gnome-remote-desktop/.local/share/gnome-remote-desktop/tls.key
sudo grdctl --system rdp set-tls-cert /var/lib/gnome-remote-desktop/.local/share/gnome-remote-desktop/tls.crt
sudo grdctl --system rdp set-credentials
sudo grdctl --system rdp enable
sudo systemctl enable --now gnome-remote-desktop
From Windows: open Remote Desktop Connection, point it at desktop.example.com:3389, accept the self-signed certificate, log in with your Fedora user. From another Linux box: install freerdp and run xfreerdp /v:desktop.example.com /u:jmutai.
Section 12: Backup and verification
41. Pika Backup (desktop) and Restic (server-style)
Pika Backup wraps borg with a GNOME-friendly GUI; Restic is the CLI for snapshot-style backups to cloud storage:
flatpak install -y flathub org.gnome.World.PikaBackup
sudo dnf install -y restic
Pika is a friendly GUI on top of borg backup. Restic is the CLI for snapshot-style backups to S3, B2, Google Cloud, REST servers, or a local disk.
42. Optimize boot
Two small wins for desktop installs. The first cuts 5-15 seconds off boot on machines that come up before DHCP resolves. The second skips Plymouth’s quit wait so GDM lands sooner. Both are reversible with systemctl enable:
sudo systemctl disable NetworkManager-wait-online.service
sudo systemctl disable plymouth-quit-wait.service
systemd-analyze blame | head -15
Compare the blame list before and after a reboot to see whether the change helped on your hardware.
43. Final verification
Confirm everything you just installed is actually there. The output below is from a real F44 Workstation after running the full list:

If any tool from the list is missing on your machine, go back to its step and rerun the install line.
Where to go next
Two follow-up articles in this Fedora 44 series build directly on what you just did: the deep dive on RPM Fusion and multimedia codec setup, and the side-by-side Fedora 44 vs Ubuntu 26.04 comparison. The NVIDIA driver and gaming-on-Fedora pieces come next in the series. For full release context, see what is new in Fedora 44. When you are ready to move this machine on, the Fedora 44 to 45 upgrade guide covers the jump.
For database work, the workstation that came out of this guide is ready for our MariaDB on Fedora install guide. For Docker-centric work, the Docker on Fedora install guide picks up from Section 8 above. If you have not installed Fedora 44 yet, the step-by-step install guide covers the Anaconda walkthrough; upgraders from Fedora 43 should follow the F43 to F44 upgrade guide.