mikedee
February 26th, 2007, 04:03 PM
Recently there was a new window matching mechanism put into core and a plugin to extend the functionality. This information only applies to versions > 0.3.7 (from today).
Currently a lot of plugins have a list of window types (eg. Desktop, Normal, Tooltip etc) which it used to apply different effects to different windows. This was always a bit basic and has problems with certain applications which do not set these types correctly.
Now this has been extended so that you can match many more attributes. A basic match looks like this.
type=desktop
This will match all windows that are type desktop.
If you want to invert the selection you just put a ! before it, ie.
!type=desktop
This will match all windows that are NOT type desktop.
You can string different expressions together with these logical operators
| = OR
& = AND
So you could do something like this
type=desktop | type=dock
This would match your desktop or your dock (panel)
You can group expressions using brackets '(' and ')'
The core functionality has 4 different attributes that you can match against.
type - Matches the window type
state - matches window based on state, use one of modal, sticky, maxvert, maxhorz, shaded, skiptaskbar, skippager, hidden, fullscreen, above, below, demandsattention
xid - matches the id of the window (this can only be added after the window is created so will not normally be used by users).
override_redirect - Set to 1 to match override_redirect windows. This can be used to exclude firefox menus because they match this (type=Normal & override_redirect=1)
The regex plugin adds these extra matching abilities, you must have it loaded for them to work.
title - The title of the window
role - The role of the window
class - The class of the window
name - The name of the window
All of these values can use regular expressions.
Most of the plugins have now been extended to support these so you can test them out. Blur now uses this for alpha_blur so you do not need to use blurset anymore, just add the window matches to alpha_blur_match.
I think its almost done, but there may be more changes to this in the future (probably just more matching options)
More information on the mailing list here
http://lists.freedesktop.org/archives/compiz/2007-February/001448.html
Currently a lot of plugins have a list of window types (eg. Desktop, Normal, Tooltip etc) which it used to apply different effects to different windows. This was always a bit basic and has problems with certain applications which do not set these types correctly.
Now this has been extended so that you can match many more attributes. A basic match looks like this.
type=desktop
This will match all windows that are type desktop.
If you want to invert the selection you just put a ! before it, ie.
!type=desktop
This will match all windows that are NOT type desktop.
You can string different expressions together with these logical operators
| = OR
& = AND
So you could do something like this
type=desktop | type=dock
This would match your desktop or your dock (panel)
You can group expressions using brackets '(' and ')'
The core functionality has 4 different attributes that you can match against.
type - Matches the window type
state - matches window based on state, use one of modal, sticky, maxvert, maxhorz, shaded, skiptaskbar, skippager, hidden, fullscreen, above, below, demandsattention
xid - matches the id of the window (this can only be added after the window is created so will not normally be used by users).
override_redirect - Set to 1 to match override_redirect windows. This can be used to exclude firefox menus because they match this (type=Normal & override_redirect=1)
The regex plugin adds these extra matching abilities, you must have it loaded for them to work.
title - The title of the window
role - The role of the window
class - The class of the window
name - The name of the window
All of these values can use regular expressions.
Most of the plugins have now been extended to support these so you can test them out. Blur now uses this for alpha_blur so you do not need to use blurset anymore, just add the window matches to alpha_blur_match.
I think its almost done, but there may be more changes to this in the future (probably just more matching options)
More information on the mailing list here
http://lists.freedesktop.org/archives/compiz/2007-February/001448.html