Skip to main content

Installing Nitrux

Disclaimer: Nitrux is a Linux distribution comprised of various free and open-source software. Each program details its distribution terms in /usr/share/doc/*/copyright. Nitrux OS comes with NO WARRANTY, as permitted by law.

Is Nitrux eating my RAM?

  • We believe performance shouldn’t be an afterthought. In Nitrux, it’s engineered from the ground up. We’ve fine-tuned everything from the kernel and filesystem to memory management, all with one goal: to make your system feel as fast, responsive, and stable as possible. So, what does all that tuning actually mean for you?

    • A Smoother, Stutter-Free Experience
      • We’ve focused on eliminating “micro-stutters” and system “hiccups” to provide a smooth, fluid desktop.
        • Optimized kernel scheduler: By tuning RCU (Read-Copy-Update) and reducing memory compaction overhead, we reduced “jitter” that can cause stutters in games, audio production, and other real-time tasks.
        • Smarter CPU scheduling: We enable AMD Preferred Core functionality, ensuring your applications automatically use the fastest cores on your Ryzen CPU.
        • Efficient multithreading: Improved memory locking and Transparent Hugepages (THP) help large, multi-threaded applications (such as games, renderers, and IDEs) run more efficiently with lower overhead.
    • Intelligent & Durable Storage
      • We use a “best-of-both-worlds” filesystem strategy to maximize performance and data safety, using XFS for the OS and the modern F2FS for your data.
        • Faster boot and app-loading: We use zstd compression on your data, which not only saves disk space but also speeds I/O, as the CPU can decompress data faster than the disk can read the uncompressed version.
        • Protects your data: Checksums are applied to compressed data to detect silent data corruption.
        • Longer SSD life: We disable synchronous access time updates (atime) and use an advanced garbage collector, which significantly reduces unnecessary “chatter” and writes to your SSD, improving its lifespan and performance.
    • Faster, More Reliable Networking
      • We tuned Nitrux to optimize your high-speed internet connection, especially under heavy load.
        • Maximized throughput: By increasing TCP buffers and packet queues, we ensure your system can handle fast (gigabit+) network traffic, reducing packet loss and improving overall stability.
        • Lower latency: We’ve enabled settings that eliminate initial handshake delays and improve congestion recovery, making web browsing and online gaming feel more responsive.
    • Smart Memory Management
      • Nitrux’s philosophy is: When RAM is uncached, it gets wasted. Nitrux is tuned to use your idle memory productively as a high-speed cache.
        • Enabled zswap: Which compresses rarely used memory in RAM, avoiding the need to write to a slow disk swap file.
        • Apps stay in RAM: We’ve aggressively lowered swappiness, telling the kernel to avoid swapping your applications to disk. It will (correctly) clear disposable file caches first.
        • Reduces disk I/O: We’ve changed “dirty page” settings to allow the system to write changes to disk more efficiently in the background, preventing your applications from “hitching” while waiting for a file to save.
  • It might seem counterintuitive, but the increased RAM you’ll see is a sign of efficiency, not waste. Historically, many people have viewed high memory usage as bloat. And on other operating systems, it was often the case. In Nitrux, this is a conscious design choice. We’re putting that wasted RAM to work to give you a faster, more responsive system.

Virtualizing Nitrux

  • Starting with Nitrux 5.0.0, we have decided to discontinue integration and support features intended for running Nitrux as a guest OS. While Nitrux will continue to run in most hypervisors, components such as SPICE integration, the QXL X.Org driver, and the Hyper-V modules, daemons, and OpenRC services are no longer included. Despite our previous efforts to provide guidance, we repeatedly encountered users applying incorrect configurations, further limiting performance in already-constrained virtualized environments, among other issues stemming from hypervisor quirks. We never intended Virtual Machines to be the platform for using Nitrux. Nitrux is tuned and optimized for physical systems, where users can experience its design, performance, and intent as we built it.
    • ⚠️ Important: Bug reports regarding running Nitrux as a guest VM will be closed.
Disclaimer: Nitrux does not develop VirtualBox, GNOME Boxes, or VMware Workstation/Player. If you have issues with these hypervisors, such as graphical problems, please report them to their respective bug trackers.

Filesystem and Security Features in Nitrux

Upgrading Nitrux from a Previous Version

Software Management

  • Nitrux is a distribution that doesn’t revolve around a package manager like other distributions; in Nitrux, the preferred way to install new software is via AppBoxes. However, we understand that not all software is available as an AppBox. So, by default, we have included various options for users, such as Flatpak and Distrobox, to complement AppBoxes.
  • Users can also create their own AppBoxes; see the NX AppHub wiki for more information.

Creating and Managing Backups

  • Nitrux users have been able to back up their data using Kup since version 1.1.9 (July 27th, 2019). Users can find Kup in System Settings→Backups.
  • During system updates, the Nitrux Update Tool System will create backups of the root directory and the root partition for resilience.
    • 🔰 Information: Unlike using Kup, the NItrux Update Tool System does not create backups on demand.

Creating OpenRC and User Services

Support for Other Desktop Environments

  • By default, Nitrux uses Hyprland, Waybar, and Crystal Dock to put together the desktop. However, users can install other desktop environments or window managers using Distrobox. For more information, see our tutorial, Installing other DEs in Nitrux.
    • ⚠️ Important: Using Distrobox to install other desktop environments is considered an “an experiment” by the Distrobox developer, so keep that in mind.

Wayland Information

  • Starting with Nitrux 2.8.1, the distribution uses a Wayland session by default.
  • Screen sharing is still an issue in Wayland for applications like Discord or Zoom, especially when sharing the entire screen; sharing individual windows may work under Wayland.
    • ⚠️ Important: Since Nitrux 5.0.0, Nitrux doesn’t include any X11 session. To use an X11 session, try installing a compatible X11 window manager or desktop environment with Distrobox.

PipeWire Information

  • Since Nitrux 2.6.0, the distribution uses PipeWire by default.

MESA Information

  • Due to a significant issue with MESA from Git preventing any keyboard input, Nitrux no longer includes development versions of MESA.
  • If using a graphics processor that uses MESA drivers and the GUI does not work, check whether your GPU is loading its firmware. To check, run the following command after logging in to a TTY.
lspci -v | grep -A 10 -i "VGA compatible controller"
lshw -C display
Disclaimer: Nitrux does not develop or package MESA. To file bugs against MESA, please use their bug tracker here.

NVIDIA Information

  • Since Nitrux 5.0.0, the distribution includes the NVIDIA Linux Open GPU Kernel Module by default in only one of the released ISO files.
    • ⚠️ Important: We strongly recommend that users with NVIDIA GPUs use the correct ISO file; likewise, users of AMD/Intel GPUs should use the correct ISO file.
    • 🔰 Information: As of July 18, 2024, NVIDIA has officially announced the transition to using an open-source driver. However, it does not support the same GPU architectures as the Nouveau MESA driver or NVIDIA’s Legacy/Current Proprietary driver, and isn’t entirely “open.”
      • NVIDIA states: “For newer GPUs from the Turing, Ampere, Ada Lovelace, or Hopper architectures, we recommend switching to the open-source GPU kernel modules. For older GPUs from the Maxwell, Pascal, or Volta architectures, the open-source GPU kernel modules are not compatible with your platform. Continue to use the NVIDIA proprietary driver. For mixed deployments with older and newer GPUs in the same system, continue to use the proprietary driver.”
    • ⚠️ Important: We cannot include any NVIDIA Legacy drivers (e.g., 470, 390) alongside the current version, as NVIDIA does not support installing two drivers simultaneously (see links 1 and 2). Additionally, NVIDIA drivers before version 470 (e.g., nvidia-390) do not support hardware-accelerated XWayland, causing non-Wayland-native applications to perform poorly in Wayland sessions.
Disclaimer: Nitrux does not develop the NVIDIA NVIDIA Linux Open GPU Kernel Module. For issues with the NVIDIA driver, including bugs and adding support for graphics cards, please visit NVIDIA Support.

General Gaming Information

  • Nitrux uses either the Liquorix or the CachyOS-patched (by ferreo) kernel, both are enthusiast Linux kernels designed for uncompromised responsiveness.
Disclaimer: Nitrux does not develop, maintain, or package the Liquorix or Pika kernels. Please file bug reports at their bug tracker or ask for assistance on their forums.
  • For a general overview of gaming-related topics in Nitrux, see Gaming in Nitrux pt. 1: Get Started and Gaming in Nitrux pt. 2: Extra Goodies.
  • Nitrux includes desktop launchers for installing SteamBottles, and the Heroic Games Launcher from the applications menu; Nitrux does not include these applications by default.
    • 🔰 Information: Their respective install scripts will install the applications in the background after clicking the launcher in the application menu. Installation time will vary depending on the speed of the Internet connection.
  • Alternatively, users can install Lutris (from Flathub) to run Windows software.
  • Nitrux includes a desktop launcher to install the itch.io Store application, which downloads and runs the official Linux installer; Nitrux does not include this application by default.
    • 🔰 Information: For more information about running the itch.io Store application in Nitrux, see itch.io Store.
Disclaimer: Nitrux does not develop Steam or the Steam Flatpak. To report issues about the Steam Flatpak, create an issue at their bug tracker. Also, Nitrux do not develop Bottles, Heroic Games Launcher, itch.io, or Lutris. Please create an issue at their respective bug trackers to report problems with these applications.

Using Alternative Kernels with Kernel Boot

  • Kernel Boot makes it friendlier to load other Linux kernels on the fly, enabling a faster transition from the currently running kernel to a new one and avoiding the time-consuming hardware initialization and bootloader stages. It performs the following steps:
    1. Reads the settings in the specified configuration file.
    2. Then, it uses Kexec to load the selected kernel using the parameters from the configuration file.
  • In kernel-related topics, for manual building kernel modules using DKMS, see How to Use DKMS in Nitrux.

Using Hypervisors in Nitrux

Energy Saving Information

  • Nitrux includes energy-optimizing software like Powertop and power-profiles-daemon.
    • 🔰 Information: To adequately use Powertop, run it while using the battery so its auto-tune functionality creates the file “saved_results.powertop” in /var/cache/powertop. When using Powertop for calibration, it will toggle various functions, such as the backlight or WiFi. Thus, it may turn your screen black for a while, cause a network connection loss, etc. Do not touch the machine during the calibration.
    • 🔰 Information: Powertop needs to run 370+ measurements before correctly displaying values for the power usage estimation. Each lasts 20 seconds, meaning Powertop must run for 1h30 in total. To do this, run the commands below. Check the available options in Powertop by running the following command powertop --help.
sudo overlayroot-chroot

mount -t devtmpfs dev /dev

powertop --calibrate

sync

umount /dev

exit

Virtual Consoles (TTY) Information

  • Nitrux has seven virtual consolesor TTYs (e.g., TTY #1, TTY #2, etc.), accessible via key combinations  Ctrl+Alt+{F1-F7} by default; some hardware configurations can create additional TTYs, such as laptops using NVIDIA Optimus. Each console can run a separate login session. The graphical session may be available in different TTYs depending on the hardware. Switching to a different TTY can cause graphical corruption in certain setups, e.g., switching from TTY #7 to TTY #2. To work around this issue, switch to a different TTY before switching to the TTY with the graphical session.

GRUB Menu Information

  • Run the following commands to edit the GRUB Menu, such as adding or modifying kernel parameters.
sudo overlayroot-chroot

mount -t devtmpfs dev /dev

mount -t auto $(findfs LABEL=NX_VAR_LIB) /var/lib

micro /etc/default/grub

# (... do stuff...)

update-grub

sync

umount /dev /var/lib

exit
  • When booting with UEFI, press Escape to display the GRUB menu after the manufacturer logo.
    • ⚠️ Important: The GRUB menu will not be displayed in VirtualBox or GNOME Boxes unless there’s an additional entry in GRUB to display a menu; pressing Escape has no effect.
  • When booting with Legacy BIOS, press Shift to display the GRUB menu after the manufacturer logo.

NetworkManager Information

  • To add a wireless connection using the GUI (recommended), do the following steps:
    • Open System Settings→Wi-FI and Internet→Wi-Fi & Networking, or left-click the network module in Waybar.
    • Click the “+” button.
    • Click “Wi-Fi” then Create.
    • Select the SSID (network), then the BSSID (channel), and on “Restrict to device,” select the wireless device, i.e., wlan0.
    • In the “Wi-Fi Security” tab, select the appropriate Security protocol for the network from the drop-down menu.
      • ⚠️ Important: Selecting the wrong protocol will prevent the system from connecting to the network.
    • Enter the password for the selected network.
      • ⚠️ Important: Entering the wrong password will prevent the system from connecting to the network.
    • Select an encryption method for the network password and click Save.
      • 🔰 Information: Selecting either encrypted or non-encrypted will prompt the creation of a wallet in KDE Wallet; see How to use KWalletManager.
        • 🔰 Information: Either way, after the user adds the network, if no wallet exists, the notification “Failed to get secrets for <Network>” will appear; this is not a bug in Nitrux. The message only indicates that there’s indeed no encrypted database, i.e., the wallet to store the secrets, i.e., the password. To solve the problem, simply create a wallet when prompted.
    • After creating a wallet to store the password, connect to the wireless network.
      • 🔰 Information: As of Nitrux 5.0.0, the wallet needs to be unlocked manually, meaning wireless networks do not connect automatically on login.
  • Alternatively, users can use the command nmtui in the terminal (fallback, not recommended).
    • Select “Activate a connection”
    • Navigate to the chosen network using the arrow and tab keys, and select “<Activate>” or press Enter.
    •  Enter the password for the selected network, and select “<OK>” or press Enter.
      • 🔰 Information: Using the command nmtui will skip the KDE Wallet integration.
        • ⚠️ Important: Skipping KDE Wallet to store the network password will be significantly less secure, as NetworkManager stores the password in plain text.
  • NetworkManager automatically configures Ethernet connections, and no user action is required.

Desktop Information

  • Since Nitrux 5.0.0, the distribution uses Hyprland, Waybar, and Crystal Dock to build the desktop; Nitrux no longer uses KDE Plasma. Thus, interaction leans towards keyboard-driven events; here are some of the default shortcuts:
    • Application Launcher: Super+R
    • Terminal: Super+Q
    • Web Browser: Super+W
    • File Manager: Super+E
    • Switch Workspace [1-10]: Super+1,2,3...0
    • Floating Windows: Super+V
    • Terminate Session: Super+M
    • Move Window to Workspace [1-10]: Super+Shift+1,2,3...0
    • Close Window: Super+C
    • Show Clipboard: Super+Shift+V
    • Clear Clipboard: Super+Shift+C
    • Session Options: Super+Shift+P
    • Resize Windows: Super+[hold] RMB
    • Fullscreen Windows: Super+F
      • 🔰 Information: Hyprland does not use the concept of “maximizing” windows; windows are regular size, floating or fullscreen, and the same applies to the concept of “minimzing,” To hide a window, move it to a separate workspace.
  • To make changes to the desktop configuration, edit the files in ~/.config/hypr or ~/.config/waybar, and to customize the dock, right-click it to display its contextual menu.

Misc. Information