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.