Feature differences: -------------------- - FSP (works differently in Compiz - dunno which one works better) - beryl logger (in general nice to have) - more core actions - activate, toggle redirect, toggle fullscreen, toggle alwaysontop, toggle sticky -> may become "extra WM actions" plugin (I would prefer this -- racarr) - saturation, brightness -> may become "paint modifier change" plugin (together with opacity) (Attributes should be in core because paint locking needs to be in core -- racarr) (the attribute setting bindings easily can be in a separate plugin ;-) - maniac) - "focus on close" mode (last window/window under pointer) (nice to have in any case) (This is nice -- racarr) - edge triggering delay (nice to have, too - trivial) (trivial -- racarr) - minimized window thumbnails (This is nice but again useless, I think a better solution is to not unmap the windows at all. -- racarr) - map on shutdown (needed for what?) (? -- racarr) - disable VSync (Good -- racarr) - Copy mode (Good, but quickly becoming obsolete -- racarr) - system check (Good, -- racarr) - XGL/AIGLX/NVIDIA autodetection (Good -- racarr) - plugin loader autosorting (Good -- racarr) - Beryl has custom output grid, Compiz can set the outputs via command line (Compiz solution seems better) Coding style differences: ------------------------- - all global core variables are either extern'd or in CompDisplay - display/screen options in display/screen_options.c (Trivial -- racarr) API differences: ---------------- - multiperspective stuff (needed for different cube modes) (This is good -- racarr) - Beryl uses XKeySyms, Compiz uses key codes -> trivial change - settings in core (!!! - discussion needed!) - BTF/FTB drawing (explanation needed) - requests system (maybe better use berylEvent?) (The requests system is not good at all -- racarr) - offscreen interface (needed for group until there is IR) - focusDefaultWindow and warpPointer work screen-wise (Why? -- racarr) -> for the sake of working properly for multiscreen (all pointer coordinates are screen-wise, not display-wise - beryl desktop manager stuff (hmm) (This is an external project assosciated with Beryl -- racarr) - IPCS (TODO: create a better replacement ;-) ) (We should depreciate the use of IPCS, I am convinced there is ALWAYS a better solution) - paint modifier locking (exact explanation needed) (This is very nice and neccesary, it lets one plugin set a lock level on their opacity/saturation/brightness change that is only overridden by higher level locks, i.e. state has a higher lock than opacify -- racarr) - setClipPlanes is wrappable (trivial) (This is neccesary -- racarr) - RGBAimageToTexture (maybe the fixed byte ordering would be better in a parameter to imageToTexture?) - keyboard grab optional in pushScreenGrab (TODO: overhaul screen grab handling to clean up the related code) (I'm not sure this is even a good idea with input redirection coming -- racarr) - screenGrabExist (nice to have, trivial) (I'm not sure if this is a good idea at all as there might be plugins we don't know about being used and we need to check their screengrab -- racarr) - changeToWindowViewport (What? -- racarr) -> a function which activates the viewport a given window is on - windowSetUrgentHint/ClearUrgentHint (Trivial and nice -- racarr) - saving of restore geometry to X atom (nice to have, trivial) (Trivial and nice -- racarr) - resize preview (This is good, it cleans up things like filled outline resize -- racarr) - don't update position of grabbed windows on ConfigureNotify (to avoid jump on restacking of a window grabbed for movement) - saveWindowGeometry can save a custom geometry (needed for tile, but nice to have in any case, trivial) - fullscreenWindow (can go into the "extra WM actions" plugin) Code fixes in Beryl: -------------------- - texturing fixes for multiscreen - NULL checks in compSetStringOption - small value workaround in compSetFloatOption - stacking fixes for override_redirect windows - minimum window width/height constraining - move fixes for maximized windows (movement of maximized windows to other viewport from another client doesn't work in Compiz) - legacy maximized app fixes (one may argue about that...) Question: --------- - include_interior stuff (leftover?)