今天多少人升级compiz 出了问题的?

各种窗口管理器和美化相关
回复
剩疯
帖子: 84
注册时间: 2007-11-05 20:52

今天多少人升级compiz 出了问题的?

#1

帖子 剩疯 » 2008-02-07 16:55

按照置顶帖的源 升级以后用不了emerald主题了````````````````
窗口装饰选上了 也装了compiz fusion icon /usr/bin/compiz也修改了

代码: 全选

#!/bin/bash
# Compiz wrapper, born as loader in Ubuntu Packages
#
# Based on:
#  Compiz Manager
#  Copyright (c) 2007 Kristian Lyngstøl <kristian@bohemians.org>
#
# Addons by Treviño (3v1n0) <trevi55@gmail.com>
#
# 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.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#
#
# Much of this code is based on Beryl code, also licensed under the GPL.
# This script will detect what options we need to pass to compiz to get it
# started, and start a default plugin and possibly window decorator.

## TODO
# Compare scripts with old beryl loader
# Fix bug loading this script on a gnome session [Fixed? Not for all! :/]
# Fix xfwc4 and others (maybe killall before - reporting needed!)
# in start_decorators (maybe) if $DECORATOR doesn't exist, use the first
#  available between the $STD_COMPDECORATORS decorators...


## Default Options - Setting these you can override wrapper defaults

# Set to yes to enable verbose (-v) by default.
VERBOSE="no"

# Default Compiz arguments. Others are added to this, and the configuration can
# override ALL arguments. You can pass compiz args also by command line
ARGS="--ignore-desktop-hints" # --replace


# Ditto for enviromental variables.
ENV=""

# Default plugins.
# Set it to empty to make the script use the best plugins for your environment
PLUGINS=""

# All the configuration plugins available, the first found in that order will be
# selected if not called by commandline or if not set using the CONFIGPLUGIN variable
CONFIGPLUGINS="ccp gconf ini"

# Default configuration plugin. Should probably be one of $CONFIGPLUGINS.
# This parameter will override any user command line argument
CONFIGPLUGIN=""

# Default plugins to enable on first CompizConfig init
# Unneeded if you have a good libccs global.xml file
DEFAULTCCSPLUGINS="decoration move resize cube rotate minimize zoom fade wobbly dbus png switcher scale place"

# Defines the decorator and arguments.
# Set it to empty to make the script use the best decorator for your environment
DECORATOR="emerald"
DECORATORARGS="--replace"

# Delay in seconds before we bring up the decorator(s)
# This avoids starting the decorator before the WM is up,
# even if it shouldn't be a problem.
DELAY="1.5"

# Set to "no" to pipe all decorator error messages to /dev/null
DECOERRORS="no"

# Internal, used to process options.
TASK="normal"

# No indirect by default
INDIRECT=1

# Set compiz default library directory
COMPIZPLUGINDIR="/usr/lib/compiz/"

# Set compiz executable
COMPIZ="/usr/bin/compiz.real"

# Set your default Fallback win manager (if the wrapper can't set one for you!)
FALLBACK_WINMANAGER=""

# Set to yes to enable logging (-l) by default.
LOG="no"

# Define the file in wich log all the events (if enabled)
LOGFILE="/tmp/compiz.log"

# Echos the arguments if verbose
function verbose
{
	if [ "x$VERBOSE" = "xyes" ]; then
		echo -ne "$*"
	fi
	if [ "x$LOG" = "xyes" ]; then
		touch "$LOGFILE"
		if ! (echo "$*" | grep -qw "present\|sleeping\|Screen"); then
			echo -ne "[$(date +"%H:%M:%S")] " >> "$LOGFILE"
		fi
		echo -ne "$*" >> "$LOGFILE"
	fi
}

# Integrate the lists of plugins and args without creating duplications
function add_argument
{
	value="$1"
	if ! (echo "$ARGS" | grep -qw -- "$value"); then
		ARGS="$ARGS $value"
		case $value in
			--replace) REPLACEWM="yes" ;;
			--use-copy) USECOPY="yes" ;;
			--force-fglrx) FORCEFGLRX="yes" ;;
		esac
		return 0
	fi
	return 1
}

### System checks
# These are used for checking what hardware and software we're dealing with,
# so we can decide what options to pass to compiz, if it's even possible to
# start compiz.

