aboutsummaryrefslogtreecommitdiffstats
path: root/TODO
diff options
context:
space:
mode:
authorSpencer Janssen <sjanssen@cse.unl.edu>2007-03-07 07:42:23 +0100
committerSpencer Janssen <sjanssen@cse.unl.edu>2007-03-07 07:42:23 +0100
commitd0fc61f3f0b3686aedc288e01b3ed4cf0fa48398 (patch)
tree896a131e809341d93ac50ef8a09d90e9e4771750 /TODO
parenta527baa7ee333ac0c94a20ddae7bd2808a25604b (diff)
downloadxmonad-d0fc61f3f0b3686aedc288e01b3ed4cf0fa48398.tar.gz
xmonad-d0fc61f3f0b3686aedc288e01b3ed4cf0fa48398.tar.xz
xmonad-d0fc61f3f0b3686aedc288e01b3ed4cf0fa48398.zip
Plan for statusbar/multithreading
darcs-hash:20070307064223-a5988-0580a4fe6cc01238e55f00d9dc637212afc3d165.gz
Diffstat (limited to '')
-rw-r--r--TODO16
1 files changed, 16 insertions, 0 deletions
diff --git a/TODO b/TODO
index e69de29..0103dac 100644
--- a/TODO
+++ b/TODO
@@ -0,0 +1,16 @@
+- 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.