LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Desktop (https://www.linuxquestions.org/questions/linux-desktop-74/)
-   -   No title-bar in kubuntu with compiz fusion and emerald (https://www.linuxquestions.org/questions/linux-desktop-74/no-title-bar-in-kubuntu-with-compiz-fusion-and-emerald-624327/)

Etheris 02-27-2008 06:39 PM

No title-bar in kubuntu with compiz fusion and emerald
 
I am having problems setting up Compiz-fusion and emerald on my kubuntu 7.10 box (amd64, nvidia gforce). Compiz is installed correctly (I think) and the graphical functions work fine, but I cannot get my window title bars to be displayed correctly. When I start compiz ("compiz --replace") the screen restarts and I loose my title bars. I have also noted that before I start compiz the displayed title bar is being taken from the KDE windows decorator instead of emerald and, even though I can open the emerald manager, emerald will not effect the menu display. My guess is that when I activate compiz it is looking for an emerald theme, and since it is not active it displayes no menu. Also, when I attempt "emerald --replace" it produces errors and stalls in the terminal.

I have tried changing my nvidia options, which appears to be working fine and I have also tried changing visual and rendering options in xorg......along with just about everything else I have been able to find online. Please help if you can.

DaneM 02-28-2008 11:46 AM

Hi, Etheris.

It looks like compiz is having a problem rendering the window decorations. Please post all the output you can find from running the commands you mentioned in a terminal. KDE may also be trying to load KWM as its window manager instead of emerald/compiz. I believe that there's an environmental variable that has to be changed in order for this to work properly, but off the top of my head I don't remember what it is. Post the output I mentioned, and we'll go from there.

--Dane

Slick666 02-28-2008 11:56 AM

If you still get the compiz effects and there is no title-bar then it's a problem with emerald. If you do not get the effects with the title bar disappeared then compiz had a problem and had to shut down. and your seeing the effect

Etheris 03-06-2008 04:24 PM

Title bar compiz problems continued
 
I decided that I was not in love with Emerald so I purged it. The problem remains however. here are some outputs:

"compiz --replace"

"lord@lord-desktop:~$ compiz --replace
Checking for Xgl: not present.
Detected PCI ID for VGA: 01:00.0 0300: 10de:0110 (rev b2) (prog-if 00 [VGA])
Checking for texture_from_pixmap: present.
Checking for non power of two support: present.
Checking for Composite extension: present.
Comparing resolution (1680x1050) to maximum 3D texture size (2048): Passed.
Checking for nVidia: present.
Checking for FBConfig: present.
Checking for Xgl: not present.
Starting kde-window-decorator "

Slick666 03-07-2008 07:07 AM

Quote:

Checking for Xgl: not present.
ok, you need to install and setup XGL. XGL is a requirement of Compiz but I don't think it is setup by default under kubuntu. You also will need to install the "Compiz configuration settings manager", if you have synaptic installed just search for compiz and it should be the 4th or 5th down.

Also sometimes this is not setup in compiz by default. So after you install XGL you may need to set the "Window Decoration" in the Compiz configuration settings manager.

follow up with this link https://help.ubuntu.com/community/CompositeManager

I know it's ubuntu but it's very close to what you are using.

Also if your going to use any programs that require OpenGL they will not work with compiz. I had a particular problem getting doom3 to work in Kubuntu with Xgl enabled. to find information of how to fix this google "nonXGL" and that should give you the fix.

Good Luck

jiml8 03-07-2008 09:48 AM

You do NOT need Xgl if you have an NVidia card. I actually uninstalled it on my system in order to keep the system from using it (it kept trying). Use the NVidia native support and that will work.

Also, OpenGL programs work absolutely fine, if Compiz fusion is configured correctly.

As for the emerald problem, need to see your error messages before I can offer an opinion.

edit: This is a script I found and downloaded off of the internet to start compiz-fusion. I then hacked it to deal with particulars of my system, which has an NVidia 7800GS video card and a 22" widescreen monitor. I also eliminated Xgl from my system.

If you know bash scripting, then my hacks should stand out - I didn't delete the code, just commented it out, and I forced the results I wanted - so if you need to alter it to work for you, then the way should be fairly obvious.

Using this script solved all my compiz-fusion startup problems on my Mandriva system, configured as I described:

Code:

#!/bin/sh
# Compiz Manager wrapper script
#
# Copyright (c) 2007 Kristian Lyngstøl <kristian@bohemians.org>
#
# 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
#
#
# Contributions by: Treviño (3v1n0) <trevi55@gmail.com>, Ubuntu Packages
#
# 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.
#


COMPIZ_BIN_PATH="/usr/bin/" # For window decorators and compiz
PLUGIN_PATH="/usr/lib/compiz/"
GLXINFO="/usr/bin/glxinfo"
KWIN="/usr/bin/kwin"
METACITY="/usr/bin/metacity"
COMPIZ_NAME="compiz" # Final name for compiz (compiz.real)

# For Xgl LD_PRELOAD
LIBGL_NVIDIA="/usr/lib/nvidia/libGL.so.1.2.xlibmesa"
LIBGL_FGLRX="/usr/lib/fglrx/libGL.so.1.2.xlibmesa"

# Minimum amount of memory (in kilo bytes) that nVidia cards need
# to be allowed to start
# Set to 262144 to require 256MB
NVIDIA_MEMORY="65536" # 64MB
NVIDIA_SETTINGS="nvidia-settings" # Assume it's in the path by default

# For detecting what driver is in use, the + is for one or more /'s
XORG_DRIVER_PATH="/usr/lib/xorg/modules/drivers/+"

FALLBACKWM="${KWIN}"
FALLBACKWM_OPTIONS="--replace $@"

# Driver whitelist
WHITELIST="nvidia intel ati radeon i810"

# blacklist based on the pci ids
# See http://wiki.compiz-fusion.org/Hardware/Blacklist for details
T="  1002:5954 1002:5854 1002:5955" # ati rs480
T="$T 1002:4153" # ATI Rv350
T="$T 8086:2982 8086:2992 8086:29a2 8086:2a02 8086:2a12"  # intel 965
BLACKLIST_PCIIDS="$T"
unset T

COMPIZ_OPTIONS="--ignore-desktop-hints --replace"
COMPIZ_PLUGINS=""
ENV=""

# Use emerald by default if it exist
USE_EMERALD="yes"

# No indirect by default
INDIRECT="no"

# Default X.org log if xset q doesn't reveal it
XORG_DEFAULT_LOG="/var/log/Xorg.0.log"

# Set to yes to enable verbose
VERBOSE="yes"

# Echos the arguments if verbose
verbose()
{
        if [ "x$VERBOSE" = "xyes" ]; then
                printf "$*"
        fi
}

# abort script and run fallback windowmanager
abort_with_fallback_wm()
{
        if [ "x$SKIP_CHECKS" = "xyes" ]; then
                verbose "SKIP_CHECKS is yes, so continuing despite problems.\n"
                return 0;
        fi

        verbose "aborting and using fallback: $FALLBACKWM \n"

        if [ -x $FALLBACKWM ]; then
                exec $FALLBACKWM $FALLBACKWM_OPTIONS
        else
                printf "no $FALLBACKWM found, exiting\n"
                exit 1
        fi
}

# Check for non power of two texture support
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

}

# Check for presence of FBConfig
check_fbconfig()
{
        verbose "Checking for FBConfig: "
        if [ "$INDIRECT" = "yes" ]; then
                $GLXINFO -i | grep -q GLX.*fbconfig
                FB=$?
        else
                $GLXINFO | grep -q GLX.*fbconfig
                FB=$?
        fi

        if [ $FB = "0" ]; then
                unset FB
                verbose "present. \n"
                return 0;
        else
                unset FB
                verbose "not present. \n"
                return 1;
        fi
}


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

# Check wether the composite extension is present
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
return 0
}

