Fedora

Things to Do After Installing Fedora 44 Workstation

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.

Original content from computingforgeeks.com - post 167683

Every command in this guide was executed on a real Fedora 44 Workstation install. Screenshots are from the live desktop. The 34 sections cover the system foundation, package ecosystem, modern terminal stack, shells and prompts, modern CLI tools, AI coding CLIs, browsers, container runtimes, GNOME tweaks, alternative desktops, and remote access.

Tested May 2026 on Fedora 44 Workstation (kernel 7.0.8-200.fc44, GNOME 50.1, dnf5 5.4.2.0)

Fedora 44 Workstation first boot welcome dialog GNOME 50

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

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

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:

sudo fwupdmgr refresh --force
sudo fwupdmgr get-devices
sudo fwupdmgr get-updates
sudo fwupdmgr update

5. Configure firewalld

firewalld is on by default in the public zone. 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

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
sudo tee /etc/systemd/resolved.conf.d/99-dns-over-tls.conf > /dev/null <<'EOF'
[Resolve]
DNS=1.1.1.2#security.cloudflare-dns.com 1.0.0.2#security.cloudflare-dns.com
DNSOverTLS=yes
DNSSEC=allow-downgrade
Domains=~.
EOF
sudo systemctl restart systemd-resolved
resolvectl status

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

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

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:

Alacritty terminal Fedora 44 fastfetch eza bat modern CLI tools

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

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

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

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

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

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

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

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

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

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: z jumps to frecent directories; fzf powers fuzzy selection everywhere.
  • btop: gorgeous process/CPU/memory/disk monitor, replaces top.
  • nvtop: GPU monitor for Intel/AMD/NVIDIA.
  • dust + duf: friendlier du and df.
  • lazygit: terminal UI for git; delta: better diffs.
  • gh: GitHub CLI; tldr: practical man-page summaries.
  • neovim and helix: modern modal editors.
btop process monitor running on Fedora 44 Workstation

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

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

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
sudo tee /etc/yum.repos.d/vscode.repo > /dev/null <<'EOF'
[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
EOF
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:

Fedora 44 Workstation GNOME 50 Activities Overview dock workspace

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

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

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
sudo tee /etc/yum.repos.d/edge.repo > /dev/null <<'EOF'
[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
EOF
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:

Brave browser Fedora 44 GNOME 50 fedoraproject.org Fedora 44 released

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

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

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:

GNOME Tweaks application Fedora 44 mouse settings extensions panel

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

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

36. Cinnamon

The Linux Mint flagship desktop. Familiar, traditional, fast:

sudo dnf environment install cinnamon-desktop-environment

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

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

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:

GNOME 50 Settings System panel Remote Desktop SSH Users Date Region

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 auth, allow only ed25519 keys
sudo tee /etc/ssh/sshd_config.d/99-hardening.conf > /dev/null <<'EOF'
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
HostKeyAlgorithms ssh-ed25519,rsa-sha2-512
EOF
sudo systemctl restart sshd

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

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:

Fedora 44 Workstation post install fastfetch firewalld flatpak gnome-tweaks

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.

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.

Related Articles

CentOS Install Monaco Editor – Browser based Code Editor for Linux Fedora How to use Fedora / RHEL 8 Modular Repository Vagrant Install Fedora on Physical Server / VirtualBox & Vagrant Git Install GitLab CE on CentOS 7 | Fedora 39/38/37/36/35

Leave a Comment

Press ESC to close