I recently installed Fedora on my workstation to make my home and lab computers consistent with each other. This is a simple post installation guide I followed. If you plan to use Fedora sometime in the future, check it out.
sudo dnf update
Add Windows to grub for dual boot
Fedora uses grub2 and it works different than ubuntu or other distros. You can't just run grub update and call it a day.
os-prober to check for other os entries.
Update grub entries
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
Edit grub timeout
/etc/default/grub and change
GRUB_TIMEOUT to the desired value. The default is 5 (5 seconds). (Edit with sudo)
Additional software repos
These can be enabled from Software Center as well. Whichever way you prefer!
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 rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm sudo rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
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 line to your
/etc/dnf/dnf.conf file. (Edit with sudo)
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 copr enable dawid/better_fonts sudo dnf install -y fontconfig-enhanced-defaults fontconfig-font-replacements
Gnome extensions and tweaks
I'm not a big fan of heavy customization and tweaks. This is one of the many reasons I like Fedora; it comes with absolute stock Gnome. But if you switch between Operating Systems a lot like me everyday, you may want to customize a bit. These two tools will give you all the power to customize your Gnome DE the way you want.
sudo dnf install gnome-extensions-app sudo dnf install gnome-tweaks
Here is a list of the extensions I use:
- Audio Switcher
- Clipboard Indicator
- Dash to Dock
- No Topleft Hot Corner
- Removable Drive Menu
- Screenshot Tool
- Places Status Indicator
- User Themes
You can install these from extensions.gnome.org
You should also check out the customization options in the Tweaks app.
Pulseaudio is used ubiquitously in Linux distros for Audio. However it has a lot of issues and is soon going to be replaced by pipewire in Fedora 34. You can install it on 33 as well.
sudo dnf install --allowerasing pipewire-pulseaudio -y
You can find more information here.
Which applications to install? Well that's upto you. I don't know your use case so can't suggest any. You can search around in Software Center and install applications as you see fit! However, I'd recommend installing these two. (both are command line based btw.)
- nvtop - for monitoring nvidia gpu usage (you have to build it from source since the maintainers didn't release a package for Fedora, instructions in the repo)
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. Go to Settings > Displays > Night Light and set it up.
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.
To install user fonts you'll need Gnome font manager. Just install it from the software center or,
dnf copr enable jerrycasiano/FontManager dnf install font-manager
You better know what you're doing before you run anything in this section! :P
sudo dnf install -y openssh-server sudo systemctl start sshd.service sudo systemctl enable sshd.service
Automating tasks with systemd daemons
Read more here: github.com/torfsen/python-systemd-tutorial . systemd is no simple thing to discuss in a single post!
Using OneDrive with rclone
sudo dnf install rclone -y
Now follow along the instructions in this post to configure
rclone for OneDrive : How to Use Microsoft OneDrive in Linux With Rclone Open-Source Tool [For Intermediate to Expert Users]
Fedora doesn't have an option to add shell commands as startup applications so we'll have to make do with a
systemd service. If you haven't created any user systemd services before you'll have to create a directory for it, otherwise just skip to the next command.
mkdir -p ~/.config/systemd/user
Now, create a unit file for the onedrive service and add the following lines in there.
[Unit] Description=OneDrive-rclone [Service] Type=simple ExecStart=/usr/bin/rclone --config=/home/$USER/.config/rclone/rclone.conf --vfs-cache-mode writes mount "onedrive": /home/$USER/OneDrive Restart=always RestartSec=10 [Install] WantedBy=default.target
Once done, start the service and then enable it so that it runs everytime you log in.
systemctl --user start onedrive systemctl --user enable onedrive
Check the status of the service:
systemctl --user status onedrive
Open your file manager and browser your onedrive file like a mounted network volume now! If you're wondering why there's no sudo infront of systemctl here, it's because onedrive is running as a user service instead of a system service.
Fedora, following their RHEL traditions, dropped support for Docker due to some security issues which I'm too DevOps illiterate to understand. They suggest using Podman instead. Check here: github.com/containers/podman
If you need it!
sudo dnf install nodejs node -v # shows version when installed sudo dnf install yarnpkg yarn -v # shows version when installed
Setting up CUDA for Nvidia GPUs
sudo dnf install xorg-x11-drv-nvidia-cuda
Install guake from software center! Once done, run it and press F12.
I usually run bpytop on guake, so that even if I close the Terminal app, it keeps running and I can check it anytime with a F12 press.
You can check these links for further tweak and post install instructions