Joystick activity does not stop the screensaver

Bug #30378 reported by PeterShinners on 2006-02-03
130
This bug affects 21 people
Affects Status Importance Assigned to Milestone
GNOME Screensaver
Invalid
Medium
gnome-screensaver (Ubuntu)
Medium
Unassigned
xscreensaver (Ubuntu)
Undecided
Unassigned

Bug Description

While playing games entirely with the joystick the screensaver is activated every few minutes.

Input activity from a joystick should have the same results as activity from the mouse or keyboard.

Miguel Martinez (el-quark) wrote :

I cannot currently test this, as I have currently no joystick available. However, I'd like to add that if you are moving only the mouse wheel, the screensaver will also activate. This behaviour was also present in Breezy (I don't remember if it was in Hoary)

Clinton (cjljt) wrote :

running Dapper 6.06 on Toshiba Tecra 8100. Have also noticed that USB connected mouse will not terminate screensaver. Laptop hardware mouse will.

Emmet Hikory (persia) wrote :

Unfortunately, gnome-screensaver checks the X event queue to determine when an event occurs, and most joystick using programs in ubuntu use the kernel event interface (or legacy /dev/js0) from libsdl.

Regarding the mouse scroll, there is a limitation in X that only one client may trap button clicks at a time, so gnome-screensaver must ignore them in order to allow the program to see them. This is also annoying upstream (see src/gs-watcher-x11.c for the rant).

Changed in gnome-screensaver:
status: Unconfirmed → Confirmed
danslinuxbox (danslinuxbox) wrote :

This screensaver bug is still present G.Gibbon, I found it while player sauerbraten using both mouse and keyboard. disabling the screensaver is necessary.

I used to use Debian with Gnome and I didn't have this problem. If anyone is interested I still have my old debian partition and can check the difference if you tell me what to look for.

Dan

Changed in gnome-screensaver:
status: Unknown → New
enigma_0Z (enigma-0za) wrote :

Just wanted to add a "me too". This is quite annoying, is there some kind of workaround?

Hooya (tjbassoon) wrote :

I would also like a fix/workaround to solve this issue. Even a screenlet switch would be useful at this point.

Mathieu Comandon (strycore) wrote :

if you wish to script this you can add gnome-screensaver-command -i to your game launchers to inhibit the screen saver .
I have yet to find a way to stop this command when the game quits

Changed in gnome-screensaver:
status: New → Invalid
quequotion (quequotion) wrote :

So this was never concluded. Why did it become "Invalid"?

Did someone mistake this for a discussion of the problems with the mouse wheel?

I suppose it is more of a feature request than a bug, but why couldn't the screensaver notice input from joystics? (especially now that more programs are using events to control the input and there should be some way to hotwire the sdl input anyway).

Emmet Hikory (persia) wrote :

The upstream task has become invalid because upstream has determined that the best workaround is for joystick using applications to inhibit screensaver activation directly. In the unlikely event that all games are ported to use the X joystick interface, it may be appropriate to revisit the behaviour of gnome-screensaver in the presence of joystick activity.

