Skip to content

Instantly share code, notes, and snippets.

@djvs
Created January 4, 2015 03:09
Show Gist options
  • Save djvs/e67c8d1a04dc111cb4bf to your computer and use it in GitHub Desktop.
Save djvs/e67c8d1a04dc111cb4bf to your computer and use it in GitHub Desktop.
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
XdndAware(ATOM) = BITMAP
_MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
WM_HINTS(WM_HINTS):
Client accepts input or input focus: True
Initial state is Normal State.
window id # of group leader: 0x2800001
_NET_WM_STRUT_PARTIAL(CARDINAL) = 0, 0, 25, 0, 0, 0, 0, 0, 0, 1919, 0, 0
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 41943070
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_DOCK
_NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x280001d
WM_CLIENT_LEADER(WINDOW): window id # 0x2800001
_NET_WM_PID(CARDINAL) = 24902
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "mok"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified location: 0, 0
program specified minimum size: 1920 by 25
program specified maximum size: 1920 by 25
window gravity: NorthWest
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "taffybar-linux-x86_64", "Taffybar-linux-x86_64"
WM_ICON_NAME(STRING) = "taffybar-linux-x86_64"
_NET_WM_ICON_NAME(UTF8_STRING) = "taffybar-linux-x86_64"
WM_NAME(STRING) = "taffybar-linux-x86_64"
_NET_WM_NAME(UTF8_STRING) = "taffybar-linux-x86_64"
@djvs
Copy link
Author

djvs commented Jan 4, 2015

-- Configs --
myConfig = defaultConfig { workspaces = workspaces'
, modMask = modMask'
, borderWidth = borderWidth'
, normalBorderColor = normalBorderColor'
, focusedBorderColor = focusedBorderColor'
, terminal = terminal'
, keys = keys'
, layoutHook = layoutHook'
--, manageHook = manageHook' <+> doFloat
, logHook = myLogHook
, manageHook = manageHook'
, startupHook = startup

                     }

takeTopFocus = withWindowSet $ maybe (setFocusX =<< asks theRoot) takeFocusX . peek

myLogHook = takeTopFocus >> setWMName "LG3D" >> fadeInactiveLogHook 0.9

takeFocusX w = withWindowSet $ \ws -> do
dpy <- asks display
wmtakef <- atom_WM_TAKE_FOCUS
wmprot <- atom_WM_PROTOCOLS

protocols <- io $ getWMProtocols dpy w
when (wmtakef `elem` protocols) $ do
    io $ allocaXEvent $ \ev -> do
        setEventType ev clientMessage
        setClientMessageEvent ev w wmprot 32 wmtakef currentTime
        sendEvent dpy w False noEventMask ev

-- startup hook
startup = do
setWMName "LG3D"
spawn "taffybar"


-- Window Management --
manageHook' = manageDocks <+> manageHookA'
manageHookA' = composeAll [ isFullscreen --> doFullFloat
, className =? "MPlayer" --> doFloat
, className =? "Gimp" --> doFloat
, className =? "Vlc" --> doFloat
, className =? "Firefox" --> doFloat
, className =? "Pidgin" --> doFloat
, className =? "Gajim" --> doFloat
, className =? "Gedit" --> doFloat
, className =? "JDownloader" --> doFloat
--, insertPosition Below Newer
, transience'
]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment