[xmonad] Initial Layout

wagnerdm at seas.upenn.edu wagnerdm at seas.upenn.edu
Fri Jan 21 18:06:08 CET 2011


DynamicHooks could probably help create a hook that only runs once.  
(This hook could potentially reinstall itself if it finds out it is  
not yet ready to run.)

http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Hooks-DynamicHooks.html

~d

Quoting Brent Yorgey <byorgey at seas.upenn.edu>:

> On Fri, Jan 21, 2011 at 01:10:47PM +0300, kevind256 wrote:
>> How about assigning such function to manage hook, but the function
>> itself would check if all the required windows are present, and if it
>> hasn't acted before (so it would act only one time - after startup,
>> and after all manage hooks have run. During the last one, to be
>> precise).
>
> Hmm, yes, this should be possible, but I think it would be a lot of
> work coding it up.  I'd like to help but I'm not sure how to help in a
> way that wouldn't take a lot more time than I have.
>
> -Brent
>
>> On 1/20/11, Brent Yorgey <byorgey at seas.upenn.edu> wrote:
>> > On Wed, Jan 19, 2011 at 01:02:22PM -0500, Allan Wind wrote:
>> >> I am starting xterm, iceweasel (aka firefox) and pidgin from .xsession:
>> >>
>> >> iceweasel &
>> >> pidgin &
>> >> uxterm -e 'tmux new mutt' &
>> >> exec /usr/bin/x-window-manager
>> >>
>> >> And using the following xmonad configuration:
>> >>
>> >> myManageHook = composeAll [
>> >>         className =? "Gimp" --> doFloat,
>> >>         className =? "Iceweasel" --> doF (W.shift "1"),
>> >>         (className =? "Iceweasel" <&&> resource =? "Dialog") --> doFloat,
>> >>         className =? "Pidgin" <&&> title =? "Buddy List" --> doShift "2"
>> >>         ]
>> >>
>> >> main = xmonad $ ewmh defaultConfig {
>> >>         borderWidth = 1,
>> >>         manageHook = myManageHook <+> manageHook defaultConfig,
>> >>         modMask = mod4Mask,
>> >>         terminal = "/usr/bin/x-terminal-emulator -e tmux"
>> >>         }
>> >>
>> >> This gives me the following behavior:
>> >>
>> >> xterm on workspace 1 right
>> >> iceweasel on workspace 1 left
>> >> pidgin on workspace 2
>> >>
>> >> active desktop is 2.  Two questions (a) Is there a way to swap xterm and
>> >> iceweasel for the initial session?  (b) And how do I tell xmoand that
>> >> workspace
>> >> 1 should be active?  I am happy to dig more into the docs.
>> >
>> > Honestly I am not sure there is a good way to do this.  One problem is
>> > that the manage hooks are not guaranteed to run in any particular
>> > order; another problem is there's no good way that I know of to run
>> > some action *after* all the manage hooks have run.  You can define a
>> > startupHook in your configuration to be run when xmonad starts, but
>> > that runs *before* the manage hooks so it won't help you.  The only
>> > way I can think to do it would be to make a keybinding which will
>> > arrange the windows for you and take you to to workspace 1, which
>> > should be possible with a little StackSet munging.
>> >
>> > -Brent
>> >
>> > _______________________________________________
>> > 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