XMonad.Layout.NoBorders.smartBordersが機能しないことをデバッグする方法は?

XMonad.Layout.NoBorders.smartBordersが機能しないことをデバッグする方法は?

2番目のモニタを使用するようにxorg.confをリセットした後、XMonad.Layout.NoBorders.smartBordersもう機能しません:両方のモニターに1つのウィンドウしか開いておらず、ドッキングデバイスがない場合でも、メインウィンドウにはまだボーダーがあります。

誰でもこれをデバッグする方法がわかりますか?たとえば、標準出力に設定されたXMonadスタックをダンプしますか?ありがとうございます。

編集:またはsmartBordersが間違って実装されているか、他のlayoutHooksと奇妙な対話がある、または間違っていると仮定すると、XMonadスタックセットを確認してウィンドウlength the_current_stack(現在の画面)を1に変更して、レイアウトを全画面に動的に切り替えます(または新しい窓が開いたらその逆)?

編集:noBordersうまくいくようです。他のモジュール(smartBorderフラグなど)はXMonad.Layout.Spacing.smartBorder問題なくマルチスクリーンモードで動作します。上記のコードの一番下には、「あいまいな」コネクタを扱うセクションがあるようです。

ベストアンサー1

X ()キーバインディングで実行できるものを定義できます。

たとえば、

import System.IO

debugStuff :: X ()
debugStuff = withWindowSet (\ws -> do
    liftIO $ print ws
    liftIO $ logToTmpFile $ show ws 
  )

myAppendFile :: FilePath -> String -> IO ()
myAppendFile f s = do
  withFile f AppendMode $ \h -> do
    hPutStrLn h s

logToTmpFile :: String -> IO ()
logToTmpFile = myAppendFile "/tmp/xmonad.log" . (++ "\n")

debugStuffキーバインディングにバインドされます。

おすすめ記事