# Check wether the composite extension is present
function check_composite
{
	verbose "Checking for Composite extension: "
	if xdpyinfo -queryExtensions | grep -q Composite ; then
		verbose "present. \n";
		return 0;
	else
		verbose "not present. \n";
		return 1;
	fi
}

function check_xdamage
{
	verbose "Checking for XDamage extension: "
	if xdpyinfo -queryExtensions | grep -q DAMAGE ; then
		verbose "present. \n";
		return 0;
	else
		verbose "not present. \n";
		return 1;
	fi
}

# Check for existence if NV-GLX
function check_nvidia
{
	verbose "Checking for nVidia: "
	if xdpyinfo | grep -q NV-GLX ; then
		verbose "present. \n"
		return 0;
	else
		verbose "not present. \n"
		return 1;
	fi
}

# Check for existence of Intel Mesa DRI
function check_intel
{
	verbose "Checking for Intel: "
	if glxinfo 2> /dev/null | grep -q "Mesa DRI Intel(R)"; then
		verbose "present. \n"
		return 0;
	else
		verbose "not present. \n"
		return 1;
	fi
}

# Detects if Xgl is running
function check_xgl
{
	verbose "Checking for Xgl: "
	if xvinfo | grep -q Xgl ; then
		verbose "present. \n"
		return 0;
	else
		verbose "not present. \n"
		return 1;
	fi
}

# Check for presence of FBConfig
function check_fbconfig
{
	verbose "Checking for FBConfig: "
	if glxinfo 2> /dev/null | grep -q GLX_SGIX_fbconfig ; then
		verbose "present. \n"
		return 0;
	else
		verbose "not present. \n"
		return 1;
	fi
}

# Check for TFP
function check_tfp
{
	verbose "Checking for texture_from_pixmap: "
	if [ `glxinfo 2>/dev/null | grep GLX_EXT_texture_from_pixmap -c` -gt 2 ] ; then
		verbose "present. \n"
		return 0;
	else
		verbose "not present. \n"
		if [ "$INDIRECT" -eq 0 ]; then
			unset LIBGL_ALWAYS_INDIRECT
			INDIRECT=1
			return 1;
		else
			verbose "Trying again with indirect rendering:\n";
			INDIRECT=0
			export LIBGL_ALWAYS_INDIRECT=1
			check_tfp;
			return $?
		fi
	fi
}

# Check for non power of two texture support
function check_npot_texture
{
	verbose "Checking for non power of two support: "
	if glxinfo 2> /dev/null | egrep -q '(GL_ARB_texture_non_power_of_two|GL_NV_texture_rectangle|GL_EXT_texture_rectangle|GL_ARB_texture_rectangle)' ; then
		verbose "present. \n";
		return 0;
	else
		verbose "Not present. \n"
		return 1;
	fi

}

function check_xsync
{
	verbose "Checking for XSync extension: ";
	if xdpyinfo -queryExtensions | grep -q SYNC ; then
		verbose "present. \n";
		return 0;
	else
		verbose "not present. \n" ;
	fi
}

function check_bad_driver
{
	verbose "Checking for Unsupported sessions: ";
	xorg_log=$(xset q|grep "Log file"|awk '{print $3}')
	if [ -n "$xorg_log" ] && egrep -q "/usr/lib/xorg/modules/drivers/+(nv|vga|vesa)_drv\.so" "$xorg_log"; then
		verbose "present. \n"
		return 0
	else
		verbose "not present. \n" ;
		return 1
	fi
}

function check_texture_copy
{
	verbose "Checking for copy texture support: "
	if glxinfo 2> /dev/null | grep -qw 'GL_EXT_bgra' && 
	   glxinfo 2> /dev/null | grep -qw 'GL_EXT_texture_edge_clamp\|GL_SGIS_texture_edge_clamp'; then
		verbose "present. \n";
		return 0;
	else
		verbose "Not present. \n"
		return 1;
	fi

}

