Skip to main content

While we don’t necessarily label Nitrux as a “gaming-centric” or “gaming-focused” distribution, that doesn’t mean it can’t be used for that purpose. So, continuing from the last tutorial, where we checked how to get games, we’ll look at extra tools to enhance the gaming experience with hardware information, real-time statistics, overclocking utilities, and goodies we’ve implemented and added to our distribution.

Difficulty: ★☆☆☆☆

📜 Table of Contents

  1. Hardware Information
  2. Performance Optimization
  3. Performance Statistics
    1. Using MangoHud in Steam (Flatpak)
    2. Using MangoHud in Heroic Games Launcher and Bottles (Flatpak)
  4. Overclocking Utilities
  5. Visual Enhancement Utilities
    1. Using vkBasalt in Steam (Flatpak)
    2. Using vkBasalt in Heroic Games Launcher and Bottles (Flatpak)
  6. Using Resolution Scaling Technologies in Nitrux
  7. Peripheral Management
    1. Razer Peripherals/Devices
    2. Xbox Accessories
    3. Support for Additional Devices
    4. Using VRR (Variable Refresh Rate) in Nitrux
  8. Cloud Gaming
    1. NVIDIA GeForce Now
    2. Xbox Cloud Gaming

Hardware Information

CPU-X is a system profiling (Information) and monitoring application (Resource usage). It can detect the Processor (CPU), Memory (RAM), and Chipset (Motherboard).

CPU-X (AppImage) 4.5.1.

Performance Optimization

GameMode is a daemon/lib combo for Linux that allows games to request a set of optimizations be temporarily applied to the host OS and a game process. GameMode was designed primarily as a stop-gap solution to problems with the Intel and AMD CPU powersave or on-demand governors but is now host to a range of optimization features and configurations.

GameMode includes support for optimizations, including:

  • CPU governor
  • I/O priority
  • Process niceness
  • Kernel scheduler (SCHED_ISO)
  • Screensaver inhibiting
  • GPU performance mode (NVIDIA and AMD), GPU overclocking (NVIDIA)
  • CPU core pinning or parking
  • Custom scripts

We have included GameMode and the Plasma integration since Nitrux since 2.9.0. The GameMode Plasma integration will display the processes using it in the system tray.

Plasma integration with GameMode.

Disclaimer: We do not develop GameMode or the Plasma integration. Please create an issue at their respective bug tracker to report problems with this software.

In Nitrux 3.5.0, we’ve focused on optimizing performance and responsiveness by implementing advanced memory management tweaks.

  • Reduced memory compaction overhead. Reduced CPU overhead and improved overall system responsiveness, especially in memory-intensive applications, lead to more stable performance by avoiding sudden spikes in CPU usage caused by proactive compaction.
  • Improve performance in contended lock scenarios. By allowing more aggressive page locking, we improve performance in scenarios with contention for memory pages, which can occur in applications with high memory usage and multi-threaded environments.
  • Enable THP (Transparent Hugepages) for all memory locations. This will improve performance for applications with considerable memory usage and access patterns that benefit from larger pages.
  • Disable memory page fragmentation. In workloads like gaming, this change can provide benefits such as reduced CPU overhead, improved system responsiveness, and more predictable performance.

Performance Statistics

MangoHud is a “Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load, and more.

  • 🔰 Information: Users can download MangoHud from Flathub; see Software Management.
  • 🔰 Information: Check MangoHud documentation for supported environment variables.
  • ⚠️ Important: MangoHud will not display statistics for AMD GPUs unless the PCI bus is added to the configuration, i.e., the bus where the GPU is can look like this 03:00.0. Use the command lspci | grep VGA and replace the PCI bus accordingly. This is not a bug or issue with Nitrux and is not caused by Nitrux.
  • ⚠️ Important: MangoHud will not display power usage statistics for Intel CPUs unless the permissions of the following file are changed. Use the command sudo chmod o+r /sys/class/powercap/intel-rapl\:0/energy_uj to do this. This is not a bug or issue with Nitrux and is not caused by Nitrux.
  • ⚠️ Important: MangoHud will not display voltage statistics or fan percentages on NVIDIA Optimus laptops. This is not a bug or issue with Nitrux and is not caused by Nitrux.

MangoHUD.

Do the following when using MangoHud in software like Steam, Bottles, or HGL.

Using MangoHud in Steam (Flatpak)

  • Search for the keyword “runtime” in Steam and download all of them.
  • For each game, right-click the game title, then click “Properties,” in the section “General,” scroll down to “Launch Options,” and add the following options to enable MangoHud and GameMode; these parameters are all a single line.
    • Basic MangoHud parameters.

