My AMD Adrenaline / NVIDIA Settings Linux Alternative
A graphical interface for configuring GPU environment variables and performance settings for Linux gaming. Initially made for personal use, now open-sourced so others can benefit from it too.
- What you can do?
- Build/Test Requirements
- Installation
- Testing volt-gui
- How to use volt-gui
- How to use the volt script
- Render Selector explained
- Technical References
- Contributing
- Mesa Drivers: Configure Mesa Drivers specific environment variables.
- NVIDIA Drivers: Configure NVIDIA Proprietary Drivers specific environment variables.
- Dynamic Render Selection: Select renderers for both OpenGL and Vulkan applications. The program dynamically sets the required environment variables depending on your GPU.
- Configure various MangoHud options.
- Configure Gamescope compositing window manager settings.
- Configure LSFG frame generation settings.
- Configure Proton and Wine environment variables for Steam gaming, including DXVK, synchronization, upscaling (FSR4, DLSS, XeSS), NVIDIA libraries, Wayland support, and audio configuration.
- All GPU settings are automatically added to the
voltscript.
These will be passed to the executed program. Example:
gamemoderun
- Configure settings specific to the volt-gui program itself.
- Each profile has its own set of configurations, which can be applied through the program or system tray.
- Linux operating system
- Python 3.9 or higher
- Pip
- The
python3-venvpackage is required on Debian/Debian based distros. - bash
- make
- coreutils
- shasum (for dependency hash checking)
- C/C++ Compiler
- patchelf
- ccache (optional, for optimizing compiling times)
- fuse or fuse3
- wget
If this software is not provided, its options will be locked.
- mangohud in the case you want to make use of the MangoHud Settings. Both the native or the Flatpak version satisfy the dependency.
- gamescope in the case you want to make use of the Gamescope Settings.
- lsfg in the case you want to make use of the LSFG Frame Gen Settings. Both the native or the Flatpak version satisfy the dependency.
glxinfois required to use the OpenGL Render Selector.vulkaninfoand thevulkan mesa layerare required to use the Vulkan Render Selector.
-
Build the application using one of the available targets:
Using PyInstaller:
make pyinstaller
Using Nuitka:
make nuitka
Note: Both use a Python virtual environment to avoid system wide package installation using pip.
-
Optionally create an AppImage:
make appimage
-
Install the application system wide:
make install
This will:
- Copy the executable to
/usr/local/bin/ - Create a desktop entry at
/usr/share/applications/volt-gui.desktop
- Copy the executable to
To build all release artifacts (PyInstaller and Nuitka builds with their AppImages):
make releaseArtifacts will be placed in the releases/ directory.
To uninstall volt-gui:
make removeThis will:
- Remove
volt-gui,volt, andvolt-helperfrom/usr/local/bin/ - Remove the desktop entry
/usr/share/applications/volt-gui.desktop
make cleanIn the case you want to contribute to the project you can use the provided make target to test the changes you made. This will create a Python virtual environment if one does not already exist, install dependencies, and run the program:
make testNote
Use make clean to remove the virtual environment and all build artifacts. The py_env folder should be deleted if it becomes corrupted, or if it was created with your system python, and you want to use a python version that is inside a distrobox box, or vice versa.
Simply launch volt-gui from your application menu or run volt-gui from the terminal.
The GPU, Proton, and Launch Options settings are saved on the volt script. Here are some examples of its usage:
When using the terminal or a custom desktop entry:
volt glxgears
When using a Launcher to play your game, you can just add it to the game launch options, like this:
Steam (Native):
volt %command%
Lutris (Native):
volt
When using the terminal or a custom desktop entry:
volt flatpak run net.pcsx2.PCSX2
Select OpenGL RendererSelects the GPU/Renderer that will be used to render OpenGL programs. Those GPUs/Renderers are obtained throughglxinfo.Select Vulkan RendererSelects the GPU/Renderer that will be used to render Vulkan programs. Those GPUs/Renderers are obtained throughvulkaninfo, also for this to work on some distros you might need to install some additional dependencies likevulkan-mesa-layerson Arch Linux. More info is provided on the Welcome Window that opens once you open volt-gui.
Based on documentation and references from:
- MangoHud Github - Readme
- Gamescope Github
- lsfg-vk Github - Readme
- lsfg-vk Github - Wiki
- Mesa Documentation - Environment Variables
- FreeDesktop - Dri Configuration Options
- NVIDIA Drivers - Documentation
- Proton-CachyOS Github
- Additionally, sometimes i had to read code from Open Source projects to check how some options work.
Contributions are welcome. Please ensure compatibility with supported Python versions and follow the existing code structure. Read: Build/Test Requirements, Installation, and Testing volt-gui before contributing.


