You are not logged in.
This is driving me CRAZY!
I don't even know where to post about it, but I think it could be solved at the xfce desktop level.
I am using xfce window manager and panels along with cairo dock, but I use a variety of
applications in this environment.
In particular I use dolphin and gwenview to look through files and then
launch programs on those documents, videos, images, etc.
For many of the launchings, a busy cursor is put up for thirty seconds,
even though the program is launched with a tiny fraction of a second and
in fact I may have gone on to other programs.
This only seems to happen on the kde programs that launch NON kde programs
(not all non kde programs though).
It also happens with openbox, but I hope the xfce people can solve it in their
environment which is what I am using.
I have examined closely the desktop files that kde has for its file
associations and can find nothing that differentiates the ones that
show startup notification from those that dont.
In particular, I can take the emacs.desktop and emacsclient.desktop
that I have, the first of which has no notification and the second of
which has notification, and just change the one line Exec= which
contains the executable commandline to be called, and change
the results at will. It seems to be the very program, not any
desktop configuration file.
If I use Nautilus or Thunar or Eog etc instead of the kde Dolphin and
Gwenview, the issue does not happen. (Alas, I want to use Dolphin
and Gwenview).
What would solve the issue is if there is a way in xfce to simply
ignore the startup notification stuff. Who wants it anyway? Is
there such an option I could not find? I hope to God there is!
The problem is really kde's it seems but I don't think they would
be very interested in solving it. I logged into kde session and
made sure the notification settings there were turned off. And
they were turned off, in kde. But back in xfce it still seemed to
be using the old kde settings of 30 seconds.
I can't believe this "startup notification" is a FEATURE. Who
generally wants it? I for example use gwenview to call a little
one line bash program to set the desktop background. It is better
than the xfce dialog because I can see a full screen of a zillion
pictures and just pick one. (Thank goodness xfce does it right
and has command-line access to all of its settings, so the
thing is trivial). EXCEPT: the background changes instantly of
course, but then for the next thirty seconds a "busy cursor"?
Please!!
The only thing I can think of is to from scratch try to write
a little wrapper that dolphin etc would call, which then calls
the true app desired, but then explicitly turns the busy cursor
off, if I can find an easy way to do that as some kind of C
call to an X library. Then its a short program of a few lines,
and a replace of the Exec= lines in a few desktop files.
Can anyone suggest an easier way?
Truly, driving me crazy.
For now, I may just replace the image of the busy cursor with
a normal cursor, but then I wont get the busy cursor when some
program INTELLIGENTLY sets it as opposed to this bogus, fixed
length 30 second thing.
Offline
Hi BensonBear,
I believe it is a kde driven behavior.
The "30 sec" busy cursor, if I'm not wrong, is the default in kde.
Have you tried to change it in KDE System Settings / Application and System Notifications / Launch Feedback / Bouncing Cursor ?
The default is the 30 sec. change it to 2 / 3 sec.
Hope it helps
Darktux
System Settings/Application and System Notifications
Offline
Hi BensonBear,
I believe it is a kde driven behavior.
The "30 sec" busy cursor, if I'm not wrong, is the default in kde.
Have you tried to change it in KDE System Settings / Application and System Notifications / Launch Feedback / Bouncing Cursor ?
The default is the 30 sec. change it to 2 / 3 sec.
Indeed you are correct, but you may not have noticed all the details in my rant, where I described doing all of that and more, above:
The problem is really kde's it seems but I don't think they would be very interested in solving it. I logged into kde session and made sure the notification settings there were turned off. And they were turned off, in kde. But back in xfce it still seemed to be using the old kde settings of 30 seconds.
So I already have tried changing it to 1 second (still too long) and then also disabled it, to no effect.
However, I have made some progress on a way to solve the problem. I speculated that the kde launchers in dolphin, gwenview,etc., by default turn on startup notification for the programs they launch, and it is up to the programs to turn it off (should be via desktop file parameter but apparently not). So since emacs for whatever reason does not put up the busy cursor, I speculated that if I took the desktop file for, eg, smplayer, which does put up the cursor, and changed the command to Exec=emacs;smplayer, then the cursor would be reset by emacs.
And yes, it is! When I click on a video, emacs comes up, I close it, and the the video starts WITHOUT the busy cursor.
So all that may be needed to get around this is a little program that resets the cursor to a non-busy cursor. I assume there is some basic xlib apis that do this for the cursor in the root window, and that this should do the job. I will try it tomorrow, unless anyone has a better or easier fix (this one would require locating and changing all the desktop files).
I would be surprised if this issue has not been solved already. It was also present in openbox, as I stated before.
Offline
So all that may be needed to get around this is a little program that resets the cursor to a non-busy cursor. I assume there is some basic xlib apis that do this for the cursor in the root window, and that this should do the job. I will try it tomorrow, unless anyone has a better or easier fix (this one would require locating and changing all the desktop files).
Yes, this works pretty nicely, dont have to do any programming. I just put this line in front of the command on the exec line:
xsetroot -cursor /home/cbo/x.xbm /home/cbo/x.xbm
Where x.xbm is a bitmap with the regular desired cursor in it. For now I drew one of my own, but I should be able to take the stock left_ptr in use at the current time and use it instead.
I won't mark this thread as solved because I hope someone has a more principled and better solution.
Offline
Happy you've found a "solution" for it. That cursor could be very annoying.
My idea was to change the kde settings while in the XFCE session through kde system settings, but probably it makes no difference.
Offline
Happy you've found a "solution" for it. That cursor could be very annoying.
It really is. Ironically it is supposed to provide information, but it is actually providing misinformation.
The above solution can be made better, you can get the default arrow cursor (Above I erroneously called left_ptr) with
xsetroot -cursor_name arrow
However, this does not seem to always work. Mostly it works. But I just found this "startup notification" is not ad hoc but has a library supporting it. I think if one looks at that library it will be easy to make a command that turns off the notification that is presumably started up by the launchers. Or even disable it all together. When I get a chance I will try it.
My idea was to change the kde settings while in the XFCE session through kde system settings, but probably it makes no difference.
They are actually changed, so when you go into kde the change is there, but they do not appear to affect xfce sessions.
Offline
I think if one looks at that library it will be easy to make a command that turns off the notification that is presumably started up by the launchers. Or even disable it all together. When I get a chance I will try it.
Okay, I looked at the test examples that come with the source code for the startup notification library.
I have not done programming at the raw X level so I do not fully understand the context the code is in, nor do I fully understand the startup notification api's, but from what I can gather kde applications that act as launchers, such as dolphin, launch their "launchees" with the understanding that the launchees will tell them when they are successfully launched. For some reason under xfce, the kde launchers are doing this despite the fact that the destop files for the launchees tell kde they don't participate in this scheme. So we have to change them so they do participate. This code, say called "nonotify", will then do the trick (a few details the build environmen and of error functions omitted -- anyone who wants it can ask, or just copy from the original source), and we just say
Exec=nonotify;xxx instead of
Exec=xxx
in the desktop file.
int
main (int argc, char **argv){
Display *xdisplay;
SnDisplay *display;
SnLauncheeContext *context;
xdisplay = XOpenDisplay (NULL);
display = sn_display_new (xdisplay,
error_trap_push,
error_trap_pop);
context = sn_launchee_context_new_from_environment (display,
DefaultScreen (xdisplay));
if (context == NULL){
return 1;
}
sn_launchee_context_complete (context);
return 0;
}
Haven't seen any problems with it yet.
Offline
On the flip side, how does one ENABLE startup notifications for all applications when using XFCE4? It is extremely annoying to launch Google Chrome, or Mozilla Firefox, or LibreOffice and stare at a blank screen for upwards of 30 seconds with no indication that anything is happening. We use diskless workstations, so everything is pulled off the network, adding quite a bit of latency to application startup. We run into situations (daily) where students end up with 5-10 Chrome windows onscreen because they weren't sure if the double-click on the desktop icon registered or not.
We previously ran a KDE3 setup which has several options for startup notifications (flash the taskbar entry, bouncing icon around the cursor, etc) and you could set the duration (we defaulted to 10 seconds). Very handy, very useful. Very obvious when it's missing!
Offline
On the flip side, how does one ENABLE startup notifications for all applications when using XFCE4?
Is there an answer to this question?
I really need it. Even on my quad-core system some apps take several seconds to start (like a Java-based one I wrote).
And not even having an idea anything is happening after double-clicking the icon is annoying. This is to answer BensonBear's question. The cursor is a standard (i would say pretty well thought of) way to notify the user that a visual change is coming (Windows has been using that since the very beginning). And it's really helpful. It a usability thing.
Offline
As far as I understand startup-notifications (reference: FreeDesktop Startup Notification Spec) and its implementation in Xfce, 3 things need to be in place for them to work:
1. Include "StartupNotify=true" in the applications .desktop file.
2. The startup-notification package needs to be installed (called libstartup-notification in some distros)
3. The application itself needs to be programmed to send the proper X event to initiate the notification (example code included in the spec linked above).
There doesn't appear to be anything DE-wide that handles this. I did find old bug report that seems to be related.
Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
3 things need to be in place for them to work
Thanks for the hint. I will triple check if I have at least 2 out of 3 in place (I can't really change 'standard' applications like word processor) and let you know what happens.
Offline
ToZ wrote:3 things need to be in place for them to work
Thanks for the hint. I will triple check if I have at least 2 out of 3 in place
Checked again.
libstartup-notification is already installed. The 'StartupNotify=true' is in place.
No luck, none of the applications (coming with Xubuntu) shows the 'busy' cursor while starting. Just pause (after menu click or desktop launcher double-click) and then the window suddenly pops up.
Offline
Which version of Xubuntu are you using? I just checked my two Xubuntu installs:
- 14.04.2 = no startup notification
- 15.04 beta = yes startup notification
EDIT: I guess I should also ask what version of Xfce you are running?
Last edited by ToZ (2015-03-03 02:33:24)
Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
Which version of Xubuntu are you using?
I apologize for not following the question posting rules.
Will get the system info and post it tonight.
It's Xubuntu 14.04 but I'm not sure about the sub-release number and not sure about exact XFCE version.
Last edited by nskmda (2015-03-03 16:00:12)
Offline
*buntu 14.04 has this bug which prevents the cursor from changing. The solution in comment #18 works around the issue and allows the startup notifications to appear again.
The bug was fixed for subsequent versions of Xubuntu.
Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
*buntu 14.04 has this bug which prevents the cursor from changing. The solution in comment #18 works around the issue and allows the startup notifications to appear again.
The bug was fixed for subsequent versions of Xubuntu.
Is it like 'LightDM' is a default DM my Xubuntu may be using?
I see the whole thread is about LightDM bug...
Offline
Yes, LightDM is the default display manger in Xubuntu 14.04. The workaround in comment #18 will fix the missing startup notifications.
Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
Which version of Xubuntu are you using?
Exactly as you said: I have Xubuntu 14.04.2, XFCE 4.10
I guess, I will try to upgrade.
Offline
ToZ wrote:Which version of Xubuntu are you using?
Exactly as you said: I have Xubuntu 14.04.2, XFCE 4.10
I guess, I will try to upgrade.
There's no need to upgrade. 14.04 is the LTS (Long-Term Support) version that is supported I think until 2017. To fix the issue with the notifications not working, all you have to do is run, in a terminal window, these two commands:
echo "GDK_CORE_DEVICE_EVENTS=true" | sudo tee ~lightdm/.pam_environment
sudo chown lightdm:lightdm ~lightdm/.pam_environment
...and log out and back in again.
Please remember to mark your thread [SOLVED] to make it easier for others to find
--- How To Ask For Help | FAQ | Developer Wiki | Community | Contribute ---
Offline
There's no need to upgrade. 14.04 is the LTS (Long-Term Support) version that is supported I think until 2017.
Well, I'm only using Linux, not developing for it.
So, I'm always not sure if such 'patching' will hold all the way through upcoming updates of packages (I once had merge conflicts during system update) till next system upgrade.
I went with upgrading last night. Now it's Xubuntu 14.10 and the issue seems to be solved (at least partially, since now sometimes that 'busy' indicator gets stuck, but I can endure it for some time).
Thanks a lot for your help.
Offline
[ Generated in 0.013 seconds, 8 queries executed - Memory usage: 648.05 KiB (Peak: 680.9 KiB) ]