MANGOHUD=1 MANGOHUD_CONFIG=gamemode,preset=3 gamemoderun %command%

    • Basic MangoHud parameters for AMD GPUs: change the PCI bus address accordingly.

MANGOHUD=1 MANGOHUD_CONFIG=gamemode,pci_dev='0000\:03\:00.0',preset=3 gamemoderun %command%

  • As mentioned in this issue at the MangoHud repository, MangoHud stopped preloading the GameMode library, resulting in MangoHud displaying GameMode as “OFF” when adding this option to the configuration options. Add the following parameter before the MangoHud parameters to solve this issue.

LD_PRELOAD="/usr/lib/x86_64-linux-gnu/libgamemode.so.0 /usr/lib/x86_64-linux-gnu/libgamemodeauto.so.0" [MangoHud params...]

Using MangoHud in Heroic Games Launcher and Bottles (Flatpak)

  • Enable MangoHud:
    • To use MangoHud, enable it on a per-game or per-bottle basis using the application settings.
      • Alternatively, add the following environment variables in their respective settings menus.
        • Variable name: MANGOHUD
        • Value: 1
        • Variable name: MANGOHUD_CONFIG
        • Value: gamemode,preset=3
          • When using AMD GPUs, remove the single quotes in the PCI bus address: gamemode,pci_dev=0000\:03\:00.0,preset=3
            • Don’t forget to change the PCI bus address accordingly.
  • Enable GameMode:
    • Check “Use GameMode” in the settings of individual games or the application’s global settings.
    • Check the toggle “Feral GameMode” in the settings of an individual bottle.

Disclaimer: We do not develop MangoHud. To report problems with this software, please create an issue at their respective bug tracker.

Overclocking Utilities

GreenWithEnvy is a “System utility designed to provide information, control the fans, and overclock your NVIDIA card.”

  • 🔰 Information: Users can download GreenWithEnvy from Flathub; see Software Management.
  • 🔰 Information: Check the Notes for the latest release of Nitrux to enable the Plasma X11 session since GreenWithEnvy does not work in Wayland.

GreenWithEnvy allows overclocking of NVIDIA GPUs. However, it only works in X11.

NVIDIA_OC is a simple Rust CLI tool designed to overclock NVIDIA GPUs on Linux. This tool was developed to support X11 and Wayland environments, addressing a gap in existing overclocking tools that only support X11.

To use this utility, see the example in the image below.

  • 🔰 Information: We have included NVIDIA_OC in Nitrux since 3.6.0. When adjusting the values, be aware that these will be applied immediately, so be careful.

NVIDIA_OC is a simple Rust CLI tool designed to overclock NVIDIA GPUs X11 and Wayland.

CoreCtrl is a “Free and Open Source GNU/Linux application that allows you to control with ease your computer hardware using application profiles.

  • 🔰 Information: We have included CoreCtrl in Nitrux since 3.5.0. We strongly recommend selecting “Advanced” and choosing an appropriate maximum frequency for the GPU. Since the AMDGPU driver can overlock the GPU too much, it can reset the GPU, crash the graphical session, or completely halt the computer. See this bug report in the Linux kernel bug tracker and this issue in the AMDGPU bug tracker. This is not a bug or problem with Nitrux and is not caused by Nitrux.

CoreCtrl allows the management of AMD hardware.

Disclaimer: We do not develop GreenWithEnvy or CoreCtrl. Please create an issue at their respective bug tracker to report problems with this software.

Visual Enhancement Utilities

vkBasalt is a Vulkan post-processing layer that enhances the visual graphics of games.

Currently, the built-in effects are:

  • Contrast Adaptive Sharpening
  • Denoised Luma Sharpening
  • Fast Approximate Anti-Aliasing
  • Enhanced Subpixel Morphological Anti-Aliasing
  • 3D color LookUp Table

It is also possible to use Reshade Fx shaders.

  • 🔰 Information: vkBasalt is installed in Nitrux when either Steam, Heroic Games Launcher or Bottles are installed through the installers in the applications menu.

Using vkBasalt in Steam (Flatpak)

  • For each game, right-click the game title, then click “Properties,” in the section “General,” scroll down to “Launch Options,” and add the following options to enable MangoHud and GameMode; these parameters are all a single line.
    • Basic vkBasalt parameters.

ENABLE_VKBASALT=1 [Other parameters...] %command%

