В общем включил smartBorders из расширения XMonad.Layout.NoBorders вот так:
layoutHook = smartBorders $ avoidStruts myLayout
и теперь у меня такой баг, что я не вижу бордеры плавающего окна, пока не переключусь на соседний рабочий стол и обратно. Можно это как-нибдуь исправить?
Вот тут нашел, казалось бы, решение. Но, во-первых, как я понял, там говориться, что такое случается, когда нет статус бара. А он у меня есть. Ну и, во-вторых, lessBorders (Combine Difference Never OnlyFloat) у меня работает ровно так же, как и smartBorders.