Currently I am using a mouse button with the mount portion of this macro, but I would like to add more functionality to that button while in combat.

While in combat, ideally, it should cast Aspect of the Fox with no modifier, then switch back to Aspect of the Hawk. With a modifier held it should switch to Aspect of the Cheetah, then back to Aspect of the Hawk.

As it is written now, it works great unless I use the mod to switch to pack first, then it cycles through fox before returning to hawk. Using a different modifier for each would easily solve all problems, though alt is the only modifier I can reach with an inactive finger while mobile (curled beneath my palm), so multiple modifiers isn't an option.

Using a different modifier for each would easily solve all problems, though alt is the only modifier I can reach with an inactive finger while mobile (curled beneath my palm), so multiple modifiers isn't an option.

While in combat, ideally, it should cast Aspect of the Fox with no modifier, then switch back to Aspect of the Hawk. With a modifier held it should switch to Aspect of the Cheetah, then back to Aspect of the Hawk.

Macros (or addons) cannot detect which aspect (or any other buff) is currently active and change their spellcasting behavior accordingly. The only thing an addon could do is give you additional space for macro commands, but based on your description, this is about the best you're going to get (and already fits in the Blizzard-allotted macro space):

Not reliably, no. When using my ring finger (strafing left) on that hand to strafe or turn, I basically lose all control of my pinky if I try to reach that low on the keyboard with it. When I'm not in "mobile mode" this isn't a problem.

Originally Posted by Phanx

Macros (or addons) cannot detect which ...

Thank you, I'll give yours a try in combat and see which works better for me. I just wasn't sure if there was something I was missing, a trick, or an addon to get it to work as I had hoped (castsequence ([mod]x OR y) THEN z. but if casting x, y will always come before z).