Fedora 37 post installation steps
Things I did after installing Fedora 37 on my workstation, or sort of ...
Table of contents
I use Fedora on my workstation to make my home and lab computers consistent with each other. This is a collection post installation steps which I had followed. If you plan to use Fedora sometime in the future and are looking for a guide, you can use this one as a reference.
Please keep in mind that the steps mentioned here work on the current release version, which is 37. Fedora has a 6 months release cycle so it's kinda difficult to write a guide for every new release. However, I've been following these steps since Fedora 33 with very minor changes so these shouldn't differ much in the future releases.
Update system
First thing to do after installing every linux distro, update your system.
sudo dnf update
Add Windows to grub for dual boot (For dual booting)
Fedora uses grub2 and it works differently than on ubuntu or other distros. You can't just run grub update and call it a day.
Run os-prober
to check for other os entries.
sudo os-prober
Update grub entries
sudo grub2-mkconfig -o /etc/grub2.cfg
sudo grub2-mkconfig -o /etc/grub2-efi.cfg
Edit grub timeout
Edit /etc/default/grub
and change GRUB_TIMEOUT
to the desired value. The default is 5 (5 seconds). (Edit with sudo)
Mask systemd-oomd
I'll never be able to justify the existence of such an aggressive OOM strategy in an operating system. While it may have been added with with good intention (to keep your system from running out of memory for OS critical tasks), it's a nuisance in half. I'd recommend keeping it masked if you don't want your resource heavy programs to be terminated randomly.
sudo systemctl mask system-oomd
Additional software repos
rpm-fusion
There are two repos to enable. The one with free software and the other with proprietary software. If you happen to have an Nvidia GPU or some hardware part that needs proprietary driver, you'll need the second one. Why not the free Nvidia driver? Because it's bad. Real bad. Apple Maps bad. Period.
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
Setting up CUDA for Nvidia GPUs
sudo dnf install xorg-x11-drv-nvidia
Once installed, reboot and check with nvidia-smi.
Note that this does not come with cudnn or nvcc. To have those, refer to this guide on rpmfusion.
Flathub
A lot of applications are packaged as Flatpaks in Fedora. Especially if you switch to something like Fedora Silverblue or Kinoite, everything is a Flatpak. It's enabled by default in Fedora, only that you've to add Flathub as a source of Flatpak apps. (Flathub gives you access to Discord, Signal, Telegram etc.)
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak update
Make dnf faster
Unlike apt or zypper or pacman, dnf doesn't look for the fastest mirror to download packages from by deafult. You've to explicitly tell it to do so.
Add the following lines to your /etc/dnf/dnf.conf
file. (Edit with sudo)
fastestmirror=True
# change this number to 5 or 10 if you don't have a very fast
# internet connection
max_parallel_downloads=20
defaultyes=True
Improved fonts
Fedora maintainers have a strict policy of shipping only free and open source material with the distro. For this, you may miss out on some proprietary fonts used in many websites. Luckily you can enable them with this fedora community package package or copr package.
sudo dnf install mscore-fonts-all -y
Command Line Utilities
Which ones to install? Well that's upto you. I personally prefer btop for monitoring the system and nvidia-smi to check the GPU usage over time.
sudo dnf install -y btop
To run nvidia-smi in a loop:
# refereshes every 1 second
watch -n 1.0 nvidia-smi
Or you can use nvtop
sudo dnf install -y nvtop
Default Shell
The default shell on most linux distros is bash and Fedora is no exception here. I personally prefer zsh with oh-my-zsh and spaceship-prompt. Some people like the fish shell. It's completely upto you actually. Pick the one that better suits your workflow.
Enable night light
If you've never used this thing yet on other operating systems you should now. You'll appreciate it in the long run. On Gnome : go to Settings > Displays > Night Light and set it up. On KDE, you can search for Night Light and it'll show you the appropriate setting.
Display Scaling
Fedora for somewhat reason doesn't support fractional scaling for Gnome. If you have a high resolution display, your best bet is to change the font scaling from the Tweaks app from above. Go Tweaks > Fonts > Scaling Factor and pick an appropriate value. The default is 1.00. Depending on your screen resolution, choose the one that you find most comfortable.
On KDE, you can do that from Settings > Hardware > Display Configuration > Global Scale.
Writing Bangla
Install OpenBanglaKeyboard - openbangla.github.io Don't forget to install the fonts from omicronlab.com/bangla-fonts.html !
To install fonts, you can either use Font Manager in Gnome or the System Font Settings on KDE.
Extras (advanced)
You better know what you're doing before you run anything in this section! :P
Enable SSH
sudo dnf install -y openssh-server
sudo systemctl start sshd.service
sudo systemctl enable sshd.service
SSH Security
If you're planning to expose your system to be connected from external networks via SSH, you may want to harden the security of your system. You can follow this guide from CTT.
Containers
Fedora being the upstream for RHEL, prefers that you use Podman instead of Docker. However you can install both and get your work done.
sudo dnf install -y podman
Instructions on installing docker can be found here.
NodeJS
If you need it!
sudo dnf install nodejs
node -v # shows version when installed
sudo dnf install yarnpkg
yarn -v # shows version when installed
developer.fedoraproject.org/tech/languages/..
Dropdown Terminals
Install guake(Gnome) or yakuake(KDE). The keyboard binding to enable it is F12. (Make sure you launch it first after installing.)
sudo dnf install guake
sudo dnf install yakuake
I usually run btop on yakuake, so that even if I close the Terminal app, it keeps running and I can check it anytime with a F12 press.
Acknowledgements
You can check these links for further tweak and post install instructions