#!/usr/bin/env python import pygtk pygtk.require('2.0') import gtk import gtk.glade import gtk.gdk as gdk import gobject import compizconfig from execute import run from subprocess import Popen import ccm class Base: def SystemInfoCheck(self): self.glxinfo = run('glxinfo', 'output') self.xvinfo = run('xvinfo', 'output') self.xdpyinfo = run('xdpyinfo', 'output') # We need to check if TFP is direct or Indirect self.tfp = False if self.glxinfo.count('GLX_EXT_texture_from_pixmap') == 0: self.tfp = 'none' elif self.glxinfo.count('GLX_EXT_texture_from_pixmap') < 3: self.tfp = 'indirect' else: self.tfp = 'direct' # Because Xgl is an entirely new server, we need to check for it first if 'Xgl' in self.xvinfo: self.XglIsActive = True self.possible = True self.StartupCommand = "compiz --replace ccp" else: self.XglIsActive = False if self.XglIsActive == True: self.RenderingPathString = 'Xgl. Desktop effects are provided by an OpenGL overlay. You may notice slowness with 3D applications and Video' else: if self.tfp == 'direct': self.RenderingPathString = 'Direct Rendering. Desktop effects are provided by your graphics card. You may experience driver glitches.' self.possible = True elif self.tfp == 'indirect': self.RenderingPathString = 'X.org AIGLX. Some 3D applications and video may not display correctly when desktop effects are enabled' self.possible = True elif self.tfp == 'none': self.RenderingPathString = 'Desktop effects cannot be enabled. You will need to configure your X server' self.possible = False line = [l for l in self.glxinfo.splitlines() if 'OpenGL renderer string:' in l] if line: self.GlxRenderer = ' '.join(line[0].split()[4:]) if 'Intel' in self.GlxRenderer: self.StartupCommand = "INTEL_BATCH=1 LIBGL_ALWAYS_INDIRECT=1 compiz --replace ccp" elif 'ATI' in self.GlxRenderer: self.StartupCommand = "LIBGL_ALWAYS_INDIRECT=1 compiz --replace ccp" elif 'NVIDIA' in self.GlxRenderer: if self.tfp == "direct": self.StartupCommand = "__GL_YEILD='NOTHING' compiz --replace --loose-binding ccp" elif self.tfp == "indirect": self.StartupCommand = "LIBGL_ALWAYS_INDIRECT=1 compiz --replace ccp" print "For reference, your startup command is:" + " " + self.StartupCommand