System Tray icon gone if lxpanel crashes
Popular easy-to-use and secure password manager
Brought to you by:
ronys
Low priority, but I've had a few lxpanel crashes on Lubuntu 12.04 and after I restart using 'lxpanel --profile Lubuntu' my PWS task bar icon is missing. I know of no way to reconnect to that session, so I just kill it and open a new one. But other indicators, like volume, Wi-Fi, battery, and SpiderOak come back and are fine after the restart.
No big deal, just thought I'd mention it. It would confuse end-users, but then if they crash lxpanel they will just reboot anyway, so...
I have the same problem under xfce. After having started up a new instance of pwsafe, the PWS task bar of the previous instance turns up again. It would be nice if something could be done about it. Since I restart my xfce-panel each time I come out of sleep, this is rather annoying.
Last edit: Reinaert Albrecht 2014-10-21
For taskbar icon functionality, pwsafe is totally dependent on how well the UI toolkit used by pwsafe (i.e. wxWidgets) integrates with the platform (gnome, unity, etc). Such issues will only get fixed when wxWidgets improves it support for the taskbar functionality on the underlying platform.
Since wxWidgets 2.8 will only have bug fixes (if any) not add any new features, if your platform has only wxWidgets 2.8, this will probably never work any better for you, unless someone with knowledge on these platforms can fix it.
But, I believe the task bar support in wxWidgets 3.X is better than wxWidgets 2.8.X. If you are building pwsafe yourself, building with wxWidgets 3.X might be worth a try. Unless your platform supplies a wxWidgets 3.X build, you might have to build that yourself as well.
And this is just a guess: I have not tried it myself on Linux, but I do see improvements on Mac OS X.
Shouldn't you provide a version of pwsafe then that's built against wxwidgets 3.x? I can't just remove my 2.8.x libraries because a lot of other programs depend on it.
We'd love to. Care to join the porting effort?
You don’t have to remove existing wx2.8 libraries. Just build wx3 in a new directory and link pwsafe with it. Here’s how I do it:
Once the above wxWidgets build is over, you can build pwsafe against it by going to the root of pwsafe source tree and running
WX_CONFIG=~/work/wx3/static-release/wx-config make unicoderelease
This builds the release version (sans debug alerts) of pwsafe statically linked with wxWidgets3 libraries (so you can now rm -rf ~/work/wx3).
Please see README.LINUX.DEVELOPERS.txt in pwsafe sources for all the things pwsafe requires to be built. If you are not interested in building with YubiKey support (may be because you can’t find proper libraries for it), you can disable it by
NO_YUBI=1 WX_CONFIG=~/work/wx3/static-release/wx-config make unicoderelease
I get a bunch of errors compiling against wx3 sources (I used those provided with ubuntu BTW).
You should compile the current master from git. The released tar sources won't build under 3.0.2, as you've found out...
Hi, I tried to compile the git version (git clone git://git.code.sf.net/p/passwordsafe/git-code passwordsafe-git-code) and I get roughly the same errors. See attachment.
Can you post the output of
/usr/bin/wx-config --debug=no --unicode=yes --inplace —cxxflags
There was no output.
Did you copy-paste the command into a terminal? If yes, can you type the same command on the keyboard (seriously)?
For some reason, the hyphens seem to have been converted into something else.
This is when I copy/paste from your logs:
~$ /usr/bin/wx-config --debug=no --unicode=yes --inplace —-cxxflags
<no output="">
This is from the keyboard:
~$ /usr/bin/wx-config --debug=no --unicode=yes --inplace --cxxflags
-I/usr/lib/i386-linux-gnu/wx/include/gtk2-unicode-release-2.8 -I/usr/include/wx-2.8 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -DWXGTK -pthread
After a lot of head-scratching, it seems the hyphen chars are not what they seem:
Copy/pasted from your logs:
~$ echo "—" | od -t x1
0000000 e2 80 94 0a
0000004
Copy/pasted from my keyboard input:
sghosh@saurav-ws:~$ echo "-" | od -t x1
0000000 2d 0a
Please also post the value of your LANG environment variable. Mine is en_US.utf8
Ha, indeed. This is the output:
-I/usr/lib/x86_64-linux-gnu/wx/include/base-unicode-3.0 -I/usr/include/wx-3.0 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -pthread
What about that LANG environment variable?
en_US.UTF-8
Can you attach your Makefile from src/ui/wxWidgets?
Do you yourself have any idea what could cause this? Did you check it out elsewhere and then copy it wherever you are trying to build it? Is your checkout on a network share (nfs/cifs whatever)? Did you check it out while you were logged in over some kind of a remote session? Is your checkout in any way different than you sitting at a Linux console and checking out directly from sourceforge on to a disk locally attached?
These are just wild thoughts. I have no clue why this is happening on your machine. But it might be worth checking it out once more into a new directory and try to build it.
I tried building myself, but It doesn’t happen on my checkout.
I'm using the build supplied with ubuntu: libwxbase3.0-dev 3.0.0-2 amd64 wxBase library (development)
Just found out that one of the dependencies was not installed thus somehow rewiring the wx-config to my 2.8 install. Installed libwxgtk3.0-dev which showed:
update-alternatives: using /usr/lib/x86_64-linux-gnu/wx/config/gtk2-unicode-3.0 to provide /usr/bin/wx-config (wx-config) in auto mode
Now it compiles.
I can now also confirm that this solves this bug. Maybe you should start to provide a deb-package build against the 3.0.0 wx?
Which bug? The missing Tray icon on lxpanel crash, or your build problem?
We only recently migrated to wx3. I guess the deb-package would be coming soon.
Both ;)