Primeval is a GNOME Shell Extension that allows you to select different NVIDIA GPU profiles within your Quick Menu. While it uses the NVIDIA proprietary driver for switching, Primeval supports a variety of different integrated driver vendors and types.
Primeval allows you to switch between three different output profiles:
Your computer will use NVIDIA's Optimus feature, outputting most tasks with your integrated GPU by default but still powering your dedicated GPU and enabling you to dynamically execute some high performance tasks on it (e.g.: serving LLM inference, playing games).
While distributions like Ubuntu may be automatic, forcing the use of a dedicated GPU for some applications or services may require you to use prime-run command when starting a process.
In prime-select query the name of this mode is on-demand.
Your computer will use your integrated graphics and disable your dedicated graphics. This is ideal for strict battery conservation or for environments with low/minimal access to power (e.g.: running on airplane power ports), as it will likely significantly reduce your TDP and power consumption.
In prime-select query the name of this mode is intel.
Your computer will use only your dedicated NVIDIA GPU and disable your integrated graphics. Ideal for maximizing performance in gaming and AI operations, this will reduce latency by ensuring that you only will output GPU calls from your dGPU.
In prime-select query the name of this mode is nvidia.
Note: For some GPUs (e.g.: Ampere/RTX 30-series) you may be required to restart your system after selecting a new profile.
- GNOME Shell 45+
- nvidia-prime (prime-select on PATH)
- pkexec (polkit)
- nvtop (for live GPU stats in the expanded Quick Settings menu;
nvtop -s)
Run without sudo from this repo:
git pull
./install.shIf you previously installed an older build under prime-selector@…, uninstall that first (or remove that directory) before enabling the new UUID primeval@amanoske.github.io.
The installer detects your gnome-shell --version and writes it into metadata.json so Extension Manager does not mark it incompatible.
GNOME does not pick up a newly copied extension until the Shell reloads. Do that next:
X11
- Press
Alt+F2, typer, press Enter - Then enable:
gnome-extensions enable primeval@amanoske.github.ioWayland
- Log out and log back in
- Then enable:
gnome-extensions enable primeval@amanoske.github.ioOpen the system menu (top-right) and look for the GPU tile in Quick Settings.
Re-run ./install.sh from an up-to-date checkout. It patches shell-version for your running Shell. Then reload/log out and enable again.
Check:
gnome-shell --version
cat ~/.local/share/gnome-shell/extensions/primeval@amanoske.github.io/metadata.jsonThat almost always means the Shell has not rescanned extensions yet. Reload/log out first, then run enable again.
Confirm the files landed in your user extensions directory (not root's):
ls ~/.local/share/gnome-shell/extensions/primeval@amanoske.github.io
gnome-extensions list | grep -i prime
gnome-shell --versionRun without sudo from this repo:
./uninstall.shThis disables the extension (when gnome-extensions is available) and removes:
~/.local/share/gnome-shell/extensions/primeval@amanoske.github.io
Then reload GNOME Shell (Alt+F2 → r on X11, or log out on Wayland) so the GPU tile disappears.