# Counts how many screens we have, and the base value for DISPLAY=
# so we can easily start one decorator per screen
function check_multiscreen
{
	SCREENS=$(xdpyinfo | grep "screen #" | wc -l)
	verbose "Detected $SCREENS screen(s)\n";
	if [ "$SCREENS" == "1" ]; then return 0; fi;
	verbose "Multiscreen enviromental detection: \n"
	DISPLAYBASE=$(xdpyinfo | grep name\ of\ display | sed 's/.* display: *//' | sed 's/\..*//')
	verbose "\tDetected $DISPLAYBASE as the base of the DISPLAY variable\n";
	SCREENNUMBERS=$(xdpyinfo | grep "screen #" | sed -r 's/screen #(.):/\1/')
	for a in $SCREENNUMBERS ; do
		MULTIDISPLAY[$a]=${DISPLAYBASE}.$a
		verbose "\tMULTIDISPLAY[$a] set to: ${MULTIDISPLAY[$a]}\n";
	done
}

function possible_check
{
	if [ "$1" = "1" ]; then
		echo "Fatal: Failed test: $2";
		return 1;
	fi
	return 0;
}

# Returns true if we think it's actually possible to start compiz
function check_possible
{
	POSSIBLE="1"
	if [ "$XGL" = "0" ]; then POSSIBLE=0; return 0; fi
	if ( [ "x$USECOPY" = "xyes" ] || [ "x$FORCEFGLRX" = "xyes" ] ); then
		if ! possible_check "$TEXTURECOPY" "copy texture not available"; then return 1; fi
	else
		if ! possible_check "$TFP" "texture_from_pixmap support"; then return 1; fi
	fi
	if ! possible_check "$NPOT" "non-power-of-two texture support"; then return 1; fi
	if ! possible_check "$FBCONFIG" "FBConfig"; then return 1; fi
	if ! possible_check "$COMPOSITE" "Composite extension"; then return 1; fi
	if ! possible_check "$XDAMAGE" "XDamage extension"; then return 1; fi
	if ! possible_check "$XSYNC" "XSync extension"; then return 1; fi
	POSSIBLE="0";
	return 0;
}


### Work functions

# Builds a new-line seperated string of enviromental variables we might want
function build_env
{
	if [ $NVIDIA -eq 0 ]; then
		ENV="__GL_YIELD=NOTHING"
	fi
	if [ $INDIRECT -eq 0 ]; then
		ENV="$ENV LIBGL_ALWAYS_INDIRECT=1"
	fi
	if [ $INTEL -eq 0 ]; then
		ENV="$ENV INTEL_BATCH=1"
	fi
	if [ $XGL -eq 0 ]; then
		if [ -f /usr/lib/nvidia/libGL.so.1.2.xlibmesa ]; then
			ENV="$ENV LD_PRELOAD=/usr/lib/nvidia/libGL.so.1.2.xlibmesa"
			verbose "Enabling Xgl with nVidia drivers...\n"
		fi
		if [ -f /usr/lib/fglrx/libGL.so.1.2.xlibmesa ]; then
			ENV="$ENV LD_PRELOAD=/usr/lib/fglrx/libGL.so.1.2.xlibmesa"
			verbose "Enabling Xgl with fglrx ATi drivers...\n"
		fi
	fi
	case "$DE" in
		KDE)
			ENV="$ENV KDEWM=$0";;
		GNOME)
			ENV="$ENV WINDOW_MANAGER=$0";;
	esac
}

# Builds the argument list
function build_args
{
	if [ "$USECOPY" != "yes" ]; then
		if [ $NVIDIA = 0 ] && [ $XGL != 0 ] && [ $INDIRECT != 0 ]; then
			add_argument "--loose-binding"
		elif [ $INDIRECT = 0 ]; then
			add_argument "--indirect-rendering"
		fi
	fi
}

# Prints usage
function usage
{
	if [ -n "$1" ]; then
		echo -e "The $1 option needs an argument!\n"
	fi
	echo "Usage: $0 [-r <env|args>] [-v]  [-h] [-d] [-w] [-c <decorator> ]"
	echo -e "       [ options ] [ plugins ]"
	echo -e "-r\t outputs recommended values for either enviromental variables"
	echo -e "  \t  or arguments."
	echo -e "-v\t Verbose: Output the result of each individual test"
	echo -e "-l\t Log: Enable logging of all the verbose events in $LOGFILE"
	echo -e "-h\t Display this message"
	echo -e "-d\t Dry run: Do everything, but don't start."
	echo -e "-w\t Only start default window decorator(s). One per screen."
	echo -e "-c\t Restart using the passed window decorator(s). One per screen."
	echo -e "options\t Pass to compiz any option given by --help."
	echo -e "plugins\t Enable any compiz plugin, generally you can set (overriding default)"
	echo -e "       \t  one of the configuration plugins [${CONFIGPLUGINS// /, }]"
	if [ -n "$1" ]; then
		exit 1
	else
		exit 0
	fi
}

