All pastes #228792 Raw Edit

Untitled

public text v1 · immutable
#228792 ·published 2006-10-30 07:26 UTC
rendered paste body
--- tmp	2006-10-30 00:22:04.000000000 -0700
+++ nvidia-config-display	2006-10-29 23:30:22.000000000 -0700
@@ -1,4 +1,6 @@
-s program is free software; you can redistribute it and/or modify
+#!/usr/bin/python
+#
+# This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or
 # (at your option) any later version.
@@ -95,6 +97,21 @@
         i += 1
 
 #
+# Check if only glx is loading
+
+def fixOneModule():
+    i = 0
+    glx = 0
+    for m in modules.load:
+        if (m.name.lower() == "glx"):
+            glx += 1
+        i += 1
+    if glx == i:
+	return 1
+    else:
+	return 0
+
+#
 # Set driver to newDriver where 
 # if driver is oldDriver
 # 
@@ -103,6 +120,25 @@
         if (dev.driver.lower() == oldDriver.lower()):
             dev.driver = newDriver
 
+# Add and remove device options
+
+def addDeviceOption(device, newOption, optionInfo):
+    for dev in device:
+      for o in dev.options:
+        i = 0
+        if (o.name.lower() == newOption.lower()):
+          dev.options.remove(i)
+        i += 1
+      dev.options.insert(xf86config.XF86Option(newOption, optionInfo))
+
+def removeDeviceOption(device, oldOption):
+    for dev in device:
+      for o in dev.options:
+	i = 0
+	if (o.name.lower() == oldOption.lower()):
+	  dev.options.remove(i)
+	i += 1
+
 def printError(err):
     print "Error: ", err
 
@@ -157,24 +193,27 @@
         xconfig.files.module = TOP_MOD_DIR
 
     # Create an empty modules section
-    if xconfig.modules == None:
-        xconfig.modules = xf86config.XF86ConfModule()
+    #if xconfig.modules == None:
+    #    xconfig.modules = xf86config.XF86ConfModule()
     
     if (arg == "enable"):
         # Enable nvidia driver:
         # Add nvidia module path, disable dri and GLcore modules
         # make sure glx is enabled and change driver to 'nvidia'
         addModulePath(xconfig.files, "/extensions/nvidia")
-        removeModule(xconfig.modules, "dri")
-        removeModule(xconfig.modules, "GLcore")
-        addModule(xconfig.modules, "glx")
+	if xconfig.modules:
+	  if fixOneModule:
+	    removeModule(xconfig.modules, "glx")
+	  else:
+	    addModule(xconfig.modules, "glx")
         toggleDriver(xconfig.device, "nv", "nvidia")
+	addDeviceOption(xconfig.device, "AddARGBGLXVisuals", "True")
     elif (arg == "disable"):
         # Disable nvidia driver:
         # Remove nvidia module path, enable dri module
         # and change driver to 'nv'
         removeModulePath(xconfig.files, "/extensions/nvidia")
-        addModule(xconfig.modules, "dri")
+	removeDeviceOption(xconfig.device, "AddARGBGLXVisuals")
         toggleDriver(xconfig.device, "nvidia", "nv")
     else:
         # This shouldn't happen, but we handle it anyway