--/--/--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2008/10/03

Haskell でスクリーンのサイズを得る

Haskell では、Graphics.X11 あたりのモジュールを使えば可能となっている。以下サンプル。

import qualified Graphics.X11.Xlib.Display as X

defaultScreenWidth =
    do disp <- X.openDisplay ""
       return $ X.displayWidth disp (X.defaultScreen disp)

以下余談。

なぜこんなことをしたくなったかと言うと、xmonad に関係している。

現在、ステータスバーとして dzen2 を2つ用いている。1つはWM系の情報、もう1つは雑多な情報を表示するのに用いている。WM系の情報を表示するため、dzen2 は xmonad.hs から起動している。

この時、2つのバーが重ならないよう、適切にサイズや位置を指定してやる必要がある。以前は固定で問題なかった。しかし最近はデュアルディスプレイの時やシングルディスプレイの時、ディスプレイサイズが違うなど、固定値ではまずい状況となっていた。

意図した通りの場所にバーを出現させるには、dzen2 に指定するサイズや位置を動的に変える必要がある。そこでスクリーンのサイズを得て、そこから色々と切り替えるように設定を変えた。まだお粗末ではあるが、期待した通りに動いている。

スポンサーサイト

comment

post




上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。