Forum: Ruby getting info about attached displays

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Phil S. (Guest)
on 2009-01-13 19:01
Hi,
I have a ruby daemon process that needs to get info about the monitors
attached to the machine it is running on. Does anyone have any nice
x-platform way of doing this? Barring that, how about some Windows
calls?

Thanks!
Kyle S. (Guest)
on 2009-01-13 19:49
(Received via mailing list)
On Tue, Jan 13, 2009 at 11:01 AM, Phil S. <removed_email_address@domain.invalid> 
wrote:
> Hi,
> I have a ruby daemon process that needs to get info about the monitors
> attached to the machine it is running on. Does anyone have any nice
> x-platform way of doing this? Barring that, how about some Windows
> calls?
>
> Thanks!
> --
> Posted via http://www.ruby-forum.com/.
Phil, that's really more of a general unix (or DOS in the case of
windows) question.

Still, for real OSes running X, xdpyinfo is a utility that provides
tons of info, including the number of attached screens...

irb>%x[xdpyinfo][/number of screens: +[0-9]+/]
=> "number of screens:    1"

I'd suggest just running it into less, so you can get acquainted with
it's output.  The man page sadly doesn't point you to useful C calls,
but the source should be decently documented if you want to grab it
from x.org or xfree86.org.

--Kyle
Phil S. (Guest)
on 2009-01-13 20:00
Kyle S. wrote:
> On Tue, Jan 13, 2009 at 11:01 AM, Phil S. <removed_email_address@domain.invalid> wrote:
>> Hi,
>> I have a ruby daemon process that needs to get info about the monitors
>> attached to the machine it is running on. Does anyone have any nice
>> x-platform way of doing this? Barring that, how about some Windows
>> calls?
>>
>> Thanks!
>> --
>> Posted via http://www.ruby-forum.com/.
> Phil, that's really more of a general unix (or DOS in the case of
> windows) question.
>
> Still, for real OSes running X, xdpyinfo is a utility that provides
> tons of info, including the number of attached screens...
>
> irb>%x[xdpyinfo][/number of screens: +[0-9]+/]
> => "number of screens:    1"
>
> I'd suggest just running it into less, so you can get acquainted with
> it's output.  The man page sadly doesn't point you to useful C calls,
> but the source should be decently documented if you want to grab it
> from x.org or xfree86.org.
>
> --Kyle

Thanks Kyle,
Yes... I realise now that it is more OS based (though I still can't find
the windows command for it!).

The problem with xdpyinfo is that number of screens is actually NOT the
number of displays. I have 2 monitors attached and I get the answer of
1, because I have one virtual desktop spanning the two.

Anyway... off topic!

Thanks again
Kyle S. (Guest)
on 2009-01-13 22:40
(Received via mailing list)
Phil, there are two ways you can have two monitors being a virtual
display, the driver may take care of it (like the nvidia one, and I
have no way of knowing how to detect that), or it may be through
xinerama.  If it's through xinerama, you should be able to tell what
the geometries and positions of the component screens are, even if you
use it as one huge screen.
This topic is locked and can not be replied to.