dannyedel / dspdfviewer

Dual-Screen PDF Viewer for latex-beamer
http://dspdfviewer.danny-edel.de
GNU General Public License v2.0
218 stars 27 forks source link

Support Request: Has anybody used this successfully with webex? #137

Closed killes closed 8 years ago

killes commented 8 years ago

I am trying to give a screen presentation through webex. I can share dspdfviewer but the others get the presenter view when I look at it. Note: I am not using a second monitor. Do I need to set up a virtual second monitor? Any hints are appreciated!

dannyedel commented 8 years ago

If you have only one screen physically attached, it's very likely that your windows ended up behind each other. Check with Alt-Tab (or equivalent, depending on your desktop environment) if that could be the case.

I don't know how webex works, but I assume that it cannot see the "behind" window, so you would need a place (normally the second physical screen) to have the audience side in foreground, then stream that.

The virtual monitor actually sounds like a promising idea - let second screen render to some virtual in-memory place, and then let webex read and send that. This is basically how the unix vncserver command works - it creates a Xvfb virtual screen in memory and then allows vnc-protocol access to it, so the basic principle is proven to work.

By the way, which operating system and desktop environment are you using?

killes commented 8 years ago

Thanks for the encouragement! I am on Debian Jessie. Haven't figured out how to set up a virtual monitor yet.

With Webex, I can chose "share application". I then see a list of all running applications and can pick a window. Both dspdfviewer windows are available, but when I try to select the one for the viewers, both get selected. Also, the other people will only see the one that is active on my screen.

dannyedel commented 8 years ago

when I try to select the one for the viewers, both get selected

Right now, both windows expose to the OS that they are part of the same application. I'll have some time to experiment after the weekend, maybe I can cook up a patch that pretends that the windows are part of different applications : )

In the meantime, could you check whether webex is able to correctly stream a non-visible window? (A web browser pointed to some news site with lots of flashing images and ads should be perfect) If that works, maybe it can be solved via little patch to dspdfviewer, without even needing a virtual screen.

killes commented 8 years ago

Webex apparently has decided that "share application" is to be for paid up users. I may be able to test with a client's account, but I can't promise it.

I guess I could try with google instead.

dannyedel commented 8 years ago

Hi @killes,

I'm really sorry for the late answer, but in the meantime I tried out a few things. It turns out that I can not make Qt give the windows different application IDs, since there is only one QApplication object allowed to be constructed during runtime.

I also tried my hands at Xdummy/Xvfb (mainly for the unittests, to test the "swap screen" function) with the hope to emulate a two-screen environment. If that would have worked, spawning x11vnc or similar to broadcast one of those two screens would have been trivial.

However, I have not yet gotten it to work at all, either I get two independent X screens (:0.0 and :0.1) and cannot move windows between the monitors, or I use Xinerama, but this results in nonexistent support from Qt (seeing one large display instead of two)...

Long story short, this is going to be really difficult as long as you cannot physically attach two screens to your presentation computer.

If you can attach two screens, I'd recommend using x11vnc -viewonly -id pick or a similar command from your software to share your audience window.

On a side note: At least on my system, x11vnc cannot read a background window, it will transmit whatever window is in front of it.

killes commented 8 years ago

@dannyedel No problem at all! I kind of dropped the ball as well. I am glad you did all these experiments, I sort of got stuck.

It is sad that there are reasons why this can't work. But then it is maybe not the most common use case.

The talk in question went fine, so unless somebody else needs this, I suggest we close this ticket.