diff options
author | tv <tv@krebsco.de> | 2022-04-05 21:39:55 +0200 |
---|---|---|
committer | tv <tv@krebsco.de> | 2022-04-05 22:06:40 +0200 |
commit | f4cdf79bd4a75e9eafe68b9a908f4cc68682b7ef (patch) | |
tree | d2cb50df2344d97042b2c006ee39811e2b87511d /src/Graphics/X11/Extra.hs | |
parent | 032cb86ff8108eb4915a692015da344a41f78506 (diff) |
boom
Diffstat (limited to 'src/Graphics/X11/Extra.hs')
-rw-r--r-- | src/Graphics/X11/Extra.hs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/Graphics/X11/Extra.hs b/src/Graphics/X11/Extra.hs new file mode 100644 index 0000000..bed1ba3 --- /dev/null +++ b/src/Graphics/X11/Extra.hs @@ -0,0 +1,24 @@ +module Graphics.X11.Extra where + +import Control.Exception (bracket) +import System.Environment (getEnv) +import System.IO.Unsafe (unsafePerformIO) +import qualified Graphics.X11 as X11 + + +unsafeInternAtom :: String -> Bool -> X11.Atom +unsafeInternAtom atomName onlyIfExists = + unsafePerformIO $ withDefaultDisplay $ \display -> + X11.internAtom display atomName onlyIfExists + +defaultDisplayName :: String +defaultDisplayName = + unsafePerformIO (getEnv "DISPLAY") + +withDisplay :: String -> (X11.Display -> IO a) -> IO a +withDisplay display = + bracket (X11.openDisplay display) X11.closeDisplay + +withDefaultDisplay :: (X11.Display -> IO a) -> IO a +withDefaultDisplay = + withDisplay defaultDisplayName |