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?)