Skip to content

My personal Fedora post installation guide. Use it at your own risk.

Notifications You must be signed in to change notification settings

smvarela/fedora-postinstall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 

Repository files navigation

Fedora post installation guide

Update to Fedora 35.

Welcome to my personal Fedora post installation guide. In this document, you can see the steps I took after a Fedora 33 fresh installation.

Ideas and suggestions were collected from different sources and from my previous experience with Fedora. Use this guide at your own risk.

Index

Update entire system

After a clean Fedora install is recommended to update the entire system. This fixes potential bugs that could not be fixed for the initial distribution release. Open a terminal and type:

sudo dnf update

After the update, some new repositories could be enabled.

Enable Fedora Workstation repositories

The Third Party Software Repositories is not enabled by default because Fedora promotes free and open source resources. These repositories include restricted softwares that are not free and open source but can be installed to improve usability. Some of the included software are Google Chrome, nVidia graphic drivers and Steam client.

These repositories can be managed in GNOME Software in the "Software Repositories" settings or using DNF.

sudo dnf install fedora-workstation-repositories

The repositories are disabled by default. To enable individual repositories, use the following command:

sudo dnf config-manager --set-enabled <name of repository from link above>

Similarly, individual repositories can be disabled using:

sudo dnf config-manager --set-disabled <name of repository from link above>

To remove all of these repositories, use the following command:

sudo dnf remove fedora-workstation-repositories

DNF : Enable DeltaRPM and Faster Mirror plugins

With these two modules, you can speed up the download process.

DeltaRPM is a module that only downloads the differences between the current installed packages and the update available in the mirror. Once downloaded, rebuild the new package in your local computer.

Fastest Mirror is a plugin that determines the nearest mirror available to you.

To enable both plugins, append the next two lines into your /etc/dnf/dnf.conf file:

fastestmirror=true
deltarpm=true

Enable RPM Fusion repositories

RPM Fusion is a repository of add-on packages for Fedora maintained by a group of volunteers. This repository distributes packages that have been deemed unacceptable to Fedora. This means that software encumbered with US patents cannot be included in Fedora. Fedora further only wants to ship software that is covered by Free and Open-Source-Software licenses.

Free repository : Software that uses a free license, but is not accepted in Fedora for various reasons.

sudo dnf install
https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

Nonfree repository : Software that uses a non free license, but is otherwise redistributable.

sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

Install Nvidia drivers

After installing RPMFusion, you can replace free Nouveau drivers with privative Nvidia drivers. More information in RPMFusion website

To determine which driver you need to install, you need to find your graphic card model.

sudo /sbin/lspci | grep -e VGA

With a relative new graphic card:

sudo dnf update -y # and reboot if you are not on the latest kernel
sudo dnf install akmod-nvidia # rhel/centos users can use kmod-nvidia instead
sudo dnf install xorg-x11-drv-nvidia-cuda #optional for cuda/nvdec/nvenc support

Once the module is built, modinfo -F version nvidia should outputs the version of the driver

(Optional-Fedora 35) - Downgrade driver to version 470

This step is optional and only required if your GPU is not supported by NVidia-495 drivers.

Fedora 35 installs nVidia drivers version 495 but this version don't support cards from 600 and 700 series. In this cards, the graphic driver will fallback to Nouveau. To use the nVidia drivers should uninstall 495 version and install the 470 version.

sudo dnf remove akmod-nvidia*
sudo dnf remove *nvidia*

Install the nNvida-470 drivers:

dnf install akmod-nvidia-470xx.x86_64 nvidia-settings-470xx.x86_64 xorg-x11-drv-nvidia-470xx.x86_64 xorg-x11-drv-nvidia-470xx-power.x86_64 xorg-x11-drv-nvidia-470xx-cuda.x86_64 xorg-x11-drv-nvidia-470xx-cuda-libs.i686 xorg-x11-drv-nvidia-470xx-cuda-libs.x86_64 xorg-x11-drv-nvidia-470xx-devel.x86_64 xorg-x11-drv-nvidia-470xx-kmodsrc.x86_64 xorg-x11-drv-nvidia-470xx-libs.i686 xorg-x11-drv-nvidia-470xx-libs.x86_64

Avoid screen tearing

This option reduces the image tearing when reproducing videos but may reduce the performance of some OpenGL applications and may produce issues in WebGL.

If you have problems with screen tearing and want to try this solution, open (or create) the file /etc/X11/xorg.conf and add this line in the section Screen:

Section "Screen"
...
	Option "metamodes" "nvidia-auto-select +0+0 { ForceCompositionPipeline = On }"