# Parses options
function parse_options
{
	while [ "$#" -gt "0" ]; do
		case "$1" in
			-h) usage ;;

			-r)
				TASK="RECOMMEND"
				if [ "$2" == "env" ]; then
					REC="env"
				elif [ "$2" == "args" ]; then
					REC="args"
				elif [ "$2" == "both" ]; then
					REC="both"
				else
					usage $1
				fi
				shift ;;

			-v) VERBOSE="yes" ;;

			-l)
				LOG="yes"
				if (touch "$LOGFILE") 2> /dev/null; then
					STDOUTPUT="$LOGFILE"
					ERROUTPUT="$LOGFILE"
					verbose "Enabled logging in $LOGFILE\n"
				else
					echo "I can't log in $LOGFILE"
				fi ;;

			-d) DRY="yes" ;;

			-w) TASK="WINDOWDECORATOR" ;;

			-c)
				if [ -n "$2" ]; then
					DECORATOR="$2"
					DECORATORARGS="--replace"
					shift
				else
					usage $1
				fi ;;

			*) if [ $TASK != "WINDOWDECORATOR" ]; then
				case "$1" in
					--help|--version)
						$COMPIZ $1
						exit 0 ;;
					--sm-client-id)
						if [ -n "$2" ]; then
							SESSION_FLAG="yes"
							add_argument "$1"
							if [ $? = 0 ]; then
								add_argument "$2"
								verbose "Adding compiz option $1 $2 to command line\n"
							fi
							shift
						else
							usage $1
						fi ;;
					--*)
						add_argument "$1"
						if [ $? = 0 ]; then
							verbose "Adding compiz option $1 to command line\n"
						fi ;;

					*)
						if ! (echo "$PLUGINS" | grep -qw -- "$1") &&
						   ! (echo "$CONFIGPLUGINS" | grep -qw -- "$1") &&
						   [ -f "$COMPIZPLUGINDIR/lib${1}.so" ]; then
							PLUGINS="$PLUGINS $1"
							verbose "Adding compiz plugin $1 to command line\n"
						elif (echo "$CONFIGPLUGINS" | grep -qw -- "$1") &&
						     [ -z $CONFIGPLUGIN ]; then
							CONFIGPLUGIN="$1"
							verbose "Adding compiz config plugin $1 to command line\n"
						fi ;;
				esac
			fi ;;
		esac
		shift
	done

	if [ "x$SESSION_FLAG" != "xyes" ]; then
		add_argument "--sm-disable"
	fi

}

####
# Execute checks, if necesarry.
function check_everything
{
	if ! check_bad_driver; then

		check_nvidia
		NVIDIA=$?

		check_xgl
		XGL=$?

		check_fbconfig
		FBCONFIG=$?

		check_tfp
		TFP=$?

		check_texture_copy
		TEXTURECOPY=$?

		check_intel
		INTEL=$?

		check_npot_texture
		NPOT=$?

		check_composite
		COMPOSITE=$?

		check_xdamage
		XDAMAGE=$?

		check_xsync
		XSYNC=$?

		check_multiscreen
	else
		echo "Fatal: Compiz can't be ran using VESA or VGA divers."
		exit 1;
	fi
}

###
# Check if a directory exists; creates it if it doesn't, returns false if the
# path isn't a directory.
function require_dir
{
	if ! [ -a "$1" ]; then
		verbose "Creating directory $1\n";
		mkdir $1;
	fi
	if [ ! -d $1 ]; then
		echo "Warning: $1 exists but isn't a directory.";
		return 1;
	fi
	return 0;
}

###
# Let's get this show started!
function start_compiz
{
	if [ -n "$ENV" ]; then
		verbose "Exporting: $ENV \n"
		export $ENV
	fi
	if [ "x$REPLACEWM" != "xyes" ] && [ "x$DRY" != "xyes" ]; then
		if [ -n "$COMPIZRUNNING" ]; then
			echo "Compiz is already running, you should use the --replace option to override it"
			exit 0
		elif [ -n "$WMRUNNING" ]; then
			echo "There is already the $RUNNING_WIN_MANAGER win manager running, you should use the --replace option to override it"
			exit 0
		fi
	fi
	if  ! (run_command $COMPIZ $ARGS $PLUGINS); then
		if  [ -n "$FALLBACK_WINMANAGER" ]; then
			if run_command $FALLBACK_WINMANAGER; then
				exit 0;
			else
				echo "Fatal: Can't run $FALLBACK_WINMANAGER"
				exit 1;
			fi
		else
			echo "No fallback winmanager found/set"
		fi
	fi
}

