SDB:NVIDIA Switcheroo Control
Tested on openSUSE
Recommended articles

Related articles
Switcheroo Control is a D-Bus service to check the availability of hybrid GPU configurations and integrate with the desktop environment.
Situation
You have a laptop with an NVIDIA discrete graphics card and Intel or AMD integrated GPU (iGPU), otherwise known as NVIDIA Optimus technology. You may need to run programs using the discrete graphics card, but you don't want the discrete graphics active all the time, because that would cause the laptop to consume too much energy. You also are using either Gnome or the KDE desktop environment with Wayland, which both offer GUI integration for hybrid graphics (for X11 support, see SDB:NVIDIA SUSE Prime). However, this integration is not enabled by default on openSUSE Tumbleweed.
Procedure
This procedure is for a new Tumbleweed installation.
Install NVIDIA Drivers
Install the NVIDIA proprietary driver: SDB:NVIDIA drivers
After finishing the driver install with YAST or Zypper, the next step is to reboot to continue the install. If you have secure boot enabled, enroll the keys to the MOK database.
Remove suse-prime
Next, remove and lock suse-prime. suse-prime is installed by default as part of the NVIDIA driver install.
sudo zypper remove suse-prime sudo zypper al suse-prime
Install and Enable Switcheroo Control
sudo zypper in switcheroo-control sudo systemctl enable --now switcheroo-control.service
Verification and commands
After NVIDIA driver setup is complete, verify that right clicking on apps in the Gnome app menu gives one of the following two options:
- "Launch Using Dedicated Graphics Card"
- "Launch Using Integrated Graphics Card"
List the known GPUs. The device number can be used to specify the GPU to launch on for the launch command. This is the default command if no commands are passed to switcherooctl:
switcherooctl list
If switcherooctl list
does not list any GPU, the switcheroo-control.servive
is not enabled.
Launch application on a specific GPU. If no GPU is specified the first discrete (non-default) GPU is used, or the default GPU if there's no discrete GPU. The -g
option defines the GPU to launch the application on. The GPU identifier can be gathered using the list command:
switcherooctl launch -g 1 <application>