Search code examples
configurationhaskellx11xmonad

Finding the number of X11 screens from Haskell


I'd like to know how many X screens the current machine has, to make my .xmonad a little more general; I have a netbook as well as a desktop with two monitors, and I use several single monitored machines too.

To this end, I'd like to be able to find out how many X screens the current machine has. (I think screens is the correct words, I mean physical monitors).

The reason being is that I want multiple instances of xmobar, one per monitor. I've hard coded it to be on two at the moment.


Solution

  • If you use the X11 package:

     import Graphics.X11.Xinerama (getScreenInfo)
    

    that will dynamically return a list of Rectangles, telling you how many screens, and their dimensions.