For reference, joystick using applications that use SDL are expected to not activate the screensaver any longer, due to changes in SDL ( http://www.libsdl.org/cgi/viewvc.cgi?view=rev&revision=3558 ). Applications not using SDL should call XResetScreensaver as appropriate to avoid screensaver activation.

Note also that the effects of such changes may be unobserved if some changes to xsync ( http://cgit.freedesktop.org/xorg/xserver/commit/?id=1f4fb0225b278d1cf4145aebeb0bdd23dc8f62d5 ) are not included in the running X server.

I am marking this bug against Ubuntu gnome-screensaver also invalid, for the same reasoning. Those experiencing this issue are encouraged to file new bugs against the joystick using packages which fail to inhibit screensaver activiation. For example, if the behaviour with sauerbraten mentioned in comment #4 can be reproduced with a recent Ubuntu release, a bug should be filed against sauerbraten.

Changed in gnome-screensaver (Ubuntu):
status: Confirmed → Invalid
Changed in gnome-screensaver:
importance: Unknown → Medium
status: Invalid → Unknown
Changed in gnome-screensaver:
status: Unknown → Invalid
Chris Cowan (agentme49) wrote :

I'm on Ubuntu 12.04, and each of the Steam for Linux games I've played that support gamepads don't seem to inhibit the screensaver themselves. I don't know if it's realistic to expect them to all patch to deal with this themselves, and I'm not sure the responsibility should be on them.

Stephan Sokolow (ssokolow) wrote :

@10: It shouldn't. Expecting every game, past present and future (including closed-source ones where the developers bundled a copy of everything except libc and libGL to avoid having to maintain them) to special-case joysticks on Linux is insanity.

This disagreement over approach reminds me of a Buddhist quote.

“Where would I find enough leather
To cover the entire surface of the earth?
But with leather soles beneath my feet,
It’s as if the whole world has been covered.”

Even if that weren't the case, ignoring the joystick is architecturally wrong. The X server is supposed to reset the screensaver counter on INPUT. Joysticks are input. (And they're not typically used for the special "Let's control the music player without waking the monitors" case which justifies LIRC also being an exception.)

Anyway, since the xf86-input-joystick driver can watch the joystick without blocking other applications, I've just e-mailed the upstream developer/maintainer to ask whether it's possible to use it to map joystick input to the X11 input queue in a way which would have no effect beyond being visible to the screensaver subsystem.

Changed in gnome-screensaver (Ubuntu):
status: Invalid → Confirmed
Daniel Ellis (danellisuk) wrote :

I have tested this and can confirm the issue still remains on both Ubuntu 12.04 and 14.04, so marking as confirmed. The technical reasons behind the current behaviour do not cause the issue at hand to become invalid. Upstream may have marked this as invalid, but this remains an Ubuntu issue, and this bug should remain confirmed until a suitable work around is found for Ubuntu.

Daniel Ellis (danellisuk) wrote :

Agree whole heartedly with Stephan Sokolow. We need a way to have the X server handle the joystick without having it send the mapped events to other applications. Was there any response from upstream?

For now, here is how you can enable the joystick within the X server:-

sudo apt-get install xserver-xorg-input-joystick

This creates the file /usr/share/X11/xorg.conf.d/50-joystick.conf

Now to disable the mouse integration, and create a mapping of the buttons so they all behave as shift keys, edit the file to look as follows:-

Section "InputClass"
        Identifier "joystick catchall"
        MatchIsJoystick "on"
        MatchDevicePath "/dev/input/event*"
        Driver "joystick"
        Option "StartKeysEnabled" "True"
        Option "StartMouseEnabled" "False"
        Option "MapButton1" "key=50"
        Option "MapButton2" "key=50"
        Option "MapButton3" "key=50"
        Option "MapButton4" "key=50"
EndSection

Now pressing any of the four mains buttons will prevent the screensaver from appearing. Although, this will not work for any games that you only use the direction pads on. I think most games involve button presses, so hopefully this is a practical solution for people until a proper solution is available.

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in xscreensaver (Ubuntu):
status: New → Confirmed
Straximus (straximus) wrote :

Adding xscreensaver as an affected package, as it exhibits the same behavior as gnome-screensaver in this regard.

Forest (foresto) wrote :

I wrote a program called joystickwake to work around this problem until display servers learn that joysticks are input devices. If you happen to be running Ubuntu Trusty, you can install it from my PPA:
https://launchpad.net/~foresto/+archive/ubuntu/toys

Christian Mertes (cmertes) wrote :

Dammit, I missed the tenth birthday of this incredibly annoying bug. Anyway, belated happy birthday!

quequotion (quequotion) wrote :

I think danellisuk's approach is interesting. I wonder if there is any "null" key they could be redirected to?

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.