# Detects if Xgl is running
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
        return 1;
}

# Check if the nVidia card has enough video ram to make sense
check_nvidia_memory()
{
#      MEM=$(${NVIDIA_SETTINGS} -q VideoRam | egrep Attribute\ \'VideoRam\'\ .*: | cut -d: -f3 | sed 's/[^0-9]//g')
        MEM="262144"
        if [ $MEM -lt $NVIDIA_MEMORY ]; then
                verbose "Less than ${NVIDIA_MEMORY}kb of memory and nVidia";
                return 1;
        fi
        return 0;
}

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


# Check if the max texture size is large enough compared to the resolution
check_texture_size()
{
        TEXTURE_LIMIT=$(glxinfo -l | grep GL_MAX_TEXTURE_SIZE | sed 's/.*=[^0-9]//g')
        RESOLUTION=$(xdpyinfo  | grep -i dimensions: | sed 's/[^0-9]*pixels.*(.*).*//' | sed 's/[^0-9x]*//')
        VRES=$(echo $RESOLUTION | sed 's/.*x//')
        HRES=$(echo $RESOLUTION | sed 's/x.*//')
        verbose "Comparing resolution ($RESOLUTION) to maximum 3D texture size ($TEXTURE_LIMIT): ";
        if [ $VRES -gt $TEXTURE_LIMIT ] || [ $HRES -gt $TEXTURE_LIMIT ]; then
                verbose "Failed.\n"
                return 1;
        fi
        verbose "Passed.\n"
        return 0
}

