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. Using Resolution Scaling Technologies in Nitrux
  6. Peripheral Management
    1. Razer Peripherals/Devices
    2. Xbox Accessories
    3. Support for Additional Devices

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 “lspci | grep VGA” to see this information and replace the PCI bus accordingly. 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%

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.

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.

As mentioned, download Proton-GE and refer to the previous tutorial for the steps to do this. 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 xpad 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; it 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 includes support for 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)

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