Nix options
The flake’s modules, as nix/home-manager.nix and nix/nixos.nix declare them. Install shows where each one goes.
Home Manager
Section titled “Home Manager”imports = [ inputs.universe.homeModules.default ];
enable
Section titled “enable”programs.universe.enable
Whether to enable Universe game launcher (user side: packages, config.toml).
Type: boolean · default false.
Example:
truedesktop
Section titled “desktop”programs.universe.desktop
Universe Desktop, the GTK app for mouse and keyboard, with the GNOME Shell search provider for the library. null leaves it out.
Type: null or package · default this flake’s universe-desktop.
package
Section titled “package”programs.universe.package
The universe CLI, with the modules and sources that ship with it.
Type: package · default this flake’s universe.
settings
Section titled “settings”programs.universe.settings
Contents of config.toml (see docs/api.md): paths, launch defaults, the enabled modules and sources with their [modules.<id>] and [sources.<id>] settings, keys. Set, config.toml is a store symlink the core cannot write: universe config set, enabling a module or source and the UI’s settings pages are refused, so every setting comes from here. null (the default) leaves config.toml to the user and the core writes it in place.
Type: null or TOML value · default null.
Example:
{ launch = { proton = "proton-ge"; }; modules = { capture = { codec = "av1_10bit"; }; enabled = [ "capture" "screenshot" ]; }; paths = { recordings_root = "/mnt/recordings/games"; }; sources = { enabled = [ "gog" ]; gog = { platform = "linux"; }; };}shellExtension
Section titled “shellExtension”programs.universe.shellExtension
The ‘universe@ilyasturki.github.io’ GNOME Shell extension: the capture module lists windows through it for window-only recording, the screenshot module takes its screenshots in it, the controller macros show the shell’s OSD through it. GNOME loads it after the next logout.
Type: package · default this flake’s universe-shell-extension.
programs.universe.ui
Universe Big Screen (universe-ui), the app you drive with a controller.
Type: package · default this flake’s universe-ui.
imports = [ inputs.universe.nixosModules.default ];
enable
Section titled “enable”programs.universe.enable
Whether to enable Universe game launcher (system side: gsr-kms-server, uinput, uhid, gamescope).
Type: boolean · default false.
Example:
truecapture.enable
Section titled “capture.enable”programs.universe.capture.enable
Enable gpu-screen-recorder with its setcap KMS helper for the capture module, at the version this flake’s nixpkgs ships (the helper and the recorder must match).
Type: boolean · default true.
controller.enable
Section titled “controller.enable”programs.universe.controller.enable
What the controller macros and the pads module need from the system: /dev/uinput opened to the logged-in user (key macros type through it), the game-devices udev rules that make pads readable by the logged-in user, and /dev/uhid with the virtual pads’ hidraw nodes opened to that user (the pads module creates one virtual pad per player there).
Type: boolean · default true.
gamescope.enable
Section titled “gamescope.enable”programs.universe.gamescope.enable
gamescope with its CAP_SYS_NICE wrapper: every game runs inside it (launch.gamescope), one window that is black until the game draws.
Type: boolean · default true.
session.enable
Section titled “session.enable”programs.universe.session.enable
Whether to enable the Universe session in the display manager: gamescope drives the screen with the launcher as its only client, like SteamOS’s Game Mode, and quitting logs out. services.displayManager.defaultSession = "universe" with an autologin boots straight into it.
Type: boolean · default false.
Example:
truesession.package
Section titled “session.package”programs.universe.session.package
The universe-ui the session runs: the one Home Manager installs, so both read the same library.
Type: package · default this flake's universe-ui.