# check driver whitelist
running_under_whitelisted_driver()
{
#      LOG=$(xset q|grep "Log file"|awk '{print $3}')
#      if [ "$LOG" = "" ]; then
#          verbose "xset q doesn't reveal the location of the log file. Using f#allback $XORG_DEFAULT_LOG \n"
#          LOG=$XORG_DEFAULT_LOG;
#      fi
#      if [ -z "$LOG" ];then
#              verbose "AIEEEEH, no Log file found \n"
#              verbose "$(xset q) \n"
#      return 0
#      fi
#      for DRV in ${WHITELIST}; do
#              if egrep -q "Loading ${XORG_DRIVER_PATH}${DRV}_drv\.so" $LOG &&
#                  ! egrep -q "Unloading ${XORG_DRIVER_PATH}${DRV}_drv\.so" $LOG;
#              then
#                      return 0
#              fi
#      done
#      verbose "No whitelisted driver found\n"
#      return 1
return 0
}

# check pciid blacklist
have_blacklisted_pciid()
{
        OUTPUT=$(lspci -n)
        for ID in ${BLACKLIST_PCIIDS}; do
                if echo "$OUTPUT" | egrep -q "$ID"; then
                        verbose "Blacklisted PCIID '$ID' found \n"
                        return 0
                fi
        done
        OUTPUT=$(lspci -vn | grep -i VGA)
        verbose "Detected PCI ID for VGA: $OUTPUT\n"
        return 1
}

build_env()
{
        if check_nvidia; then
                ENV="__GL_YIELD=NOTHING "
        fi
        if [ "$INDIRECT" = "yes" ]; then
                ENV="$ENV LIBGL_ALWAYS_INDIRECT=1 "
        fi
        if check_xgl; then
                if [ -f ${LIBGL_NVIDIA} ]; then
                        ENV="$ENV LD_PRELOAD=${LIBGL_NVIDIA}"
                        verbose "Enabling Xgl with nVidia drivers...\n"
                fi
                if [ -f ${LIBGL_FGLRX} ]; then
                        ENV="$ENV LD_PRELOAD=${LIBGL_FGLRX}"
                        verbose "Enabling Xgl with fglrx ATi drivers...\n"
                fi
        fi

        ENV="$ENV FROM_WRAPPER=yes"

        if [ -n "$ENV" ]; then
                export $ENV
        fi
}

