Yeah; I probably did (relatively new to xmonad myself)..

My understanding of the OP's question is they want a set of layouts they can cycle through normally in the layoutHook (eg resizabletall, mosaic, spiral); then have a hot key that overrides this behaviour and jumps to another layout (eg full).

If this is the case one can define all of their layouts in the hook, then using onWorkspace (or onWorkspaces) from XMonad.Layout.PerWorkspace, indicate which layouts to use in the normal rotation whilst still having the hot key layouts defined [I also use avoidStruts here; hence my original confusion].

Otherwise I've missed the point entirely; hopefully your suggestions will solve the problem Brandon.

On 03/05/13 09:49, Brandon Allbery wrote:
Did you mean something else? avoidStruts has nothing whatsoever to do with what layouts are selectable.
On Thu, May 2, 2013 at 6:24 PM, Tim DuBois <tim@neophilus.net> wrote:
Would it not be better to list all your layouts in the layoutHook; then use avoidStruts to only allow a subset of those layouts to function on your workspaces? That way your shortcuts (i.e. the layouts not listed in avoidStruts) will still be accessible, just not 'visible' in general.