Using vkBasalt in Heroic Games Launcher and Bottles (Flatpak)

  • Enable vkBasalt in Bottles:
    • Check the toggle “Post-processing Effects” in the settings of an individual bottle.
  • Enable vkBasalt in Heroic Games Launcher:
    • Add the following environment variable in their respective game settings menu.
        • Variable name: ENABLE_VKBASALT
        • Value: 1

Using Resolution Scaling Technologies in Nitrux

Recent game titles include support for hardware-based scaling technologies such as AMD FidelityFX™ Super Resolution, NVIDIA Deep Learning Super Sample, or Intel® Xe Super Sampling (XeSS). Most games have settings in their in-game menus to toggle these features; however, for those that don’t, it’s possible to use some of these technologies by using environment variables available in compatibility layers like Proton-GE. Other game titles use internal scaling methods, i.e., resolution scaling sliders, primarily dependent on the game engine and not comparable to these solutions.

Download Proton-GE and refer to the previous tutorial for the steps. Then, depending on the platform, add the following environment variables.

For AMD FidelityFX™ Super Resolution:

  • To enable FSR 1.0, use the following environment variables: WINE_FULLSCREEN_FSR=1 WINE_FULLSCREEN_FSR_STRENGTH=1 WINE_FULLSCREEN_FSR_MODE=quality
    • 🔰 Information: Accepted values for FSR_MODE are ultra, quality, balanced, and performance; accepted values for FSR_STRENGTH range from 0-5, where the higher value means minimum sharpening but more performance. To use FSR, games must be launched on fullscreen. FSR can also be used for non-AMD graphics cards. After enabling FSR, change the in-game resolution to be lower than the desktop.
  • Game titles provide FSR 2.0+ and FSR 3.0 as built-in features.

For NVIDIA Deep Learning Super Sample:

  • DXVK-NVAPI is on by default in Proton 9.0 on a per-game basis. Non-NVIDIA graphics cards can use DXVK-NVAPI. However, there’s little value to gain from doing this.
  • For games where it isn’t enabled, add the following environment variable, PROTON_FORCE_NVAPI=1

For Intel® Xe Super Sampling (XeSS):

  • Game titles must provide XeSS support.

Peripheral Management

Razer Peripherals/Devices

Since Nitrux 3.4.1, OpenRazer, the driver used by applications such as RazerGenie, has been included by default. OpenRazer is “a collection of Linux drivers for Razer devices—providing kernel drivers, DBus services, and Python bindings to interact with the DBus interface.

  • RazerGenie is a “Qt application for configuring your Razer devices under GNU/Linux. RazerGenie is using OpenRazer to provide control over Razer peripherals.”

RazerGenie allows the management of Razer peripherals.

Xbox Accessories

Since Nitrux 3.5.0, we include the xpadneo and xone drivers for Xbox One and Xbox One X|S accessories, which include support for wireless controllers. Previously, only wired controllers worked as we relied on the HID driver in the kernel (xpad); this driver also supports Xbox 360 controllers.

  • xpadneo, an Advanced Linux Driver for Xbox One Wireless Controller (shipped with Xbox One S).
  • xone, a Linux kernel driver for Xbox One and Xbox Series X|S accessories. It is a modern replacement for the xpad driver and aims to be compatible with Microsoft’s Game Input Protocol (GIP).
    • 🔰 Information: Since Nitrux 3.6.0, we include the necessary firmware files for one by default, and usage requires no additional steps for this driver.
  • xpad, a driver for Xbox controllers included in the kernel, doesn’t fully support the newer controllers, though (the button mappings are incorrect, and the LEDs never sync).
    • 🔰 Information: This driver is necessary to use Xbox 360 controllers. However, it’s blacklisted by default because it can conflict with xone. To revert this, run the following commands.
sudo overlayroot-chroot

sed -i 's/^blacklist xpad/# blacklist xpad/' /etc/modprobe.d/xone-blacklist.conf

sync

exit

sudo reboot

Xbox One accessories are supported with xone.

Disclaimer: We do not develop OpenRazer, the xpadneo, or xone drivers. Please create an issue at their respective bug tracker to report problems with this software.

Support for Additional Devices

Additionally, thanks to Fabian Bornschein’s work, Nitrux supports the following controllers using udev rules.

8Bitdo (2dc8)

  • 8Bitdo F30 P1
  • 8Bitdo F30 P2
  • 8Bitdo N30
  • 8Bitdo SF30
  • 8Bitdo SN30
  • 8Bitdo F30 Pro
  • 8Bitdo N30 Pro
  • 8Bitdo SF30 Pro
  • 8Bitdo SN30 Pro
  • 8BitDo SN30 Pro+; Bluetooth; USB
  • 8Bitdo F30 Arcade
  • 8Bitdo N30 Arcade
  • 8Bitdo ZERO
  • 8Bitdo Retro-Bit xRB8-64
  • 8BitDo Pro 2; Bluetooth; USB (2dc8:6003)
  • 8BitDo Pro 2 Wired; USB (2dc8:3106), (2dc8:3010) (Setup Instructions)
  • 8BitDo Ultimate Wired Controller for Xbox; USB (2dc8:2003)

