nmaier / mintrayr

Mozilla extension: Minimize windows into the system tray (Firefox, Thunderbird, Seamonkey, Instantbird)
https://tn123.org/mintrayr/
Mozilla Public License 2.0
84 stars 37 forks source link

Plasma 5.8.7 blank tray icon? #184

Open JackDinn opened 6 years ago

JackDinn commented 6 years ago

So I understand that thunderbird and its tray integration is really messed up on most linux distros and especially KDE. Iv really had to fudge all sorts of old addons and tweaks to try and get TB to minimize to tray, show a changed icon for new mail & raise TB on left click.

Iv got as close as im going to get using firetray and mintrayr.

Only problem is that mintrayr does not display a tray icon, it does create a space for the icon & it does raise the window with a left click, but its a blank icon?

Iv had a look through the code but i cant figure where the icon is set so i thought id ask here.

https://i.imgur.com/HJJ7KIw.png

Cheers. Mint 18.2 plasma 5.8.7 TB 52.4.0 (64-bit)

JackDinn commented 6 years ago

well took me a couple of days to figure why python build.py was throwing the errorInstall path.py (via pip) , but i found in your /build/build.py script you have from path import path But it should be capital P in path from path import Path also including everywhere in /build/build.py the global "path" is used had to be changed.

That got the build.py working.

I found what i believe the source of the tray icon is in a C file lib_unix/tray/tray.c

buf = gtk_window_get_icon(gtkWindow); if (buf) { gtk_status_icon_set_from_pixbuf(data->statusIcon, buf); } else if ((iconname = gtk_window_get_icon_name(gtkWindow)) != NULL) { gtk_status_icon_set_from_icon_name(data->statusIcon, iconname); } else { goto error_cleanup; }

Only problem i now have is to try any changes i suspect i need to use 'make' to compile the binaries but make crashes.

tray.c:11:21: fatal error: gtk/gtk.h: No such file or directory compilation terminated. Makefile:17: recipe for target 'tray.o' failed make: *** [tray.o] Error 1

I think i just dont have the right C libs installed but im right at the end of my ability now so any advice would be great.

Thx.

JackDinn commented 6 years ago

Iv got a little further but i dont think im going to figure this in the end. So far make is showing this output

greg@greg-Inspiron-5767 ~/git/mintrayr/lib_unix/tray $ make gcc -Os -fPIC -g -mtune=generic -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/li2 -I/usr/include/atk-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -c -o tray.o tray.c tray.c: In function ‘find_window’: tray.c:126:17: warning: implicit declaration of function ‘strcmp’ [-Wimplicit-function-declaration] if (title && !strcmp(title, data->title)) { ^ gcc -Os -fPIC -g -mtune=generic -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/li2 -I/usr/include/atk-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -shared -rdynamic -Wl,--version-script -Wl,export-versionscript tray.o -lgdk-x11-2.0 -lpanro-1.0 -lpango-1.0 -lcairo -lgdk_pixbuf-2.0 -latk-1.0 -lgobject-2.0 -lglib-2.0 -o tray_x86_64-gcc3.so

which has this error in it

tray.c:126:17: warning: implicit declaration of function ‘strcmp’ [-Wimplicit-function-declaration] if (title && !strcmp(title, data->title))

But it does create the tray_x86_64-gcc3.so but does not move it into the lib/ folder , but i manually moved it.

Then running python build.py (which also shows an error) but does create a .xpi

greg@greg-Inspiron-5767 ~/git/mintrayr $ python build.py /home/greg/git/mintrayr/build/build.py:17: UserWarning: cannot compare locales (cannot import name path) warn("cannot compare locales ({})".format(ex)) verifying locales zipping regular files creating inner jar writing manifest writing xpi done!

It does create the .xpi but i dont think any changes iv made in the tray.c are actually doing anything and thats even if im in the right file.

Can i ask you please hard code a "one off" of the tray icon for linux to an .ico file that i can then just swap the icon.ico file for whatever i need and create the .xpi for me please because i just cant figure how to do it :(

would be greatly appreciated.