I use this macro:
/script CastSpellByName('Shadowform');
/script if (CURRENT_ACTIONBAR_PAGE == 1) then CURRENT_ACTIONBAR_PAGE = 2; else CURRENT_ACTIONBAR_PAGE = 1; end; ChangeActionBarPage();
How it works:
- default action bar page - non-SF mode abilities
- 2nd action bar page - SF mode abilities
- press button with macro - put SF on, swap bars; press again - drop SF, swap bars
It's not completely foolproof. For example, if you put shadowform up and then die, the action bar won't go back to default (non-SF) mode but you'll lose SF, so your SF and action bar will be out of sync. You'll need some extra keybind for swapping bars manually without touching SF if that happens (I use shift + mousewheel). Even so this is ten times more convenient than no automation whatsoever
There MIGHT be a way to somehow tie the action bar page to whether the SF buff is up or not, but I'm not aware of it