Fedora Workstation is a desktop Linux distribution developed by the Fedora Project, which by default supports modern features like Wayland, Flakpak, etc.
This guide tries to be a developer-focused and beginner-friendly tour of the steps I take while setting up Fedora. Tested on Fedora 38, which comes with GNOME 44 and Linux Kernel 6.2.
You can pick and omit any step as you like. This is simply how I configure a my system. Have fun 😄.
- Download Etcher.
- Download Fedora 38 ISO.
- Verify download.
# cd to location of iso
cd ~/Downloads
# Download checksum file
curl -O https://na.edge.kernel.org/fedora/releases/38/Workstation/x86_64/iso/Fedora-Workstation-38-1.6-x86_64-CHECKSUM
# Import Fedora's GPG key(s).
curl -O https://fedoraproject.org/fedora.gpg
# verify the checksum file is valid
gpgv --keyring ./fedora.gpg Fedora-Workstation-38-1.6-x86_64-CHECKSUM
# verify checksum matches
sha256sum -c Fedora-Workstation-38-1.6-x86_64-CHECKSUM
- Flash ISO on USB using Etcher.
- Connect USB to target device, and boot from USB.
- Follow installation process and restart.
- Create user, set password, connect to network, etc.
- Edit
/etc/dnf/dnf.conf
for faster downloads.
echo "max_parellel_downloads=10" | sudo tee -a /etc/dnf/dnf.conf
echo "fastestmirror=True" | sudo tee -a /etc/dnf/dnf.conf
sudo dnf check-update
sudo dnf update --refresh -y
sudo fwupdmgr refresh --force
sudo fwupdmgr update
reboot
sudo dnf install \
https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install \
https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install chromium -y
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.mozilla.Thunderbird -y
flatpak install flathub org.videolan.VLC -y
flatpak install flathub com.mattjakeman.ExtensionManager -y
- Make zsh default shell.
# check current shell
grep $USER /etc/passwd
# install zsh, chsh and change shell to zsh
sudo dnf install zsh util-linux-user sqlite -y
chsh -s $(which zsh)
# verify current shell
grep $USER /etc/passwd
# switch user
su - $USER
- Complete zsh setup (TODO).