build_args()
{
        if [ "x$INDIRECT" = "xyes" ]; then
                COMPIZ_OPTIONS="$COMPIZ_OPTIONS --indirect-rendering "
        fi
        if check_nvidia; then
                if [ "x$INDIRECT" != "xyes" ]; then
                        COMPIZ_OPTIONS="$COMPIZ_OPTIONS --loose-binding"
                fi
        fi
}

####################
# Execution begins here.

# Read configuration from XDG paths
if [ -z "$XDG_CONFIG_DIRS" ]; then
        test -f /etc/xdg/compiz/compiz-manager && . /etc/xdg/compiz/compiz-manager
else
        test -f $XDG_CONFIG_DIRS/compiz/compiz-manager && . $XDG_CONFIG_DIRS/compiz/compiz-manager
fi

if [ -z "$XDG_CONFIG_HOME" ]; then
        test -f $HOME/.config/compiz/compiz-manager && . $HOME/.config/compiz/compiz-manager
else
        test -f $XDG_CONFIG_HOME/compiz/compiz-manager && .  $XDG_CONFIG_HOME/compiz/compiz-manager
fi

# Don't use compiz when running the failsafe session
if [ "x$GNOME_DESKTOP_SESSION_ID" = "xFailsafe" ]; then
        abort_with_fallback_wm
fi

if [ "x$LIBGL_ALWAYS_INDIRECT" = "x1" ]; then
        INDIRECT="yes";
fi

# if we run under Xgl, we can skip some tests here
if ! check_xgl; then
        # if vesa or vga are in use, do not even try glxinfo (LP#119341)
        if ! running_under_whitelisted_driver || have_blacklisted_pciid; then
                abort_with_fallback_wm
        fi
        # check if we have the required bits to run compiz and if not,
        # fallback
        if ! check_tfp || ! check_npot_texture || ! check_composite || ! check_texture_size; then
                abort_with_fallback_wm
        fi

        if check_nvidia && ! check_nvidia_memory; then
                abort_with_fallback_wm
        fi

        if ! check_fbconfig; then
                abort_with_fallback_wm
        fi
fi

# load the ccp plugin if present and fallback to plain gconf if not
if [ -f ${PLUGIN_PATH}libccp.so ]; then
        COMPIZ_PLUGINS="$COMPIZ_PLUGINS ccp"
elif [ -f ${PLUGIN_PATH}libgconf.so ]; then
        COMPIZ_PLUGINS="$COMPIZ_PLUGINS glib gconf"
fi

# get environment
build_env
build_args

# start the gtk-window-decorator if present
if [ -x ${COMPIZ_BIN_PATH}emerald ] && [ "$USE_EMERALD" = "yes" ]; then
        verbose "Starting emerald\n"
        ${COMPIZ_BIN_PATH}emerald --replace &
elif [ -x ${COMPIZ_BIN_PATH}gtk-window-decorator ] && [ -n "$GNOME_DESKTOP_SESSION_ID" ]; then
        verbose "Starting gtk-window-decorator\n"
        ${COMPIZ_BIN_PATH}gtk-window-decorator --replace &
elif [ -x ${COMPIZ_BIN_PATH}kde-window-decorator ] && [ -n "$KDE_FULL_SESSION" ]; then
        verbose "Starting kde-window-decorator\n"
        ${COMPIZ_BIN_PATH}kde-window-decorator --replace &
        FALLBACKWM="${KWIN}"
fi

${COMPIZ_BIN_PATH}${COMPIZ_NAME} $COMPIZ_OPTIONS "$@" $COMPIZ_PLUGINS || exec $FALLBACKWM $FALLBACKWM_OPTIONS



All times are GMT -5. The time now is 09:34 PM.