从Haskell中查找X11屏幕的数量

时间:2011-04-09 19:33:33

标签: configuration haskell x11 xmonad

我想知道当前机器有多少个X屏幕,以使我的.xmonad更加通用;我有一台上网本和一台带有两台显示器的台式机,我也使用了几台单独的监控机器。

为此,我希望能够找出当前机器有多少个X屏幕。 (我认为屏幕是正确的单词,我的意思是物理监视器。)

原因是我需要xmobar的多个实例,每个监视器一个。我现在已经硬编码为两个。

2 个答案:

答案 0 :(得分:4)

如果您使用the X11 package

 import Graphics.X11.Xinerama (getScreenInfo)

将动态返回Rectangle个列表,告诉您有多少个屏幕及其尺寸。

答案 1 :(得分:0)

对于好奇,我最终使用

 screenCount :: X Int  
 screenCount = withDisplay (io.fmap length.getScreenInfo)

我还发现XMonad模块有一个功能

 screenCount :: Display -> Foreign.C.Types.CInt