Alpha Imaging Technology Corp. (114d)

  • VR Set (114d:8a12)

ASTRO Gaming (9886)

  • ASTRO Gaming C40 Controller; USB (9886:0025)

Betop (11c0)

  • Betop PS4 Fun Controller (11c0:4001)

Hori (0f0d)

  • Hori RAP4 (0f0d:008a)
  • Hori HORIPAD 4 FPS (0f0d:0055)
  • Hori HORIPAD 4 FPS Plus (0f0d:0066)
  • Hori HORIPAD S; USB (0f0d:00c1)
  • Hori Nintendo Switch HORIPAD Wired Controller; USB (0f0d:00c1)
  • Hori Pokkén Tournament DX Pro Pad for Nintendo Switch; USB (0f0d:0092)

HTC (0bb4)

  • Unknown (0bb4:2c87)
  • Unknown (0bb4:0306)
  • Unknown (0bb4:0309)
  • Unknown (0bb4:030a)
  • Unknown (0bb4:030b)
  • Unknown (0bb4:030c)
  • Unknown (0bb4:030e)
  • HTC VIVE Cosmos; USB (0bb4:030e)(057e:0315)(057e:0323)

Logitech (046d)

  • Logitech F310 Gamepad; USB (046d:c216)
  • Logitech F710 Wireless Gamepad; USB (046d:c21f) #EXPERIMENTAL

Mad Catz (0738)

  • Mad Catz Street Fighter V Arcade FightPad PRO (0738:8250)
  • Mad Catz Street Fighter V Arcade FightStick TE S+ (0738:8384)

Nacon (146b)

  • Nacon PS4 Revolution Pro Controller (146b:0d01)

Nintendo (057e)

  • Nintendo Switch Pro Controller; Bluetooth; USB (057e:2009)
  • Nintendo GameCube Controller / Adapter; USB (057e:0337)
  • Nintendo Switch Joy-Con Charging Grip (057e:200e)
  • Nintendo Switch Joy-Con (L); Bluetooth (057e:2006)
  • Nintendo Switch Joy-Con (R); Bluetooth (057e:2007)

NVIDIA (0955)

  • NVIDIA Shield Portable (2013 – NVIDIA_Controller_v01.01 – In-Home Streaming only) (0955:7203)
  • NVIDIA Shield Controller (2017 – NVIDIA_Controller_v01.04); Bluetooth (0955:7214)
  • NVIDIA Shield Controller (2015 – NVIDIA_Controller_v01.03); USB (0955:7210)

Performance Designed Products LLC [PDP] (0e6f)

  • PDP Afterglow Deluxe+ Wired Controller; USB (0e6f:0188)
  • PDP Nintendo Switch Faceoff Wired Pro Controller; USB (0e6f:0180)
  • PDP Wired Fight Pad Pro for Nintendo Switch; USB (0e6f:0185)

Personal Communication Systems, Inc. (0810)

  • Personal Communication Systems, Inc. Twin USB Gamepad; USB (0810:e301)

Pid.Codes (1209)

  • EdgeTX, OpenTX Generic [radio controller] Joystick; USB (1209:4f54)

PowerA (20d6)

  • PowerA Wired Controller for Nintendo Switch; USB (20d6:a711)
  • PowerA Wireless Controller for Nintendo Switch; Bluetooth (NA)
  • PowerA Zelda Wired Controller for Nintendo Switch; USB (20d6:a713)

Razer (1532)

  • Razer Raiju PS4 Controller (1532:1000)
  • Razer Panthera Arcade Stick (1532:0401)
  • Razer Raion PS4 Fightpad (1532:1100)

Sony (054c)

  • Sony PlayStation Strikepack; USB (054c:05c5)
  • Sony PlayStation DualShock 3; Bluetooth; USB + Motion Sensors (054c:0268)
  • Sony PlayStation DualShock 4; Bluetooth; USB (054c:05c4)
  • Sony PlayStation DualShock 4 Slim; Bluetooth; USB (054c:09cc)
  • Sony PlayStation DualShock 4 Wireless Adapter; USB (054c:0ba0)
  • Sony DualSense Wireless-Controller; Bluetooth; USB (054c:0ce6)
  • Sony DualSense Edge Wireless-Controller; Bluetooth; USB (054c:0df2)
  • PlayStation VR (054c:09af)

Valve (28de)

  • Valve USB devices (28de:*)
  • Valve Steam Controller (28de:*)
  • Valve HID devices; Bluetooth; USB (28de:*)
  • Unknown-VR (28de:1043)
  • Unknown-VR (28de:1142)
  • Unknown-VR (28de:2000)
  • Unknown-VR (28de:2010)
  • Unknown-VR (28de:2011)
  • Unknown-VR (28de:2012)
  • Unknown-VR (28de:2021)
  • Unknown-VR (28de:2022)
  • Unknown-VR (28de:2050)
  • Unknown-VR (28de:2101)
  • Unknown-VR (28de:2102)
  • Unknown-VR (28de:2150)
  • Unknown-VR (28de:2300)
  • Unknown-VR (28de:2301)

Zeroplus Technology Corporation (0c12)

  • Armor PS4 Armor 3 Pad; USB (0c12:0e10)
  • EMiO PS4 Elite Controller; USB (0c12:1cf6)
  • Hit Box Arcade HIT BOX PS4/PC version; USB (0c12:0ef6)
  • Nyko Xbox Controller; USB (0c12:8801)
  • Unknown-Brand Xbox Controller; USB (0c12:8802)
  • Unknown-Brand Xbox Controller; USB (0c12:8810)

Using VRR (Variable Refresh Rate) in Nitrux

Variable Refresh Rate (VRR) is a display technology that allows a monitor or TV to dynamically adjust its refresh rate to match the frame rate output by a GPU (Graphics Processing Unit). This real-time video provides smoother gameplay and visual experiences, particularly in gaming, where frame rates can fluctuate depending on the complexity of the scene or the workload on the GPU.

Support for VRR will depend on the monitor and the GPU. To enable VRR, go to System Settings→Display and Monitor→Adaptable sync and select “Automatic” or “Always,” and to disable VRR, select “Disable.”

  • 🔰 Information: As discussed in this issue at the AMDGPU bug tracker, adaptive sync may not work correctly unless VSync is enabled within the in-game settings and the game runs in fullscreen mode. Additionally, changing the power profile to 3D_fullscreen for AMD GPUs alleviates further dips in performance; otherwise, the window manager may display the output at half the actual framerate, i.e., the window manager is displaying 60 FPS while the game runs at 120 FPS.
  • 🔰 Information: The monitor must be plugged in via DisplayPort. Some displays that implement (part of) the HDMI 2.1 specification also support VRR over HDMI.
  • 🔰 Information: Although tearing is much less noticeable at higher refresh rates, FreeSync monitors often have a limited range for their VRR of 90Hz, which can be much lower than their max refresh rate.
  • 🔰 Information: When selecting Automatic, KWin Wayland will use VRR for fullscreen windows, and when selecting Always, It will use VRR all the time.

Image for reference.

Cloud Gaming

Cloud gaming, also known as game streaming or gaming as a service, refers to playing video games where the game’s processing and rendering are done on remote servers in the cloud rather than on a local device (like a console or PC). Players access the games online, streaming the content to their devices in real-time. Below, we list two of the most well-known services.

  • 🔰 Information: Depending on the service, there might be a “free” as in no cost tier. However, access to the best streaming options does have a cost.

NVIDIA GeForce Now

GeForce Now is NVIDIA’s cloud gaming service that lets you stream games from its servers to your device. This means you can play AAA games on hardware that would typically not handle such games. To use this service in Nitrux, all you need is a web browser, but for the sake of organization, we recommend using Heroic Games Launcher, which users can install from the applications menu.

  • Open Heroic Games Launcher, go to Library and click Add Game.

Heroic Games Launcher window; image for illustrative purposes.

Add GeForce Now to Heroic Games Launcher.

Xbox Cloud Gaming

Xbox Cloud Gaming allows you to play and access various Xbox Game Pass games on various devices. The feature streams the games via the Cloud instead of downloading them directly, so you can pick them up and play them almost instantly just about anywhere as long as you have a stable internet connection. To use this service in Nitrux, all you need is a web browser, but for the sake of organization, we recommend using Heroic Games Launcher, which users can install from the applications menu.

  • Open Heroic Games Launcher, go to Library and click Add Game.
  • Enter the Title, and in BrowserURL, enter the following address: https://www.xbox.com/play, then click Finish.

Add Xbox Cloud Gaming to Heroic Games Launcher.


That’s it; this concludes today’s tutorial.