Я предпочитаю использовать клавиатуру, чтобы плавать или тонуть окна. К сожалению, при перемещении окна не перемещаются и не изменяют размер, поэтому визуальной индикации о том, что они до сих пор не покрыты плиткой, мало. В идеале, после перехода к слою с плавающей точкой они должны были бы перемещаться в центр экрана и / или изменять размер.
Лучшее решение будет работать вместе с нижеприведенной функцией (или чем-то похожим), которую я вызываю с помощью привязки клавиш - я бы хотел, чтобы плавающий щелчок мышью по-прежнему работал нормально.
toggleFloat = withFocused (\windowId -> do
{ floats <- gets (W.floating . windowset);
if windowId `M.member` floats
then withFocused $ windows . W.sink
else float windowId })
(Код украден, я все еще не понимаю Haskell: c)
Редактировать: содержимое keysMoveWindowTo в модифицированном коде ниже может на самом деле просто заменить "float windowId", что делает его лишним.