View Full Version : Beryl group plugin for compiz
maniac
March 5th, 2007, 03:18 PM
Hi,
after David gave me a hint on how to replace the offscreen window interface on a per-plugin basis, I've ported group with tabs to Compiz.
What does work:
- Grouping
- Tabbing (you need the XShape extension for that)
- All related stuff
What does not work:
- Window title display in tab bar (needs Beryl's text plugin)
EDIT: Because of the currently unclear merge situation most Beryl developers have decided not to provide ported or new plugins for the moment while still being working on the Compiz core. The latest public version can be found in mikedee's latest snapshot. We hope that we can resolve that discussions soon.
stjepan
March 5th, 2007, 05:38 PM
Wow!
We love you, Beryl devs! :D
However:
compiling: group.c -> build/libgroup.loIn file included from group.c:1:
group.h:642: warning: type defaults to 'int' in declaration of 'CompTransform'
group.h:642: error: expected ';', ',' or ')' before '*' token
group.h:643: warning: type defaults to 'int' in declaration of 'CompTransform'
group.h:643: error: expected ';', ',' or ')' before '*' token
group.h:645: warning: type defaults to 'int' in declaration of 'CompTransform'
group.h:645: error: expected ';', ',' or ')' before '*' token
group.h:646: warning: type defaults to 'int' in declaration of 'CompTransform'
group.h:646: error: expected ';', ',' or ')' before '*' token
group.h:648: warning: type defaults to 'int' in declaration of 'CompTransform'
group.h:648: error: expected ';', ',' or ')' before '*' token
group.h:649: warning: type defaults to 'int' in declaration of 'CompTransform'
group.h:649: error: expected ';', ',' or ')' before '*' token
group.c: In function 'groupWindowResizeNotify':
group.c:1436: warning: unused variable 'gd'
make: *** [build/libgroup.lo] Error 1
mikedee
March 5th, 2007, 09:52 PM
stjepan: you need a recent version of compiz
For anyone interested, the text plugin is here
http://www.anykeysoftware.co.uk/compiz/plugins/text.tar.gz
I cannot notice any difference with it though, do I need to enable a setting to display the tab bar, or is it because I am missing the shape extension?
gnumdk
March 6th, 2007, 01:25 AM
http://hibbert.univ-lille3.fr/~cbellegarde/Compiz/group.tar.gz
Here is a working version with current git!
maniac
March 6th, 2007, 07:47 AM
I cannot notice any difference with it though, do I need to enable a setting to display the tab bar, or is it because I am missing the shape extension?
That's because I #if 0'ed the section using the text plugin because it brings along its own header file. I included the text plugin's header file into group.tar.gz (link still is the same as in the first post) so it should now be used if available.
Short primer for tabbing usage:
- Super+S for selecting windows
- Super+G for grouping them
- Super+T for tabbing a group (if you have windows selected, this groups and tabs them)
- The tab bar is shown when hovering the title bar.
- When hovering a thumbnail and the text plugin is loaded, the window title is displayed.
- You can switch tabs by clicking the thumbnail or by using Super+Left/Right
- You can drag thumbnails from one group to another.
flargen
March 6th, 2007, 02:14 PM
This plugin is amazing! But there are some problems when minimising/unminimising a group. Other than that, it is great, thanks maniac!
maniac
March 6th, 2007, 02:23 PM
This plugin is amazing! But there are some problems when minimising/unminimising a group. Other than that, it is great, thanks maniac!
Can you explain these problems a bit more? ;)
mikedee
March 6th, 2007, 02:33 PM
Thanks ;)
Everything is working now, including text.
The only slight glitch is that when I move a transparent tabbed group, there are artifacts behind the window.
Here are the plugins that I am using.
ini,decoration,inotify,png,text,regex,place,wobbly ,fade,cube,rotate,blur,zoom,move,resize,switcher,g roup
I have move set to opacify to 80% when moving a window.
flargen
March 6th, 2007, 08:41 PM
This plugin is amazing! But there are some problems when minimising/unminimising a group. Other than that, it is great, thanks maniac!
Can you explain these problems a bit more? ;)
Sure. When you create a tabbed group with some windows, you are left with only one button in the taskbar for the whole group. This button changes name/icon when you change tab. When you click the minimise button on the decorator, or click the taskbar button, the group minimises. For the time it takes the minimise/unminimise animation to complete (using "minimize" plugin) all the windows in the group become visible. When the animation has finished you are left with only the window you expected (or none if you are minimising). This looks really ugly, especially with groups of more than 2/3 because you get windows flashing all over for a couple of seconds!
This behaviour is only seen if you change tab then minimise - if you change tab, focus another window (not in the group), return focus back to the group , then minimise, there are no problems.
I have also noticed that sometimes the gnome-panel appears "behind" a maximised window after the minimise/unminimise problem occurs...
I hope this makes sense!
Thanks again!
bijoux
March 6th, 2007, 09:57 PM
paint.c:1152: error: 'PAINT_WINDOW_CLIP_OPAQUE_MASK' undeclared (first use in this function)
paint.c:1152: error: (Each undeclared identifier is reported only once
paint.c:1152: error: for each function it appears in.)
make: *** [build/libpaint.lo] Error 1
little help?
maniac
March 7th, 2007, 07:53 AM
Sure. When you create a tabbed group with some windows, you are left with only one button in the taskbar for the whole group. This button changes name/icon when you change tab. When you click the minimise button on the decorator, or click the taskbar button, the group minimises. For the time it takes the minimise/unminimise animation to complete (using "minimize" plugin) all the windows in the group become visible. When the animation has finished you are left with only the window you expected (or none if you are minimising). This looks really ugly, especially with groups of more than 2/3 because you get windows flashing all over for a couple of seconds!
Indeed. However, I believe this is a bug in minimize.c: It draws its animation even for windows which have the PAINT_WINDOW_NO_CORE_INSTANCE flag set - which means that these windows shouldn't be drawn.
Please try this patch: http://www.pastebin.ca/384712 together with the updated version of group (same link, I added a dependency). If it works (it works for me), I'll post it on the mailing list.
paint.c:1152: error: 'PAINT_WINDOW_CLIP_OPAQUE_MASK' undeclared (first use in this function)
paint.c:1152: error: (Each undeclared identifier is reported only once
paint.c:1152: error: for each function it appears in.)
make: *** [build/libpaint.lo] Error 1
This is due to some changes David did last night. I updated the package (same link).
maniac
March 7th, 2007, 08:26 AM
Thanks ;)
Everything is working now, including text.
The only slight glitch is that when I move a transparent tabbed group, there are artifacts behind the window.
You're right. This problem is fixed in the updated package.
flargen
March 7th, 2007, 12:05 PM
Indeed. However, I believe this is a bug in minimize.c: It draws its animation even for windows which have the PAINT_WINDOW_NO_CORE_INSTANCE flag set - which means that these windows shouldn't be drawn.
Please try this patch: http://www.pastebin.ca/384712 together with the updated version of group (same link, I added a dependency). If it works (it works for me), I'll post it on the mailing list.
Thanks a lot maniac, that works perfectly!
mikedee
March 7th, 2007, 02:39 PM
Thanks, the only slight problem is that it said that it must be loaded after minimize, but I dont have minimize. I realize this is probably a problem with the plugin loader but I had to remove it to make it work at all.
bijoux
March 7th, 2007, 06:42 PM
paint.c:1152: error: 'PAINT_WINDOW_CLIP_OPAQUE_MASK' undeclared (first use in this function)
paint.c:1152: error: (Each undeclared identifier is reported only once
paint.c:1152: error: for each function it appears in.)
make: *** [build/libpaint.lo] Error 1
This is due to some changes David did last night. I updated the package (same link).[/quote]
thanks maniac! it works perfect. awesome plugin!
flargen
March 9th, 2007, 09:52 PM
The group plugin no longer loads in the latest Compiz git. It compiles fine but gives the following message when loaded:
compiz: Couldn't load plugin 'group'
mikedee
March 10th, 2007, 12:32 AM
Works fine here, make sure you delete the plugin from ~/.compiz/plugins/ and then type make clean before make install.
flargen
March 11th, 2007, 02:54 PM
Thanks, it works. I was just being stupid!
bijoux
March 26th, 2007, 09:03 PM
I cannot get group to load anymore it seems with the latest git. I have done the instructions above but to no avail. It compiles but does not load. It does not give any errors, it just disappears from gconf-editor after OK-ing the prompt.
Group is probably my most used plugin so I'm hoping this can be resolved.
Have you any ideas?
mikedee
March 26th, 2007, 09:14 PM
I cannot get group to load anymore it seems with the latest git. I have done the instructions above but to no avail. It compiles but does not load. It does not give any errors, it just disappears from gconf-editor after OK-ing the prompt.
Group is probably my most used plugin so I'm hoping this can be resolved.
Have you any ideas?
Its just the basic, but did you recompile the group plugin after upgrading/
You normally have to or it will not load.
bijoux
March 27th, 2007, 04:01 AM
Yes I did. Everything else works against the latest git including winrules, text, desktopclick and the recently ported animation. It'd help if it throws out an error but no, it just disappears.
Hey mike, you think I can get a copy of your working version?
bijoux
March 28th, 2007, 08:05 AM
I think I might have found the culprit. It seems like the patches from the newly ported animation plugin prevents group plugin from loading. I can't say anything technical, I'm just saying this solely on observation. Hopefully it can be resolved.
maniac
March 28th, 2007, 08:36 AM
I think I might have found the culprit. It seems like the patches from the newly ported animation plugin prevents group plugin from loading. I can't say anything technical, I'm just saying this solely on observation. Hopefully it can be resolved.
Two things:
- after applying these patches, you need to recompile group
- due to a bug present in core minimize was required (dependencies aren't processed properly) - I removed the minimize dependency for now
maniac
March 28th, 2007, 03:31 PM
I've just updated group to work with my latest core additions. Additionally, it now also uses the match interface.
bijoux
March 28th, 2007, 06:35 PM
Great! Thank you maniac :)
mikedee
March 29th, 2007, 12:17 AM
I am getting a 404 error with the link on the first page.
Marex
March 29th, 2007, 01:12 AM
I am getting a 404 error with the link on the first page.
Sorry I think it was deleted accidentally from the server. I'll ask maniac to upload it again.
maniac
March 29th, 2007, 09:03 AM
I am getting a 404 error with the link on the first page.
Sorry I think it was deleted accidentally from the server. I'll ask maniac to upload it again.
Done :)
vBulletin® v3.7.1, Copyright ©2000-2008, Jelsoft Enterprises Ltd.