Skip to content

pythonlover02/volt-gui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

322 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

volt-gui

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.

Badge Language Stars

Table of Contents

What you can do?:

GPU Configuration:

  • 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 volt script.

Add custom launch options to the volt script:

These will be passed to the executed program. Example:

gamemoderun

Options:

  • Configure settings specific to the volt-gui program itself.

Create or Delete Profiles:

  • Each profile has its own set of configurations, which can be applied through the program or system tray.

Build/Test Requirements:

  • Linux operating system
  • Python 3.9 or higher
  • Pip
  • The python3-venv package is required on Debian/Debian based distros.
  • bash
  • make
  • coreutils
  • shasum (for dependency hash checking)

Additional Requirements for Building with Nuitka:

  • C/C++ Compiler
  • patchelf
  • ccache (optional, for optimizing compiling times)

Additional Requirements for Creating AppImage:

  • fuse or fuse3
  • wget

Additional requirements for some Options:

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.
  • glxinfo is required to use the OpenGL Render Selector.
  • vulkaninfo and the vulkan mesa layer are required to use the Vulkan Render Selector.

Installation:

Quick Install:

  1. 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.

  2. Optionally create an AppImage:

    make appimage
  3. 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

Full Release Build:

To build all release artifacts (PyInstaller and Nuitka builds with their AppImages):

make release

Artifacts will be placed in the releases/ directory.

Removal:

To uninstall volt-gui:

make remove

This will:

  • Remove volt-gui, volt, and volt-helper from /usr/local/bin/
  • Remove the desktop entry /usr/share/applications/volt-gui.desktop

Clean Build Artifacts:

make clean

Testing volt-gui:

In 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 test

Note

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.

How to use volt-gui:

Simply launch volt-gui from your application menu or run volt-gui from the terminal.

How to use the volt script:

The GPU, Proton, and Launch Options settings are saved on the volt script. Here are some examples of its usage:

Native Programs:

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

Flatpak:

When using the terminal or a custom desktop entry:

volt flatpak run net.pcsx2.PCSX2

Render Selector explained:

  • Select OpenGL Renderer Selects the GPU/Renderer that will be used to render OpenGL programs. Those GPUs/Renderers are obtained through glxinfo.
  • Select Vulkan Renderer Selects the GPU/Renderer that will be used to render Vulkan programs. Those GPUs/Renderers are obtained through vulkaninfo, also for this to work on some distros you might need to install some additional dependencies like vulkan-mesa-layers on Arch Linux. More info is provided on the Welcome Window that opens once you open volt-gui.

Technical References:

Based on documentation and references from:

Contributing:

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.

About

My AMD Adrenaline / NVIDIA Settings Linux Alternative

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors