[xmonad] separate log for each Xinerama screen
Adam Vogt
vogt.adam at gmail.com
Mon Nov 15 19:43:58 EST 2010
Hi,
I have something similar in my configuration:
http://haskell.org/haskellwiki/Xmonad/Config_archive/adamvo's_xmonad.hs
Though that approach isn't likely to do the right thing with ppExtras.
So it's probably no good without changes.
--
Adam
* On Monday, November 15 2010, Brent Yorgey wrote:
>Hi Sasha,
>
>I think this would make a nice addition to DynamicLog (except the
>functions really ought to be named something better than just adding
>primes). Do you know how to make a darcs patch and send it to this
>list, or would you like some pointers?
>
>-Brent
>
>On Wed, Nov 10, 2010 at 10:10:08PM +0000, Oleksandr Manzyuk wrote:
>> Hello all,
>>
>> I've been experimenting with XMonad recently and I've come up with a
>> solution to the following "problem": I have a dual-head setup and am
>> running two status bars on the top of each screen; I would like to be
>> able to display in each status bar the information that is relevant to
>> the corresponding screen. In particular, when I am moving the focus
>> around, staying on one screen, the window title shown in the status
>> bar of that screen should be changing according to the focused window,
>> while that shown in the status bar on the other screen should not and
>> should show the title of the window that would have the focus if I
>> switched to the other screen. Similarly for layouts. On the other
>> hand, both status bars should show the same list of hidden non-empty
>> workspaces. This way, when I'm doing something on a particular screen
>> I don't have to turn my head to find out which workspace I am on and
>> what is my current layout. The solution I have is sufficiently
>> general, so that I thought it could be added to
>> XMonad.Hooks.DynamicLog module. In that module there are functions
>> dynamicLogWithPP, dynamicLogString, and pprWindowSet that operate on
>> the current screen; I wrote the functions dynamicLogWithPP',
>> dynamicLogString', and pprWindowSet' that are like their undashed
>> counterparts but take the screen to operate on as the first argument.
>> This way I can do
>>
>> xmobar screen template commands = spawnPipe . intercalate " " $ options
>> where options = [ "xmobar"
>> , "-x"
>> , show screen
>> , "-t"
>> , wrap "'" "'" template
>> , "-c"
>> , wrap "'" "'" commands
>> ]
>>
>> main = do
>> xmobar0 <- xmobar 0 "%StdinReader%}{" "[Run StdinReader]"
>> xmobar1 <- xmobar 1 "%StdinReader%}{%date%" "[Run StdinReader, Run
>> Date \"%a %b %_d, %H:%M\" \"date\" 10]"
>> xmonad $ defaultConfig {
>> ...
>> , logHook = myLogHook [ pp { ppOutput = hPutStrLn xmobar0 }
>> , pp { ppOutput = hPutStrLn xmobar1 }
>> ]
>> ...
>> }
>>
>> myLogHook pps = do
>> screens <- (sortBy (compare `on` S.screen) . S.screens) `fmap` gets windowset
>> zipWithM_ dynamicLogWithPP' screens pps
>>
>> and be happy! If you are interested, please see
>> https://github.com/manzyuk/dotfiles for details. I don't know if this
>> is a valuable addition, but it works very well for me, so I thought I
>> would share.
>>
>> Best,
>> Sasha
>> _______________________________________________
>> xmonad mailing list
>> xmonad at haskell.org
>> http://www.haskell.org/mailman/listinfo/xmonad
>_______________________________________________
>xmonad mailing list
>xmonad at haskell.org
>http://www.haskell.org/mailman/listinfo/xmonad
More information about the xmonad
mailing list