xscreensaver hacking help wanted

Hey, want to help out with some xscreensaver hacking?

Recent-ish Linux systems have made it so that when you add or remove monitors (e.g., docking a laptop) the system is actually aware that this has happened (shocking, I know) and dynamically changes the size, position, and number of screens.

Based on the email complaints I'm getting, it would appear that xscreensaver handles this... poorly.

However, I don't have access to any Linux machines capaple of doing this new Xrandr junk, so I can't really debug it.

I would like someone who does have access to such a machine to A) figure out what cases don't work, and B) send me a patch. You'll need one (preferably two) external monitors to experiment with. Probably better if the machine is a laptop.

Is this person you?

Tags: , , , ,
Current Music: Bohemian Carnival sound check

8 Responses:

  1. loic says:

    Hey, I've got a machine at work with two monitors, running the latest Ubuntu (which means the latest X and GNOME). I'm also conveniently located in SOMA if you ever want to come and poke at it. I'm hopefully familiar enough with X stuff to be a useful proxy. My laptop doesn't seem to particularly multi-monitor capable.

    • jwz says:

      Thanks, but no. I have zero desire to sit in someone else's office and debug this myself. I want someone with a vested interest in it to send me a patch.

      • loic says:

        Well, I'll be happy to send you a patch if you can tell me what you need patched. I was just saying you could come in if you wanted to stare at a monitor rather than have a patch.

  2. Got such a machine and about a month of free time.

    And - I'm an xscreensaver user. What a coincidence! ;)

    I'll try to come up with a patch - but where do you keep the devel branch of xscreensaver?

    Thank you for it BTW.

  3. base3 says:

    i thought that person was me but i've already spent a silly amount of time just trying to set up xrandr

  4. Do you have any more info about what is supposed to be broken?

    I have such a setup (laptop + one external monitor), but I don't see any really broken behavior.

    The only thing I notice is that the screen size doesn't get updated if you change monitors while the screensaver is running. However, the monitor change is ordinarily triggered by a keypress, so the screensaver would be turning off anyway. Maybe you want to handle this case regardless?

    • OK, never mind, I now see that you have code that is attempting to handle this, but apparently not quite doing the trick.

      Looks like if I'm switching from one monitor to another, two events are generated. The first changes the screen count to either 2 or 0, depending on whether I started by turning on the "new" monitor or turning off the "old" one. Then it goes back to 1.

      If it ever goes to 0, xscreensaver crashes. Even if it goes to 2, the screensaver size doesn't get updated properly even though it looks like it's ultimately getting the right value.

      I'll see if I can find a way to make it do something sensible.