-
Notifications
You must be signed in to change notification settings - Fork 61
Frequently Asked Questions
EnvyControl is a much lighter tool designed with simplicity in mind, it doesn't requires extensive config files or having a daemon running 24/7 on your system as well as having to install a patched version of GDM if you're a Gnome user. EnvyControl is also compatible with most Linux distributions (including Arch Linux, Debian, Ubuntu and its derivatives).
Feel free to use the tool of your choice.
The current state of Nvidia Optimus laptops on Linux is sad, each mode comes with a downside so you may find yourself switching modes quite often.
This mode will power off the Nvidia GPU by blacklisting the Nvidia and nouveau drivers, as well as removing the card from the PCI bus using Udev rules.
Since the dGPU is turned off your battery may last longer than on Windows, also you will be able to use Wayland and enjoy Linux without having to worry about overheating. The downside is that you can't use any external screen because on most laptops the HDMI ports are wired to the dGPU.
This mode will render both internal and external screens using the Nvidia GPU, it requires the propietary Nvidia drivers to be installed and currently it's only compatible with Intel + Nvidia systems.
It works by creating a X.org config file with the Intel iGPU attached to an inactive screen forcing the system to render all screens with the Nvidia dGPU. It will also enable modesetting for the Nvidia driver which is required for PRIME synchronzation.
The downsides are that you can't use Wayland, your battery will drain in a couple of minutes, the laptop will overheat even if doing nothing and the fans will go brrrrr.
This is the recommended mode for working with external screens, if tearing appears on external screens please use nvidia-force-comp-pipeline .
This is the default behavior for both Nvidia and nouveau drivers, the dGPU can be accesed on-demand with DRI_PRIME=1 <command>
for nouveau or __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia <command>
for the propietary driver.
The propietary driver implements dynamic power management (like Windows) only on Turing and newer cards paired with Intel 8th gen or newer processors. Read the official documentation to enable it if you're eligible.
The downsides are poor battery life on cards that don't support dynamic power management (like mine), external screens are laggy due to a broken reverse PRIME implementation on X.org and Wayland crashes if an external screen is connected (tested on Gnome).
Well, nouveau supports external screens on Wayland but it's laggy and prone to make your system crash.
See this video 👇
- Arch Linux (GNOME, MATE, Plasma, Xfce)
- Debian 11, 12 (GNOME, Plasma, Xfce)
- ElementaryOS 6.x,7.x (Pantheon)
- EndeavourOS (GNOME, Plasma, Xfce)
- Fedora 40 (GNOME, Plasma, Xfce)
- Linux Mint 20, 21, 22 (Cinnamon, Xfce)
- Manjaro (GNOME, Plasma, MATE, Xfce)
- MX Linux 21 (Plasma, Xfce)
- Regolith 2.x (i3wm)
- Ubuntu 20.04,22.04, 24.04 (GNOME, Plasma, XFCE, MATE)
- Void Linux (bspwm, dwm)
Feel free to report me if EnvyControl works on other distros in order to update this list.
Ubuntu bundles its own tool for managing Nvidia Optimus graphics, before using EnvyControl please run sudo prime-select on-demand
followed by sudo systemctl mask gpu-manager.service
to prevent gpu-manager from interfering.
- GDM
- SDDM
- LightDM
This step is only required for nvidia
mode, you need to setup your display to manager to execute a script with the following content:
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
Try disabling DRI3 and falling back to DRI2 as stated here.
- Add
LIBGL_DRI3_DISABLE=true
to/etc/environment
and reboot.