...
EndSection

If the file doesn't exists can be created using nvidia-settings.nvidia-settings

Monitor system fans speed

I like to use GKrellM to monitor multiple system variables. But to monitor fan speed, you need to execute sensors-detect to determine which kernel modules need to load to use lm_sensors with my motherboard.

sudo sensors-detect

And I have this result with detected sensors, the right kernel module and the option to overwrite /etc/sysconfig/lm_sensors file.

Now follows a summary of the probes I have just done.
Just press ENTER to continue:

Driver `nct6775':
  * ISA bus, address 0xa20
    Chip `Nuvoton NCT6797D Super IO Sensors' (confidence: 9)

Driver `k10temp' (autoloaded):
  * Chip `AMD Family 17h thermal sensors' (confidence: 9)

Do you want to overwrite /etc/sysconfig/lm_sensors? (YES/no):

Update Firmware

Some manufacturers support firmware and UEFI updates on Linux. The following commands will find devices with firmware, search for possible firmware updates, and install the updates.

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

Ensuring Software Compatibility with Wayland

I primarily use Wayland as my default session, although I've encountered compatibility issues with certain software. These problems manifest as a black screen during startup, black screens within dialogs, or occasional delays. To resolve these issues, consider adding the following options to the command line:

--enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WaylandWindowDecorations

Customize Gnome Shell

Install Gnome Tweaks

Gnome Tweaks is used in conjunction with the Gnome Shell to modify its interface.

sudo dnf install gnome-tweaks

Install Gnome Extension App

Starting with Fedora 35, Gnome Tweaks is not used anymore to enable or configure Gnome Extensions. You must install Gnome Extensions App, an standalone app and not installed by default.

sudo dnf install gnome-extensions-app

Add bottom panel

Tint 2 : I like to have a bottom panel that shows the current open windows. Also shows automatically when i move the cursor over it and hides automatically.

sudo dnf install tint2

My tint2 config files are available in the dotfiles directory.

[ Update 1 ] Replace Tint2 with the Dash to Panel Extension

After I switched from XOrg to Wayland in Fedora 39, Tint2 doesn't display all programs, so I replaced it with the Dash to Panel extension. It's a Gnome Shell extension that can be configured to be very similar to Tint2. More information in Gnome-Shell extensions section.

[ Update 2 ] Remove Tint2

dnf remove tint2

Delete configuration and cache files

/home/user/.cache/tint2
/home/user/.config/tint2
/home/user/.config/autostart/tint2.desktop

Gnome-Shell extensions:

In Gnome Shell you can install some extensions to improve Gnome usability and productivity. These extensions can be donwloaded from Gnome extensions or can be installed with DNF. After install any extension you can enable it using Gnome Tweaks (in Fedora 34 o lower) or Gnome Extensions App (from Fedora 35).

Places Status Indicator

This extension add a menu for quickly navigating places in the system. extension_places

If you bookmark yout most useful locacionts on your filesystem with Nautilus, it will appear in this extension.

This extension can be downloaded from Gnome Extensions Download or can be installed with DNF.

sudo dnf install gnome-shell-extension-places-menu

TopIcons Plus

This extension moves legacy tray icons (bottom left of Gnome Shell) to the top panel. Not all applicacions integrate with Gnome (for example, Liferea, Dropbox...), and still use the classic implementation. With this extension those tray icons will be moved to the top right side of the panel. This extension can be downloaded from Gnome Extensions Download or can be installed with DNF.

sudo dnf install gnome-shell-extension-topicons-plus

Change system fonts

This is a matter of taste, but I prefer Ubuntu fonts than the Fedora default fonts.

Download Ubuntu fonts from Google Fonts.

Check if the directory /usr/share/fonts exists. If the fonts directory do not exist,you can create yourself.

sudo mkdir -p /usr/share/fonts

Now unzip the downloaded Ubuntu fonts file and copy ubuntu-font-family-0.83 directory into /usr/share/fonts/

Now run the fc-cache command to rebuild font information.If you do not get any error then the fonts are successfully installed.

sudo fc-cache -fv

Open Gnome Tweaks and select the Ubuntu font and set hintting and subpixel antialiasing. I restart my session, so changes can be applied.

Ubuntu fonts

Better font rendering in Fedora

This repository provides free substitutions for popular proprietary fonts from Microsoft and Apple operating systems. This replacement makes web pages appear closer to what they do on Windows and not using the same font in every webpage.

Subpixel hinting, as it turns out, is patented by Microsoft so most Linux distributions don’t ship with it enabled. Optionally you can enable subpixel (rgb) antialiasing.

Enable COPR repository with packages from this repo:

sudo -s dnf copr enable dawid/better_fonts

Install packages:

sudo -s dnf install fontconfig-font-replacements

Enable subpixel (rgb) antialiasing:

sudo -s dnf install fontconfig-enhanced-defaults

Log out and log in again or restart computer.

Enable minimize maximize buttons

I like to have the minimize and maximize buttons in the windows title bar. And can be enabled using GNOME Tweaks: Ubuntu fonts

Replace Nautilus with Nemo

I don't like Nautilus as a file manager, so I usually replace it with a Nemo file manager.

sudo dnf install nemo nemo-extensions nemo-fileroller

Then I copy nemo.desktop file from /usr/share/applications/ to ~/.local/share/applications/ and remove the line "OnlyShowIn=X-Cinnamon;".

Use location entry in Nautilus

When I use Nautilus, I prefer to always have a text navigation bar. Can be changed temporary using Ctrl + L or permanently in a terminal:

$ gsettings set org.gnome.nautilus.preferences always-use-location-entry true

Navigation bar before: before

Navigation bar after: after

Desktop icons extension

Desktop Icons NG is an extension for Gnome Shell that adds icons to the desktop. Also adds:

  • Drag'n'Drop, both inside the desktop, between desktop and applications, and Nautilus/Nemo windows
  • Allows to use "Open with..." option with several files.

To manually install the extension follow this steps:

Download the extension Desktop Icons NG from Gnome Extensions. Select an appropriate gnome shell version and extensions version.

Unzip the downloaded file and open metadata.json file. Copy the UUID of your extension (the UUID is: [email protected]) and create a new directory into which we will unzip the content of the previusly downloaded gnome extension. The directory name should be the UUID of this Gnome extension.

$ mkdir -p ~/.local/share/gnome-shell/extensions/[email protected]

Unzip Gnome extension into previously created directory. And enable the newly installed extension using gnome-extensions-app.

Finally restart gnome-shell (exit from current session or pressing Alt-F2 and writing "r" in the opened window).

Dash to Panel extension

Dash to Panel is an icon taskbar for the Gnome Shell.

Dash to panel

Can be installed from Gnome extensions. After the installation, you can customize its appearance with the Gnome Extensions app. Dash to Panel also allows you to export and import configurations. Open Dash to panel with Gnome Extensions App.

Exporting Settings:

  1. Switch to the 'About' tab and click on the 'Export to file' button.
  2. Then, select 'dash-to-panel-settings.txt.'

Importing Settings:

  1. Switch to the 'About' tab and click on the 'Import from file' button.
  2. Select the file. Your settings will now be imported.

My personal choices for making Dash to Panel like Tint2 available in the dotfiles directory.

In Fedora 40 there is a new Gnome extension installed by default incompatible with Dash to Panel. The Window List Extension adds a bottom panel with a traditional window list. You must choose between Window List or Dash to Panel because the functionality is pretty much the same. To activate one or another you must use Extensions application.

Useful packages

These are some packages I like to install in my Fedora machine. Just personal taste.

Codecs

Multimedia: Music and movies

Fedora distributions don't install some codecs because they are not open source or are privative or covered by software patents. But can be installed using RPMFusion.

sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav --exclude=gstreamer1-plugins-bad-free-devel
sudo dnf install lame\* --exclude=lame-devel
sudo dnf group upgrade --with-optional Multimedia

OpenH264

Cisco provides an OpenH264 codec (as a source and a binary), which is their implementation of H.264 codec, and they cover all licensing fees for all parties using their binary. This codec allows you to use H.264 in WebRTC with gstreamer and Firefox. It does not enable generic H.264 playback, only WebRTC More information and instructions https://docs.fedoraproject.org/

Hardware video acceleration

Hardware video acceleration makes it possible for the video card to decode/encode video, thus offloading the CPU and saving power.

dnf install libva-utils libva-vdpau-driver vdpauinfo

File manager

Midnight Commander

sudo dnf install mc

Editors

Atom

Download the RPM package from www.atom.io and install using the RPM command tool.

sudo rpm -Uvh atom.rpm

Add this Community Packages:

VSCodium

To make VSCodium compatible with Wayland, run with these options:

  --enable-features=UseOzonePlatform --ozone-platform=wayland --enable-features=WaylandWindowDecorations

Graphic design editors

Gimp and Inkscape

sudo dnf install inkscape gimp

Multimedia

HandBrake

sudo dnf -y install handbrake-gui