####
# Starts one decorator per screen
function start_decorators
{
	if ( [ -z "$DECORATOR" ] && [ -z "$RUNNING_COMPDECORATOR" ] ); then
	case "$DE" in
		KDE)
			DECORATOR="kde-window-decorator"
			DECORATORARGS="--replace"
		;;
		GNOME)
			DECORATOR="gtk-window-decorator"
			DECORATORARGS="--replace"
		;;
		*)
			DECORATOR="gtk-window-decorator" #emerald?
			DECORATORARGS="--replace"
		;;
	esac
	fi

	# WORKAROUND -_-
	for process in /proc/[0-9]*/cmdline; do
		if grep -wq "gnome-wm" "$process" 2> /dev/null; then
			pid=$(expr "$process" : "/proc/\([0-9]\+\)/cmdline")
			if [ -n "$pid" ]; then
				kill -9 "$pid" 2> /dev/null
			fi
		fi
	done
	
	if [ -z "$(which $DECORATOR)" ]; then return 1; fi
	if [ "$DECOERRORS" = "no" ]; then
		OLDERROUTPUT="$ERROUTPUT"
		ERROUTPUT="/dev/null"
	fi
	if [ "$SCREENS" == "1" ]; then
		verbose "Starting delayed $DECORATOR in the background: "
		verbose "sleeping $DELAY...\n"
		if [ "x$DRY" = "xyes" ]; then return 0; fi
		(sleep $DELAY &&
		 run_command $DECORATOR $DECORATORARGS) &
	else
		verbose "Starting delayed $DECORATOR for all screens: \n"
		OLDDISPLAY="$DISPLAY"
		for a in $SCREENNUMBERS; do
			verbose "\t Screen $a: "
			verbose "sleeping $DELAY...\n"
			if [ "x$DRY" != "xyes" ]; then
				(sleep $DELAY && \
				 export DISPLAY=${MULTIDISPLAY[$a]} && \
				 run_command $DECORATOR $DECORATORARGS) &
			fi
		done
		export DISPLAY="$OLDDISPLAY"
	fi
	if [ "$DECOERRORS" = "no" ]; then
		ERROUTPUT="$OLDERROUTPUT"
	fi
}

function check_desktopmanager
{
	if (pidof "startkde" &> /dev/null) ||
	   (pidof "ksplash" &> /dev/null) ||
	   (pidof "start_kdeinit" &> /dev/null) ||
	   (kcheckrunning 2> /dev/null); then
		DE="KDE"
		DEFAULTDECORATOR="kwin"
		DEFAULTDECORATORARGS="--replace"
	elif (pidof "gnome-session" &> /dev/null) ||
	     (pidof "gnome-settings-daemon" &> /dev/null) ||
	     (pidof "gnome-panel" &> /dev/null); then
		DE="GNOME"
		DEFAULTDECORATOR="metacity"
		DEFAULTDECORATORARGS="--replace"
	elif pidof "xfce4-session" &> /dev/null; then
		DE="Xfce"
		DEFAULTDECORATOR="xfwm4"
		DEFAULTDECORATORARGS=""
	elif pidof "WindowMaker" &> /dev/null; then
		DE="WindowMaker"
		DEFAULTDECORATOR="wmaker"
		DEFAULTDECORATORARGS=""
	elif pidof "enlightenment_sys" &> /dev/null; then
		DE="enlightenment"
		DEFAULTDECORATOR="enlightenment"
		DEFAULTDECORATORARGS=""
	elif pidof "fbrun" &> /dev/null; then
		DE="fluxbox"
		DEFAULTDECORATOR="fluxbox"
		DEFAULTDECORATORARGS=""
	fi

	if  [ -n "$DE" ]; then
		verbose "Found $DE desktop environment running...\n"
	fi
}

