- Tasks blocking xmonad 0.1 * CRITICAL: fix killClient code. see for example, xclock. - more quickchecks (layout algorithm is one candidate) - website, xmonad.org - testing - let mod+enter demote a master window - think about the statusbar/multithreading. Three shared TVars: windowTitle :: TVar String workspace :: TVar Int statusText :: TVar String Three threads: Main thread, handles all of the events that it handles now. When necessary, it writes to workspace or windowTitle Status IO thread, the algorithm is something like this: forever $ do s <- getLine atomic (writeTVar statusText s) Statusbar drawing thread, waits for changes in all three TVars, and redraws whenever it finds a change. - Notes on new StackSet: The actors: screens, workspaces, windows Invariants: - There is exactly one screen in focus at any given time. - A screen views exactly one workspace. - A workspace is visible on one or zero screens. - A workspace has zero or more windows. - A workspace has either one or zero windows in focus. Zero if the workspace has no windows, one in all other cases. - A window is a member of only one workspace.