Нахождение количества экранов X11 от Haskell - PullRequest
2 голосов
/ 09 апреля 2011

Я хотел бы знать, сколько экранов X имеет текущая машина, чтобы сделать мой .xmonad немного более общим;У меня есть нетбук и настольный компьютер с двумя мониторами, и я также использую несколько компьютеров с одним монитором.

С этой целью я хотел бы узнать, сколько экранов X имеет текущая машина.(Я думаю, что экраны - это правильные слова, я имею в виду физические мониторы).

Причина в том, что мне нужно несколько экземпляров xmobar, по одному на монитор.Я жестко запрограммировал это, чтобы быть на два в данный момент.

Ответы [ 2 ]

4 голосов
/ 09 апреля 2011

Если вы используете пакет X11 :

 import Graphics.X11.Xinerama (getScreenInfo)

, который будет динамически возвращать список Rectangle с сообщением о количестве экранов и их размерах.

0 голосов
/ 12 апреля 2011

Для любопытных я закончил тем, что использовал

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

Я также узнал, что модуль XMonad имеет функцию

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