function check_winmanager
{
	STD_WMs="beryl compiz compiz.real metacity kwin xfwm4 wmaker fluxbox blackbox openbox icewm enlightenment"

	for wm in $STD_WMs; do
		if pidof $wm &> /dev/null; then
			RUNNING_WIN_MANAGER="$wm"
			break;
		fi
	done

	if ! (xdpyinfo | grep -q "^focus:[ ]\+PointerRoot$"); then
		WMRUNNING="true"
	fi

	STD_COMPDECORATORS="gtk-window-decorator kde-window-decorator emerald yawd"

	for deco in $STD_COMPDECORATORS; do
		if pidof $deco &> /dev/null; then
			RUNNING_COMPDECORATOR="$deco"
			break;
		fi
	done
	
	if [ -n "$RUNNING_WIN_MANAGER" ]; then
		verbose "Found running windows manager: $RUNNING_WIN_MANAGER\n"
	fi

	if [ -n "$DE" ] && [ -z "$FALLBACK_WINMANAGER" ]; then
		FALLBACK_WINMANAGER="$DEFAULTDECORATOR $DEFAULTDECORATORARG"
	fi

	if (echo $RUNNING_WIN_MANAGER | grep -qw "$(basename $COMPIZ)"); then #compiz\|compiz\.real
		COMPIZRUNNING="true"
		verbose "Compiz is already running in this environment\n"
	else
		unset COMPIZRUNNING
		if [ -n "$RUNNING_WIN_MANAGER" ] && [ -z "$FALLBACK_WINMANAGER" ]; then
			FALLBACK_WINMANAGER="$RUNNING_WIN_MANAGER" # --replace ?
		fi
	fi
	if  [ -n "$FALLBACK_WINMANAGER" ]; then
		verbose "Setting fallback windows manager to $FALLBACK_WINMANAGER\n"
	fi
}

function set_config_plugin
{
	if ( [ -n "$CONFIGPLUGIN" ] && [ -f "$COMPIZPLUGINDIR/lib${CONFIGPLUGIN}.so" ] ); then
		verbose "Loading the $CONFIGPLUGIN settings interface\n"
	else
		for plugin in $CONFIGPLUGINS; do
			if [ -f "$COMPIZPLUGINDIR/lib${plugin}.so" ]; then
				CONFIGPLUGIN="$plugin"
				verbose "Loading the $plugin settings interface\n"
				break;
			fi
		done
	fi
	if [ "$CONFIGPLUGIN" = "gconf" ]; then
		PLUGINS=${PLUGINS//glib/}
		CONFIGPLUGIN="glib gconf"
	fi
# 	if [ "$CONFIGPLUGIN" = "ccp" ]; then
# 		# Set default compizconfig configuration; disabled by default
# 		set_default_ccs
# 	fi
	PLUGINS="$CONFIGPLUGIN $PLUGINS"
}

function set_default_ccs
{
	# Not needed if is set a proper global.xml file in libcompizconfig
	CCSDEFCONFIG="~/.compizconfig/Default.ini"
	
	if [ ! -f "$CCSDEFCONFIG" ]; then
		mkdir -p $CCSDEFCONFIG
		touch "$CCSDEFCONFIG"
	fi

	if ! (grep -q "as_____plugin_enabled" $CCSDEFCONFIG); then
		for plugin in $DEFAULTCCSPLUGINS; do
			echo "[$plugin]" > $CCSDEFCONFIG
			echo "as_____plugin_enabled = true" > $CCSDEFCONFIG
			echo "" > $CCSDEFCONFIG
		done
	fi
}

function run_command
{
	verbose Executing: "$*" "\n"
	if [ "x$DRY" = "xyes" ]; then return 0; fi
	if [ -n "$STDOUTPUT" ] && [ -n "$ERROUTPUT" ]; then
		$* 1>> $STDOUTPUT 2>> $ERROUTPUT
	elif [ -n "$STDOUTPUT" ] && [ -z "$ERROUTPUT" ]; then
		$* 1>> $STDOUTPUT
	elif [ -z "$STDOUTPUT" ] && [ -n "$ERROUTPUT" ]; then
		$* 2>> $ERROUTPUT
	else
		$*
	fi
	return $?
}

####################
# Execution begins here.
# First get options, check for configuration
# Check everything if necesarry, build the enviroment and arguments
# and eventually select a task.

parse_options "$@"

if [ -z "$NOCHECKS" ]; then check_everything; fi

###
# This is the master-test, it has to be done last.
if [ -z "$POSSIBLE" ]; then check_possible
else verbose "Skipping \"possible\" test, using stored value.\n"; fi

# No need to continue if we've determined it's not possible to start anyway
if [ $POSSIBLE != "0" ]; then
	echo "Checks indicate that it's impossible to start compiz on your system."
	exit 1;
else
	verbose "Checks indicate compiz should work on your system\n"
fi

####
# Builds the enviromental variables list and argument list based
# on the result of the checks
check_desktopmanager
check_winmanager

case "$TASK" in
	RECOMMEND)
		if [ "x$REC"  = "xenv" ]; then
			build_env
			echo -e $ENV;
		elif [ "x$REC" = "xargs" ]; then
			build_args
			echo -e $ARGS
		elif [ "x$REC" = "xboth" ]; then
			build_args
			build_env
			set_config_plugin
			echo -e $ARGS $PLUGINS
			echo -e $ENV
		fi
		if [ $POSSIBLE != "0" ]; then return 1; fi
		;;
	WINDOWDECORATOR)
		start_decorators
		;;
	*)
		build_args
		build_env
		set_config_plugin
		start_decorators
		start_compiz
	;;
