Here is the checklist to turn a vanilla Fedora set-up into something optimized for my workflow:

  • Install nvim
  • Accelerate dnf downloads
  • Enable rpm fusion free and non-free repos
  • Enable Flathub
  • Install Timeshift for BTRFS snapshotting
  • Install alacritty terminal emulator
  • Change the shell to zsh and setup oh-my-zsh
  • Install GPU video acceleration packages
  • Tweak Firefox
  • Install Sway Window Manager
  • Install applications for Sway

Install nvim

Open gnome terminal and install nvim with the following:

$ sudo dnf install nvim

Copy the .vimrc file from my dotfiles to your home directory.

Copy the nvim folder from my dotfiles to your .config directory. The init.vim files will guide nvim to use the .vimrc found in the home directory.

Accelerate dnf downloads

dnf is the fedora command for package management on Fedora Linux.

$ sudo dnf check-update // check for update
$ sudo dnf upgrade --refresh // to check for update and upgrade packages
$ sudo dnf install <pkg> // to install packages
$ sudo dnf remove <pkg> // to remove packages

The default settings for dnf is slow. You can speed things up by enabling default downloads in the dnf.conf file.

$ sudo nvim /etc/dnf/dnf.conf

Add the following line to the bottom of the file:

max_parallel_downloads=10
fastestmirror=True

Now your dnf downloads should be much faster. You can perform a

$ sudo dnf upgrade --refresh

Enable RPM fusion free and non-free repos

Go to this link using the Firefox browser. Install both the Free and NonFree repos for Fedora 34.

Enable Flathub

Go to this link. Download and install the “Flathub repository file”. Your software installer application will now be updated with the repos from flathub, enabling your to download flatpak applications like Discord, Zoom, Skype, Steam etc.

Install Timeshift for BTRFS snapshotting

Using the Software application, install Timeshift. Run the application and go to settings and choose BTRFS instead of RSync. Enable backups for daily, weekly, and on boot. This ensures that you always have a recent snapshot to backup to. Try making a backup, then install an application (obs?), then restore from the snapshot you just made. This is to ensure that your system can indeed restore from a snapshot and that your fedora install went well. If you system boots and your newly installed application (e.g. obs) cannot be found, it means that you have successfully restored back to the snapshot. You can open Timeshift again to verify that you indeed restored from a snapshot.

Note that you can always delete a snapshot, even those that you just restored from.

Install alacritty terminal emulator

$ sudo dnf install alacritty

Copy over my alacritty configs from my dotfiles

Change the shell to zsh and setup oh-my-zsh

Install zsh

$ sudo dnf install zsh 

Change default shell

// change shell
$ grep <user> /etc/passwd
$ chsh -s $(which zsh)
$ grep <user> /etc/passwd

where <user> is your user. You can get your user by using

$ whoami

Install oh-my-zsh

$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Install the following plugins for oh-my-zsh:

# zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

Configuring .zshrc: Just copy over my .zshrc from my dotfiles OR just include the following to your plugins:

plugins=(
	git
	dnf
	zsh-syntax-highlighting
	zsh-autosuggestions
)

then source your modified .zshrc file with

source ~/.zshrc

Install GPU video acceleration packages

Install intel-based packages for video acceleration. AMD users please do not do this.

$ sudo dnf install ffmpeg libva libva-utils libva-intel-driver intel-gpu-tools

Tweak Firefox

Open Firefox. Go to about:config. Change the following settings:

layers.acceleration.force-enabled = TRUE
gfx.webrender.all = TRUE
media.ffmpeg.vaapi-drm-display.enabled = TRUE
media.ffmpeg.vaapi.enabled = TRUE
media.rdd-process.enabled = FALSE

Install Sway Window Manager

$ sudo dnf install sway waybar wofi

Copy over my ~/.config/{sway,waybar,wofi} folders from my dotfiles to your .config folder.

Install applications for Sway

Install a polkit authenticator

$ sudo dnf install lxpolkit 

Install Insync (optional)

Go to Insync and follow the instructions for Fedora 34. Note that this service requires payment and you can only link one account permanently. However, it is the best linux file-sync service.

Install Screenshot tools

$ sudo dnf install slurp grim

Brightness controls

$ sudo dnf install brightnessctl

Fonts

$ sudo dnf install jetbrains-mono-fonts-all

Use Sway

Log out from Gnome. In the login screen, when entering your password, there is an desktop selector on the bottom right. Choose sway, enter your password, and be welcomed by a new Wayland-based tiling window manager.

Refer to my guide on how to use the Sway Window Manager in the future.