Re: _NET_WM_USER_TIME reconsidered



On Monday 04 September 2006 05:17, Matthias Clasen wrote:
> During a recent effort to reduce unnecessary wakeups of userspace
> applications (in preparation for tickless kernels), it was brought to
> my attention that the GNOME workspace switcher applet wakes up for
> every key press in any window on the desktop.
>
> https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=204968
>
> The same happens with metacity; we're taking ~6 context switches per
> key press, which is "not nice" for battery life on laptops.

 Hmm. And is that actually a real problem? My maximum typing speed is 
somewhere around 400CPM (which I consider that to be pretty above-average) 
and that's ~7 presses per second. I'd expect the cost of basically just 
ignoring an event to be insignificant to the cost of handling the event in 
the active application.

> A simple solution for this problem is to put the _NET_WM_USER_TIME
> property on a separate window. Then applications listening for changes
> of the toplevel window properties are not affected by its frequent
> changes.
>
> I'd like to propose the following addition to the EWMH:
>
>
>   _NET_WM_USER_TIME_WINDOW WINDOW/32

 That feels overly specific. What would be wrong with setting that e.g. on the 
group leader?

> PS I should not forget to mention that Owen already pointed out this
> problem and the proposed solution when _NET_WM_USER_TIME was discussed
> in 2003:
>
> http://mail.gnome.org/archives/wm-spec-list/2003-May/msg00047.html

"I'm slightly bothered by the idea that the window manager would et
woken up (to handle the PropertyChangeNotify) on every keypress and
button press. I don't really expect it to be a problem in practice,
however."

-- 
Lubos Lunak
KDE developer
--------------------------------------------------------------
SUSE LINUX, s.r.o.   e-mail: l lunak suse cz , l lunak kde org
Lihovarska 1060/12   tel: +420 284 028 972
190 00 Prague 9      fax: +420 284 028 951
Czech Republic       http//www.suse.cz



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]