So this issue rather, bothers me where if I’ve configured in the
specific start up settings and config parameters it gets lost on reboot every time no matter what changes you have done and saved into the Xorg Conf file. I did my researched and it’s not always come up with answers that can fix this. But from what I’ve found is that upon every boot nvidia-settings overwrites the Xorg Conf file. Now some people have posted solutions on how to prevent it from being overwritten on boot, however those solutions don’t work at all.
From what I’ve read this too is also in the official documentation;
The NVIDIA X driver does not preserve values set with nvidia-settings between runs of the X server (or even between logging in and logging out of X, with xdm, gdm, or kdm). This is intentional, because different users may have different preferences, thus these settings are stored on a per user basis in a configuration file stored in the user's home directory.
While that may be true, not all setups have multiple user accounts on one system that have different desktop managers. My desktop manager is MDM, a modified version of GDM made for Linux Mint distro, therefore only 1 desktop manager is installed.
One user I read on a post somewhere suggested adding to the xinitrc file;
but this hasn’t worked for me. It looks like it either completely ignores it or it just overwrites the xorg.conf file anyway even if it was ran or not. I don’t know which of those might be true… but anyway, because my system is sorta running 2 different graphic setups Intel HD Graphics + Nvidia it does create some conflicts due to the limitation of X Server’s code not being readily supportive for dual-graphic card setups of different types running on one system.
a small snippet from my xorg.conf file of what I got for my Nvidia setup.
Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" Option "RegistryDwords" "PowerMizerEnable=0x1" Option "RegistryDwords" "PerfLevelSrc=0x2222" Option "RegistryDwords" "PowerMizerDefault=0x2" Option "RegistryDwords" "PowerMizerDefaultAC=0x2" EndSection
Those options I put in there was some things others have suggested to stop it from being overwritten, but again this doesn’t do any good which xorg.conf gets overwritten by nvidia-settings instead of just loading what’s already there.
The issue here is it’s not the fact that it’s being overwritten, but that it takes the xorg.conf that already exists and turns into a backup and writes a new xorg.conf file, and re-writes the settings nvidia-settings uses that were previously set. So if I set PowerMizer to Prefer Maximum Performance, and OpenGl Settings to High Performance, I lose these settings on reboot as a result and have to keep setting them again.
I do have my own .xinitrc file in my home directory too to try set them automatically on login, but these are completely ignored and so completely useless to me. I do hope that future development of X Server is better improved for dual-graphic card setups, and Nvidia decides to show some better support towards Linux so people know how to make them work more better and efficiently under Linux. I do happen to know a few who work on the unofficial drivers of nvidia drivers, much which has been reverse engineered to have decent usability for average Linux users, but far from perfect with the fancy tricks and gimmicks that are in the official drivers.
I’m not sure much half of the time that nvidia-settings do actually work or make much difference at all. But I do know that when the PowerMizer setting in particular isn’t running at it’s Max Performance level some applications fail to run properly, or just unexpectedly crash when it runs on Auto mode which sets it to lowest possible performance mode.
Graphics: Card-1: Intel 3rd Gen Core processor Graphics Controller bus-ID: 00:02.0 Card-2: NVIDIA GF108M [GeForce GT 630M] bus-ID: 01:00.0 Display Server: X.Org 1.18.4 driver: nvidia Resolution: firstname.lastname@example.org GLX Renderer: GeForce GT 630M/PCIe/SSE2 GLX Version: 4.5.0 NVIDIA 367.57 Direct Rendering: Yes