Askannz / optimus-manager

A Linux program to handle GPU switching on Optimus laptops.
MIT License
2.31k stars 172 forks source link

⚙️ Function

Enhances the performance and power management on Nvidia Optimus Laptops, by properly selecting when to use each GPU.

The Nvidia GPU runs the whole desktop, while the Intel/AMD GPU acts as relay between the Nvidia GPU and the screen.

More info at the wiki.

📚 Guides

If you are experiencing an issue, first try:

🔧 Contributing

If you figured out how to fix an issue, or to how improve ease of use, you may contribute an improvement:

  1. Click on the "Fork" button.
  2. git clone git@github.com:[YOUR-USER]/optimus-manager.git
  3. Modify the faulty files.
  4. Thorougly test that the program still works. See the scripts at package.
  5. git summary + git add --all + git commit --message="[SUMMARY OF CHANGES] + git push.
  6. Open a pull request.
  7. Accepted in two days.

🗳️ Reporting issues

If you are unable to fix an issue by yourself, or how to implement an idea to make things easier, report it:

  1. Isolate which specific config is causing your issue.
  2. Open an issue report. Include the output of inxi --graphics.
  3. When requesting further info your report may be closed. Just reopen it when done so.

🖥️ Supported platforms

💽 Installation

  1. If you are not using the standard linux kernel, install the linux-headers package variant that matches your kernel name.

  2. Install the appropiate nvidia package.

  3. Install the optimus-manager package. In the AUR: optimus-manager-git.

📝 Configuration

On X11 the Nvidia GPU is used for everything by default. This provides maximum performance and ease of use at the expense of power consumption. If you want to try to optimize this, see /etc/optimus-manager/.

On Wayland the Nvidia GPU is used for high performance apps which use GLX or Vulkan. While the integrated GPU for no so demanding apps which use EGL, like the desktop itself and the web browser. This behavior is not configurable.

🔀 Modes

⚠️ Warning:

📎 System Tray

All desktops:

Gnome:

🎰 Boot entries

Useful if you want to have different entries for different GPU startup modes.

This only affects which GPU your desktop session starts with, nothing prior to that.

Edit your boot loader config to have the kernel parameter optimus-manager.startup=[nvidia\integrated\hybrid].

Or if you are using the GRUB bootloader, you can use optimus-manager-grub.

📜 Terminal