{-# LANGUAGE TemplateHaskell #-} module Phi.X11.AtomList ( atoms , specialAtoms ) where import Language.Haskell.TH import Graphics.X11.Xlib atoms :: [String] atoms = [ "UTF8_STRING" , "MANAGER" , "_NET_WM_NAME" , "_NET_WM_WINDOW_TYPE" , "_NET_WM_WINDOW_TYPE_NORMAL" , "_NET_WM_WINDOW_TYPE_DOCK" , "_NET_WM_WINDOW_TYPE_DESKTOP" , "_NET_WM_WINDOW_TYPE_TOOLBAR" , "_NET_WM_WINDOW_TYPE_MENU" , "_NET_WM_WINDOW_TYPE_SPLASH" , "_NET_WM_DESKTOP" , "_NET_WM_ICON" , "_NET_WM_STATE" , "_NET_WM_STATE_SKIP_PAGER" , "_NET_WM_STATE_SKIP_TASKBAR" , "_NET_WM_STATE_STICKY" , "_NET_WM_STATE_BELOW" , "_NET_WM_STRUT" , "_NET_WM_STRUT_PARTIAL" , "_NET_WM_PID" , "_NET_SYSTEM_TRAY_OPCODE" , "_NET_SYSTEM_TRAY_ORIENTATION" , "_NET_SYSTEM_TRAY_VISUAL" , "_NET_ACTIVE_WINDOW" , "_NET_NUMBER_OF_DESKTOPS" , "_NET_CURRENT_DESKTOP" , "_NET_DESKTOP_NAMES" , "_NET_CLIENT_LIST" , "_MOTIF_WM_HINTS" , "_XEMBED" , "_XROOTPMAP_ID" , "_XROOTMAP_ID" ] -- the expression must have the type (Display -> String) specialAtoms :: [(String, Q Exp)] specialAtoms = [ ("_NET_SYSTEM_TRAY_SCREEN", [|("_NET_SYSTEM_TRAY_S" ++) . show . defaultScreen|]) ]