Erwann, This case was approved during ARC business today. I have attached the updated proposal that is also in the case directory.
Thanks, John On Sun, 2008-02-17 at 06:21, Erwann Chenede wrote: > Hi Danek, > > Danek Duvall wrote: > > On Fri, Feb 15, 2008 at 06:38:39PM +0100, Erwann Chenede wrote: > > > > > >>> So is there any point in putting compiz-configure in /usr/bin? Seems like > >>> it's a Private implementation detail at the moment. > >>> > >> True, what is the preferred location installation for these Private > >> implementation detail ? > >> > > > > /usr/lib. Make a subdirectory if you're finding that a bunch of things > > from your project are ending up there. > > > Ok, I'll put that in /usr/lib/compiz as the name space is already used > for compiz plugins. > > > >>> On a related note, are either the plugin API or ABI Public interfaces? > >>> > >>> > >> The plugin API is private as it is evolving from version to version. This > >> is why I didn't mentioned it. Should I mention it ? > >> > > > > It's probably worth mentioning, yeah, just so everyone's aware it's not a > > Public interface. Though the ABI is more interesting as a Private > > interface, since end-users will still have to deal with the consequences of > > it evolving. > > > Ok, I'll mention it. > > JohnF can you add in 4.5 : > compiz plugin API Private interface used > by compiz to interact with its plugins. > compiz plugin ABI Private this ABI doesn't > yet reflect a standard it is changing from version to version. > > > >>>>>> /usr/bin/gtk-window-decorator Uncommitted Executable of gtk > >>>>>> decorator > >>>>>> > >>> Is it something the user would ever run, or is it an implementation detail > >>> of compiz? > >>> > >> Yes,users can switch between decorators as other window decorators exist > >> for example emerald (http://wiki.compiz-fusion.org/Decorators/Emerald) > >> > > > > Ah, I see. gtk-window-decorator is a window decorator, just like emerald. > > I was expecting it to be a generic window decorator which then took plugins > > like emerald. I was going to ask about the name, since it seems more > > specific to gtk than to compiz, but I see now. > > > > I presume there's a gui way of changing decorators, too? > > > Yes, via gconf-editor or ccsm or via the command line by running the > decorators command line with --replace as an argument. > > Erwann > > Danek > > > > > -- > Erwann Ch?ned?, > Desktop Group, Sun Microsystems, Grenoble > Phone : +33 476 188 358 ext: 38358 > [ I speak for myself, not for my employer ] > > -------------- next part -------------- Template Version: @(#)onepager.txt 1.35 07/11/07 SMI Copyright 2008 Sun Microsystems 1. Introduction 1.1. Project/Component Working Name: Compiz: Compositing window manager 1.2. Name of Document Author/Supplier: Erwann Chenede, Chris Wang 1.3. Date of This Document: 12/02/08 1.4. Name of Major Document Customer(s)/Consumer(s): 1.4.1. The PAC or CPT you expect to review your project: Solaris PAC 1.4.2. The ARC(s) you expect to review your project: LSARC 1.4.3. The Director/VP who is "Sponsoring" this project: robert.odea at sun.com 1.4.4. The name of your business unit: OPG / OpenSource. 1.5. Email Aliases: 1.5.1. Responsible Manager: leo.binchy at sun.com 1.5.2. Responsible Engineer: erwann.chenede at sun.com 1.5.3. Marketing Manager: dan.roberts at sun.com 1.5.4. Interest List: desktop-discuss at opensolaris.org 2. Project Summary 2.1. Project Description: Compiz is one of the first compositing window managers for the X Window System that is able to take advantage of OpenGL-acceleration. The integration allows it to perform compositing effects in window management, such as a minimization effect and a cube workspace. Compiz is built on the Composite extension to X and the GLX_EXT_texture_from_pixmap extension to OpenGL. Compiz is designed with a highly extensible plugin system (like Firefox's plugin system). These plugins can extend the basic functionality of Compiz, only giving you the features you want. Everything inside compiz is controlled by the plugins, even basic functionality like moving windows is enabled as a plugin. The frame decoration UI is also managed as a plugin. Multiple decorator are available. We are only providing the one provided by the core compiz package (gtk-window-decorator) 2.2. Risks and Assumptions: Compiz conforms to the ICCCM standard and as such can substitute for the default Metacity in GNOME. Compiz make use of video drivers features that might not have been tested in depth previously. This could indirectly cause system instability due to the use of these functionalities. 4. Technical Description: 4.1. Details: Compiz will be made available as a optional window manager. Enabling compiz in the GNOME is achieved by adding a new tab in the gnome-appearance-properties applet. This tab will allow the user to switch between metacity and compiz. Compiz will only be available as a choice if the user X server is supported and configured properly. If this X server is not configured properly but the underlying driver does support compiz an option is made available to modify the X server configuration file. This is provided by compiz-configure. This depends on a private contract with the Xserver to use /etc/X11/.xorg.conf To configure compiz' numerous options the CompizeConfigs CompizConfig settings manager GUI (ccsm) will be delivered. This is a python gtk GUI. This application required additional widgets that are delivered by libsexy. (http://www.chipx86.com/wiki/Libsexy) Compiz is controlled almost solely by plugins. These plugins have been categorized into 3 categories: * main - These plugins are required compiz will not work properly without them. * extra - Additional plugins which provide many usability enhancements. * unsupported - Additional plugins that are not supported by the community. We are only delivering the main and extra plugins. These plugins are installed on /usr/lib/compiz. Note that each user can install additional plugins into the $(HOME)/compiz/plugins directory. To manage the user settings using gconf as the rest of the GNOME desktop does the plugin/library compiz-config is used. 4.5. Interfaces: Exported Interfaces Interface Stability Comments --------------------- ---------------- ---------------------- SUNWcompiz Uncommitted Package name /usr/bin/compiz Uncommitted Executable of compiz /usr/bin/gtk-window-decorator Uncommitted Executable of gtk decorator /usr/bin.compiz-configure Volatile Detect whether the hardware meet the requirement to run compiz. configure the xorg.conf file is required. /usr/lib/compiz/*.so Private Compiz Plugins see (5.1 for details) /usr/share/compiz Uncommitted Contains all image files ~./.compiz/plugins Uncommitted Contains all user installed plugins ~./.compiz/images Uncommitted Contains all images using by user installed plugins SUNWlibcompizconfig Uncommitted Package name for configuration plugin lib/compizconfig/backends/libini.so Private init file style configuration plugin SUNWcompizconfig-gconf Uncommitted Package name for the configuration plugin gconf backend. lib/compizconfig/backends/libgconf.so Private gconf backend to compiz config plugin SUNWcompizconfig-python Uncommitted Package name for the python bindings for compiz-config (used by ccsm) lib/python.../vendor-packages/compizconfig.so Private python bindings for compiz-config SUNWlibsexy Uncommitted Package name for extra gtk widget library lib/libsexy.so Uncommitted extra gtk widget library SUNWsexy-python Uncommitted Package name for libsexy python bindings. lib/python.../vendor-packages/sexy.so Uncommitted libsexy python bindings SUNWcompiz-fusion-main Uncommitted Package name for the main compiz plugins SUNWcompiz-fusion-extra Uncommitted Package name for the extra plugins compiz plugin API Project Private interface used by compiz to interact with its plugins. compiz plugin ABI Project Private this ABI doesn't yet reflect a standard it is changing from version to version. Imported Interfaces Interface Stability Comments --------------------- ---------------- ---------------------- libpng Evolving LSARC/2003/568 dbus Volatile LSARC/2006/368 GTK Evolving LSARC/2001/384 Glib Evolving LSARC/2001/384 Gconf External LSARC/2002/146 metacity External LSARC/2001/420 OpenGL External LSARC 2005/109, LSARC/2005/700, LSARC/1999/410 Damage Extension X server extension External LSARC/2003/506 XFixes X server extension External PSARC/2004/318 Composite X server extension External PSARC/2007/240 4.6. Doc Impact: manpages will be provided for the binaries 4.7. Admin/Config Impact: see 4.1 for UI changes. 4.8. HA Impact: N/A 4.9. I18N/L10N Impact: The JDS team and the G11N are working together to evaluate and provide I18N/L10N support 4.10. Packaging & Delivery: The project will be delivering the following packages: SUNWcompiz compiz and plugin binaries SUNWcompiz-root compiz configuration files SUNWcompiz-fusion-extra compiz fusion extra plugin binaries SUNWcompiz-fusion-extra-root extra plugins configuration files SUNWcompiz-fusion-main compiz fusion main plugin binaries SUNWcompiz-fusion-main-root main plugins configuration files SUNWccsm compiz config settings manager binary SUNWlibcompizconfig compiz config library plugin SUNWlibcompizconfig-root compiz config library plugin configuration file SUNWcompizconfig-gconf compiz config gconf bindings SUNWcompizconfig-python compiz config python bindings SUNWlibsexy extra gtk widgets SUNWsexy-python libsexy python bindings 4.11. Security Impact: compiz is a user application without specific priviledges. The security impact will be the same as metacity. 5. Reference Documents: Compiz home page http://www.compiz.org/ compiz fusion plugins : http://wiki.compiz-fusion.org/ Compiz on solaris : http://blogs.sun.com/erwann/ 5.1 Plugins details Exported Interfaces Interface Stability Comments --------------------- ---------------- ---------------------- All the subsequent plugins are located in lib/compiz Part of SUNWcompiz libannotate.so Private draw things on top of all windows libblur.so Private Provides support for blurring windows and contents behind translucent windows. libclone.so Private duplicate output on two screens libcube.so Private each virtual desktop becomes a face on a cube libdbus.so Private dbus interfacing libdecoration.so Private a plugin to communicate decoration settings to a decorator libfade.so Private windows fade in and out libgconf.so Private settings come from GNOME libini.so Private Flat file configuration backend. libminimize.so Private windows minimize (and maximize) with an animation effect libmove.so Private window moving libplace.so Private placement of new windows libplane.so Private slide across workspaces libpng.so Private allows plugin developers to load PNG files as textures without worrying about the image format. libregex.so Private provides regular expression matching for window title and other string properties. libresize.so Private window resizing librotate.so Private the desktop cube can be rotated libscale.so Private an overview of all open windows libscreenshot.so Private take the screenshot libsvg.so Private allows plugin developers to load svg files as textures. Other image plugins can be added so that extra image types will be seamlessly supported. libswitcher.so Private active window can be chosen with Alt-Tab libvideo.so Private Plugin that provide a composited video interface for efficient video playback. libwater.so Private ripples trailing mouse and rain effect libwobbly.so Private windows ripple while they move libzoom.so Private magnifies a part of screen lib/compiz/libccp.so Private compiz configuration plugin All the subsequent plugins are located in lib/compiz Part of SUNWcompiz-fusion-main libanimation.so Private plugin that provides animations for opening, closing, minimising, shading, and focusing windows libcolorfilter.so Private plugin to alter color rendering. Used for a11y libexpo.so Private plugin to see all of your viewports at once libezoom.so Private Enhanced zoom plugin libimgjpeg.so Private Plugin to allow other plugin to render jpeg images libneg.so Private Improve contrast by inverting the colours in a particular window or across the whole screen. libopacify.so Private Cause overlapping windows to automatically fade out when your mouse pointer hovers over a partially obscured window. libput.so Private Move a window into the centre of the screen libresizeinfo.so Private Display size info while resizing libring.so Private application switcher which present apps in a 3D ring libscaleaddon.so Private Addons to the scale plugin libshift.so Private Coverflow like application switcher libsnap.so Private make windows snap to edges libtext.so Private Allow compiz to render text libthumbnail.so Private Display small thumbnail of a window when your mouse cursor hovers over its button in the taskbar libvpswitch.so Private keybinding to switch between workspaces libwall.so Private Arrange your viewports into a grid, which you can freely slide across libwinrules.so Private Window matching plugin used by other plugin (e.g. scale) libworkarounds.so Private provides workaround of legacy apps that do not respect ICCCM All the subsequent plugins are located in lib/compiz Part of SUNWcompiz-fusion-extra plugins libaddhelper.so Private Darken none focused window libbench.so Private display the number of frame per second rendered libcrashhandler.so Private Display a debugging backtrace when Compiz crashes libcubecaps.so Private Decorate the top and bottom faces of the cube libcubereflex.so Private Add a reflective ground to the Compiz Cube plugin libextrawm.so Private add keyboard shortcuts to windows actions. libfadedesktop.so Private Fade windows out to reveal the desktop libfirepaint.so Private Draw fire anywhere on your screen libgears.so Private Display glxgears inside the cube plugin libgroup.so Private Arrange windows into groups to move and resize them libmblur.so Private Display a motion blur for different screen animations libreflex.so Private Give translucent windows a reflective look libscalefilter.so Private add a search feature to the scale plugin libshowdesktop.so Private Slide all windows toward the edges or corners of the screen to reveal the desktop libsplash.so Private Show an animated logo image when Compiz starts libtrailfocus.so Private Progressively dims window as they loose focus. libwidget.so Private Place windows of your choice onto a widget layer that can be shown or hidden with a shortcut key