Dear Marc-André,

On Sonntag, 28. April 2013 16:41:43 Marc-André Moreau wrote:
> Hi Hans-Peter,
> 
> Thanks for your contribution. I've started integrating bits from it, and
> I'm trying to think of the best way to get this done cleanly.

Cool.

> From the code
> I have working here, you've modified the multimon detection logic and
> extended the size option to get a desktop position.

Yes, with that code in place, we will get maximum flexibility in a minimum 
invasive way.

> Here's what I'd like to do to:
> 
> Add an option to list detected screens, and provide a command for passing
> in an array of displays to use.
>
> Let's say we could list the monitors like this (the following config
> matches my dual full-hd monitor setup)
> 
> /monitor-list
> [0] 1920x1080 +0+0 *
> [1] 1920x1080 +1920+0
> 
> We could then specify monitor settings like this:
> 
> /monitors:0,1
> /monitors:1920x1080+0+0,1920x1080+1920+0
> 
> /monitors:1
> /monitors:1920x1080+1920+0

I tried that approach already (in fact, it was my first attempt to tackle the 
problem). Unfortunately, there's a big can of worm hidden behind the scenes, 
because, it's going to be hard to determine the correct rectangle of all 
screens, given that they can organize in arbitrary ways, orders and sizes. 
Imagine a setup of four screens

  +------+------+
  |1     |2     |
  |      |      |
  +------+------+
  |3   |4       |
  +----+        |
       |        |
       +--------+

which is perfectly possible, but it *will* result in complex calculations.
I avoided them by letting X to determine the maximum desktop, and just make 
sure, the provided rectangle is in bounds. 

For your examples, you can use /size:3840x1080 and /size:1920x1080+1920+0. 
Even /workarea would work, given your task bar is 55px height at the bottom, 
it would use /size:3840x1025+0+0. These values will be those most commonly 
used for such a setup anyway.

> By default fullscreen shouldn't take all screens like it currently does, it
> is very annoying. We should enable it with /multimon for true multimon, and
> also support /span for the span mode.

Respecting the /multimon switch in that way for fullscreen is going to be 
easy. I can provide that. BTW, what would the /span switch do exactly?

> With the following suggestions we'd
> be able to get complex multi-monitor setups working well. When going
> fullscreen without /multimon we can simply default to going fullscreen on
> the current screen, not all of them.

Okay, that sounds reasonable, and I can do that easily. With the /monitor 
switch I'm much more reluctant to get this right. On the other hand, with my 
current patches, all possible scenarios are already possible. Hence, I tend to 
believe, that it's a step in the right direction and a good base for any 
higher level options. If you would supply an arbitrary rectangle from the 
pathological scenario above, my code would determine the correct monitor data.

> What do you think?

I'm not sure, if specifying the physical monitor organization buys us anything 
on top of what can be archived already. OTOH, I fear the possibly complex 
relationship of physical monitors to desktop appearance to virtual multimon 
setup. Correlation of the physical to the virtual monitor setup is what we 
will have to get right, especially, when it comes to setups with more then 2 
monitors, and non "full" fullscreen modes, as those that I primarily address 
with my patches. The terminal host will be confused, if the given resolution 
does not match the monitor organization.

Pete

> On Sat, Apr 27, 2013 at 11:01 AM, Hans-Peter Jansen <h...@urpla.net> wrote:
> > On Freitag, 26. April 2013 18:11:57 Hans-Peter Jansen wrote:
> > > Dear Marc-Andre, dear RDP-People,
> > > 
> > > this is an astonishing project, with so much high quality code, a nice
> > 
> > build
> > 
> > > environment, impressing progress, where I wonder, why it is so silent on
> > > any communication channel. Hmm.
> > > 
> > > Anyway, here's a proposed contribution to your project.
> > > 
> > > A few words on my environment: I'm responsible for a diskless linux
> > 
> > desktop
> > 
> > > setup (fat clients) in a transportation firm. All relevant desktops run
> > 
> > on
> > 
> > > 24" screens (1920x1200), with up to three of them resulting in a
> > 
> > 5760x1200
> > 
> > > desktop, exhausting the horizontal RDP limit of 4096... Oh, well. Let's
> > > wait for RDP 8.0 in Windows 9, raising it to .. 8192, I bet(!).
> > 
> > Okay, this is not correct. It looks like only rdesktop does suffer from
> > this
> > limitation, but not xfreedrp:
> > 
> > DBG_X11 xf_detect_monitors (96): desktop: 5760x1200+0+0 (max: 5760x1200)
> > DBG_X11 xf_detect_monitors (137): vscreen[0]: 1920x1200+0+0 (primary)
> > DBG_X11 xf_detect_monitors (137): vscreen[1]: 1920x1200+1920+0
> > DBG_X11 xf_detect_monitors (137): vscreen[2]: 1920x1200+3840+0
> > DBG_X11 xf_detect_monitors (146): area: 5760x1200+0+0
> > DBG_X11 xf_detect_monitors (179): monitor[0]: 1920x1200+0+0 (primary)
> > DBG_X11 xf_detect_monitors (179): monitor[1]: 1920x1200+1920+0
> > DBG_X11 xf_detect_monitors (179): monitor[2]: 1920x1200+3840+0
> > 
> > as well as /workarea:
> > 
> > DBG_X11 xf_detect_monitors (96): desktop: 5760x1153+0+0 (max: 5760x1153)
> > DBG_X11 xf_detect_monitors (137): vscreen[0]: 1920x1200+0+0 (primary)
> > DBG_X11 xf_detect_monitors (137): vscreen[1]: 1920x1200+1920+0
> > DBG_X11 xf_detect_monitors (137): vscreen[2]: 1920x1200+3840+0
> > DBG_X11 xf_detect_monitors (146): area: 5760x1153+0+0
> > DBG_X11 xf_detect_monitors (179): monitor[0]: 1920x1153+0+0 (primary)
> > DBG_X11 xf_detect_monitors (179): monitor[1]: 1920x1153+1920+0
> > DBG_X11 xf_detect_monitors (179): monitor[2]: 1920x1153+3840+0
> > 
> > I'm really sorry about spreading silly FUD here. Please beg my pardon.
> > 
> > FWIW, the current git incl. my patches is readily available for openSUSE
> > 
> > here:
> >   http://download.opensuse.org/repositories/home:/frispete:/RemoteDesktop
> > 
> > Package: FreeRDP
> > 
> > Let me know, if you miss a SUSE distribution here. Get an overview here:
> > 
> > 
> > https://build.opensuse.org/project/monitor?project=home%3Afrispete%3ARemot
> > eDesktop
> > 
> > Comments, flames, etc. welcome.
> > 
> > Cheers,
> > Pete
> > 
> > 
> > --------------------------------------------------------------------------
> > ---- Try New Relic Now & We'll Send You this Cool Shirt
> > New Relic is the only SaaS-based application performance monitoring
> > service
> > that delivers powerful full stack analytics. Optimize and monitor your
> > browser, app, & servers with just a few lines of code. Try New Relic
> > and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr
> > _______________________________________________
> > Freerdp-devel mailing list
> > Freerdp-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/freerdp-devel

------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Freerdp-devel mailing list
Freerdp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Reply via email to