두 번째 모니터를 사용하도록 xorg.conf를 재설정한 이후,XMonad.Layout.NoBorders.smartBorders
더 이상 작동하지 않음: 양쪽 모니터에 하나의 창만 열려 있고 도킹 장치가 없더라도 기본 창에는 여전히 테두리가 있습니다.
누구든지 이것을 디버깅하는 방법을 알 수 있습니까? 예를 들어, 표준 출력으로 설정된 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
키 바인딩에 바인딩됩니다 .