MPV - Multimedia player

sudo dnf -y install mpv
MPV without sound

After Fedora 40 update I played a video and I found that mpv is not able to play audio. I can only see video, but no audio. To solve this error, I created a new file mpv.conf in ~/.config/mpv/mpv.conf

# ===== Audio =====
ao=alsa
audio-device=auto

Important Firefox / Chrome addons

HTTPS Everywhere: Force the use of HTTPS protocol in all webpages (if available).

uBlock Origin: The famous ad-blocker plugin.

Privacy Badger: Block tracking scripts and other 3rd-party online tracking software.

Games : Steam

After you have enabled the non-free RPM Fusion repository, you can install Steam on Fedora using:

sudo dnf install steam

Dropbox

sudo dnf install dropbox nautilus-dropbox nemo-dropbox

Browser hardware acceleration

Google Chrome

After installing Google Chrome, you can enable GPU hardware acceleration. Open new web and navigate to chrome:flags and and set to enabled these flags:

  • Override software rendering list
  • GPU rasterization
  • Zero-copy rasterize.

After restarting the navigator, in tab chrome://gpu/ will show the Graphic Feature Status.

nvidia-settings

Mozilla Firefox

Enable hardware acceleration

Open the menu in the top-right corner. From this menu, select Preferences and go to General. Scroll down to Performance, uncheck "Use recommended performance settings" and check "Use hardware acceleration when available" firefox hardware acceleration

Enable WebGL

In first place check the status of the graphic driver. In the address bar type about:support. In the new page, scroll down to the Graphics section. If WebGL is not enabled, you will see a message like this:

WebGL creation failed:
- WebglAllowWindowsNativeGl:false restricts context creation on this system.
- Exhausted GL driver options.

In the address bar, type about:config. On the new page, accept the warning button. Use the search box an find this two settings:

  • webgl.force-enabled - change from false to true
  • layers.acceleration.force-enabled - change from false to true

Close Firefox and re-open it. Then navigate back to about:support and find the Graphics section again. Now in the Graphics section you can see WebGL enabled.

firefox WebGL

Check if WebGL is available in any browser

First check if you are using accelerated graphics:

$ glxinfo | grep 'OpenGL version'
OpenGL version string: 4.6.0 NVIDIA 460.39

To test if the browser has WebGL enabled and working correctly you can go to these two pages.

https://get.webgl.org/ This web shows if your browser supports WebGL. firefox WebGL

https://webglreport.com This is a web page that reports a browser's WebGL capabilities https://webglreport.com

Google Chrome

Enable Memory Saver to Reduce RAM/CPU Usage

The latest versions of the Chrome browser (version 108.0.5359.124 or newer), frees up memory from inactive tabs. This gives active tabs and other apps more computer resources and keeps Chrome fast. The inactive tabs automatically become active again when you go back to them.

  1. Open Chrome.
  2. Access Chrome Flags with this address in the address bar:
chrome://flags/#high-efficiency-mode-available
  1. Toggle the setting "Enable the hight efficiency mode feature" to “Enabled” settings
  2. Restart the Chrome browser
  3. Go to the address bar in Chrome and go to this address:
chrome://settings/performance
  1. Locate “Memory Saver” and toggle the switch ON to enable the feature settings

  2. Relaunch Chrome for the change to take full effect

Enable Wayland for Chrome/Chromium

For Google Chrome, Chromium, and their based web browsers (e.g., Edge, Vivaldi), simply type

chrome://flags/

in the address bar and press Enter.

When the page opens, search for 'Preferred Ozone platform' and use the dropdown menu to set its value to 'Wayland' . Finally, click the 'Relaunch' button to apply the change by restarting the web browser. settings

Update: In last Chrome updates (April 2024, Chrome version: 124 ), previous method don't work anymore. You must launch Chrome from command line with the parameters:

google-chrome --enable-features=UseOzonePlatform --ozone-platform=wayland

or add this parameters to a .desktop shortcut.

Update 2: In the latest Chrome update (May 2024, Chrome version: 124.0.6367.118), the issue has been solved. It is no longer necessary to launch Chrome from the command line with parameters

Firefox

Check if Wayland support is enabled

To check if your browser is using Wayland or X11, type

about:support

in the adress bar and press Enter.

When the pages opens, look for 'Window Protocol' . It should indicate 'Wayland' . The presence of 'X11' means you are running Firefox under the Xorg display server, while 'XWayland' means your system is running Wayland but executing Firefox as a legacy X11 application.

About

My personal Fedora post installation guide. Use it at your own risk.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published