<rant> skip to the close of the rant tag if you just want to get hacking!!!
I used to really hate notify-osd (the little pop up bubble that contrives to get it the way of window close widgets on maximized windows) I know its click through but its still distracting!
Worst still if you're in the habit of having a thin strip of an IM client on the right hand side and nearly maximised application windows to the left of it, the notification bubble always seems to get in the way and is defiantly distracting. (Its usually spamming you with IM messages which a flashing pidgin task bar button used to do just fine without getting in the way...)
What really irked was that there is no decent configuration options, and unless I'm laboring under a misapprehension the developers seem to think they know better than me, how my machine should be configured...
I can't believe theres plans to ape windows and have the bubble originate in the bottom right hand corner, if the sys tray goes there in a later version of windows I mean Ubuntu its real face palm time...!
</rant>
I decided for me personally the best solution would be to have the origin in the bottom left of the screen where there are usually less important things going on. I was going to properly implement South-West Gravity but in the end I did a very nasty and quick hack, why? well I'm seriously thinking of reimplementing notify-osd with a system of output plugins, off the top of my head I can think of several better solutions than an intrusive bubble... and an xml file for colours and timings is defiantly needed and no I *really* dont care about Ubuntus specs its MY machine (damn that was a rant again!)
So on with the dirty hack
create a sub directory to working in and grab the source to notify-osd with the following command
apt-get source notify-osd
once its done its thing cd into the directory it creates and run
./configure
you might have to do this a number of times installing any missing -dev packages it finds are missing
once you have all the needed -dev packages installed and configure has done its thing cd into the src directory
load stack.c into your favorite text editor and search for the following function
stack_get_slot_position
you should be at roughly line 885 ish, now skip down to the end of the routine somewhere after approx line 970+
just before the final closing curly brace ( } ) of the function add the following code
Defaults* d;
d = self->defaults;
*x=0;
*y=defaults_get_desktop_height (d)-*y-EM2PIXELS (5 ,d);
} //<-- this is the very end of the function
basically all this does is set the position to the very left and inverts the Y value (in effect) so you'll want to turn off the strange East gravity setting if you were trying it out.
save the file and run
make
assuming all is well run
sudo make install
log out and then back in and the notification bubble should now be sulking in the bottom left corner...
happy hacking!
Bookmarks