esac
剩疯
帖子: 84
注册时间: 2007-11-05 20:52

#2

帖子 剩疯 » 2008-02-07 20:14

没有人知道解决的办法吗?
flyinflash
帖子: 2376
注册时间: 2006-09-21 14:28

#3

帖子 flyinflash » 2008-02-07 20:52

恭喜
剩疯
帖子: 84
注册时间: 2007-11-05 20:52

#4

帖子 剩疯 » 2008-02-07 20:56

flyinflash 写了:恭喜
无语 真的幸灾乐祸`````````````
头像
lidin999
帖子: 245
注册时间: 2006-10-24 15:46

#5

帖子 lidin999 » 2008-02-10 14:46

升级了~~全黑了~~全部删除~~重新安装~~复原了!
剩疯
帖子: 84
注册时间: 2007-11-05 20:52

#6

帖子 剩疯 » 2008-02-10 17:24

lidin999 写了:升级了~~全黑了~~全部删除~~重新安装~~复原了!
我重新安装 还是显示不了边框```````````
adm73
帖子: 3
注册时间: 2007-09-15 18:20

#7

帖子 adm73 » 2008-02-11 13:37

我也显示不了了
头像
gccq
帖子: 202
注册时间: 2008-01-04 23:31
来自: 重庆

#8

帖子 gccq » 2008-02-12 14:24

我也显示不了了,也重新装了,都没用了,不知道怎么回事
wyhking
帖子: 1
注册时间: 2008-01-16 0:10

#9

帖子 wyhking » 2008-02-12 15:44

NND,害我搞了一天了
xuco
帖子: 794
注册时间: 2008-01-30 19:19

#10

帖子 xuco » 2008-02-13 11:02

遭罪的不只你一个
vitas333
帖子: 106
注册时间: 2007-10-12 1:22

#11

帖子 vitas333 » 2008-02-13 11:33

桌面 更改 背景图片, 里面有个 视觉效果,把 效果改成无。 就有 关闭按钮了, 估计 升级了 compiz 工作不正常了 。
有些文件少了,要么 有些配置文件出错了。 具体的没找到 方法。 我现在也在 尝试remove compiz所有组件,然后重新安装。
头像
yafengabc
帖子: 137
注册时间: 2007-10-19 16:26

#12

帖子 yafengabc » 2008-02-13 19:43

我的升级也出问题了,从官方的git下了个emerald源码,编译安装,OK
菜鸟的贴你就不顶了吗?!!!
DELL D620
Core2 Duo T5500
1G DDR II 667
i945GM GMA950

AMD 64x2 5200+
GA-MA78GM-S2HP
2G DDR2 800
ATI Radeon HD 3200
yllon
帖子: 2
注册时间: 2007-08-29 3:20

#13

帖子 yllon » 2008-02-15 16:22

有没有人弄好了,回一下~! :oops: :oops: :oops: :oops:
头像
gccq
帖子: 202
注册时间: 2008-01-04 23:31
来自: 重庆

#14

帖子 gccq » 2008-02-16 8:36

没弄好,我是删除了所有的compiz,然后降级安装后才恢复的
回复