10

私はキーボードを使って窓を浮かせたり沈めたりするのが好きです。残念ながら、フロートした場合、ウィンドウは移動またはサイズ変更されないため、まだタイル化されていないことを視覚的に示すことはほとんどありません。理想的には、フロートレイヤーに移動したら、画面の中央に移動したり、サイズを変更したりします。

最良の解決策は、以下の関数(または同様の関数)と連携して機能します。これは、キーバインドを使用して呼び出します。マウスクリックでフローティングして、引き続き正常に機能させたいと思います。

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は、実際には「floatwindowId」を置き換えることができます。これにより不要になります。

4

2 に答える 2

8

xmonad-contribパッケージがインストールされていると思います。次に、XMonad.Actions.FloatKeysを見てください。

変更された関数は次のようになります。

...
import XMonad.Actions.FloatKeys
...

toggleFloat = withFocused (\windowId -> do
                              { floats <- gets (W.floating . windowset);
                                if windowId `M.member` floats
                                then withFocused $ windows . W.sink
                                else do
                                     keysMoveWindowTo (x, y) (gx1, gy1) windowId
                                     keysResizeWindow (dx, dy) (gx2, gy2) windowId
                              }
                          ) 

ここxで、、、、、、、、は設定です。y_ dx_ ドキュメントに記載されている オペレーターは;からのものです。分子と分母を持つ有理数を意味します。使用する場合は、インポートする必要があります。dygx1gy1gx2gy2
%Data.Ratioa % bab

import Data.Ratio ((%))
于 2012-02-06T09:24:37.137 に答える