
Quoting Leo Alekseyev
On Sun, May 13, 2012 at 8:45 AM, Norbert Zeh
wrote: myWorkspaces = ["1:terminals", "2:emacs", "3:web", "4", "5", "6", "7","8","9","0"] ++ map (\x -> show x ++ "SCR") ([1..9]++[0]) .....
zeroSub 0 = 10 zeroSub x = x
jumpToMain = gets windowset >>= \W.StackSet { W.current = W.Screen { W.workspace = w } } -> withNthWorkspace W.greedyView (-1+(zeroSub $ read [head(W.tag w)])) jumpToScratch = gets windowset >>= \W.StackSet { W.current = W.Screen { W.workspace = w } } -> withNthWorkspace W.greedyView (9+(zeroSub $ read [head(W.tag w)]))
The math here looks all wrong, and I'm surprised that it worked at all before.
The math looks fine to me, and in fact your suggestion:
What you want, I think, is the following:
jumpToMain = gets (W.tag . W.workspace . W.current . windowset) >>= W.greedyView . toMain where toMain ws = [head ws]
jumpToScratch = gets (W.tag . W.workspace . W.current . windowset) >>= W.greedyView . toScratch where toScratch ws | length ws == 1 = ws ++ "SCR" | otherwise = ws
is the one that looks dodgy to me. Notice that his main workspace names are things like "3:web", but the SCR-version is just "3SCR"! In fact, I would humbly suggest that this paragraph:
Recently this config started misbehaving (without any changes to xmonad.hs, but with possible changes in xmonad/GHC version to 0.10 and 7.4.1 as my system was upgraded). In particular, in the example above, now Mod4-<down> moves from workspace 4 to workspace 3SCR and Mod4-<up> then moves from 3SCR to 2. To fix it, I have to log in and out of X, but the problem always reoccurs, possibly after sleep/resume cycle(?).
...suggests that the problem won't be divined just by looking at his config. Something deeper is going wrong than his Haskell abilities. I can't say I have a better suggestion, but you could check: 1. if downgrading to older display drivers fixes the problem 2. if the permissions of ~/.xmonad and its contents look reasonable (and there's free disk space there) 3. how xmonad's $PATH and your shell's $PATH compare (and hence how the ghc that xmonad sees and the ghc that your shell sees compare) You might also want to check the output of ghc-pkg check. (I don't include this in the list because I can't see a way that a broken package could lead to the behavior he's seeing.) Good luck! ~d