Yes, I play Warcraft. I'm not proud to admit it, but there you go. My main toon is an Elemental Shaman named Koe, but recently I've been playing a Protection Warrior alt, Sizzink, more often. Of all my alts and toons, she has the most complicated setup as far as hotkeys and macros go, so I figured I'd write a blog post about it because, well... why not. It's always good to practice my writing...
Just a quick note before we get started: my Protection Warrior play-style is derived mainly from the info I've read about gear, talents, and skill rotations over at the Elitist Jerks forums.
The goal with all of my characters is to be able to control as many skills as possible with hotkeys instead of button clicking. After many years of playing different games and trying a wide variety of layouts, I ultimately always come back to a basic WASD movement setup as my starting point. EDIT: To clarify, I mean an FPS-style WASD setup, where A and D strafe left and right. That means I've changed my WoW key bindings for strafe to A and D, and use the default mouse with right-button for turning. So no, I'm not keyboard turning :)
From WASD, I've found that I can reliably hit the hotkeys 1 thru 6, Q, E, R, T, and F. For some reason I have a hard time hitting the lower row reliably (Z, X, C, V) so I tend not to use those for anything important, or at all. In addition, I can always hit the spacebar, alt, control, and shift, but when it comes to key combinations, the only ones I can comfortably do are alt-based ones (which I hit with my thumb), and even then I can't cover everything. 1 thru 5 and Q and E are the only hotkeys I can reliably combine with alt.
For Warcraft I've left T at the default of toggling autoattack and F at the default of assist target. This leaves me 1 thru 6, Q, E, R, alt-1 thru alt-5, alt-Q, and alt-E. Sixteen hotkeys total to fit in all the abilities needed by a Protection Warrior is a tall order, but here's how I did it.
This is my action bar "at rest". You can see that I've remapped the buttons to add Q, E, and R to buttons 10, 11, and 12. And I've reordered 1 thru 9, moving 7, 8, and 9 (hotkeys I never hit on the keyboard) to the far left. This is so that my most crucial hotkeyed skills are pushed as far to the center as possible, making them easier for me to see peripherally while staring at big monster butts in the middle of my screen.
You may notice that quite a few key skills seem to be missing entirely; for instance, where the heck are Charge, Rend, or Cleave? You might also wonder why important talents like Shockwave or Reflect are sitting up on the 2nd action bar waiting for mouse-clicks. This starts to make sense once you see what happens to the action bar when I'm holding down the alt key:
As you can see, most of the items on the 2nd action bar become available by hotkey when I'm holding alt. I've only placed them on the 2nd action bar so that I can watch their cooldowns, and also for those rare cases that my other hand is busy eating pizza while I drive solely with the mouse :)
Despite that cleverness, there are still too many things a Protection Warrior must do. For instance, even with alt held down, Charge is still missing (though you might have guessed where it's hiding from the macro name on button 1). In addition to this hotkey setup, I've had to employ several more complex macros to fit everything in. I'll go through the hotkeys and their macros so you can see how these all work out.
Button 1 is my "Zoom" macro. When nothing is selected, it simply uses Battle Shout. When an enemy is selected, the icon changes to Charge, and I can use it to Charge the enemy. If Charge is on cooldown, then it changes to Intercept. If a friendly target is selected instead, then it changes to Intervene. In all three of those cases, it will automatically pop Battle Shout too if it's off cooldown. In a long battle, even though the icon will show the Charge tooltip while I have an enemy selected, I can hit it to refresh my Battle Shout if the cooldown is up. Finally, if I'm holding alt, this just uses Victory Rush. The macro that does all this is:
#showtooltip /use [mod:alt] Victory Rush /stopmacro [mod:alt] /castsequence [harm] reset=15 Charge, Intercept /use [help] Intervene /console Sound_EnableSFX 0 /use Battle Shout /run UIErrorsFrame:Clear() /console Sound_EnableSFX 1
On the 2nd action bar above this hotkey I have Commanding Shout, which let's me see the combined shout cooldown and also let's me easily mouse-click to use Commanding instead of Battle Shout if it happens to be required.
Button 2 is my "Taunt" macro. This lets me taunt a mouseover target, the current hostile target, or the hostile target of the current friendly target. It also switches me to Defensive Stance first if I'm not there already. If I hold alt, then it lets me use my Challenging Shout instead. The macro for this is:
#showtooltip /use [mod:alt] Challenging Shout /stopmacro [mod:alt] /use [stance:1/3] Defensive Stance /use [@mouseover,harm,nodead] [harm,nodead] [@targettarget,harm,nodead]  Taunt
Above this, on the 2nd action bar, I have placed Challenging Shout so that I can watch its cooldown.
Button 3 is my "Slam" macro. Hitting this uses Shield Slam, but first it also pops my trinkets and Shield Block. The automatic use of Shield Block here may not be for everyone, but I simply don't remember to use Shield Block at all if I don't have it setup this way. In particular, it's possible you might have enough rage for Shield Block but not Shield Slam, and hitting this will cause you to miss a slam, which could be critical at the opening of a fight. For this reason, I have Shield Block on the 2nd action bar above, so I can watch its cooldown and know when I need the extra rage to hit it. The one downside to this macro is that the button will NOT light up when Sword 'n Board procs, unlike when you have Shield Slam on the action bar by itself. However, the screen graphics and sound effects for Sword 'n Board are quite obvious, so I don't need the button highlight. I also use this hotkey to apply Rend when holding down alt, which is typically only at the start of the fight since I (hopefully) keep it refreshed with Thunderclap.
#showtooltip [mod:alt] Rend; Shield Slam /use [mod:alt] Rend /stopmacro [mod:alt] /console Sound_EnableSFX 0 /use 13 /use 14 /use Shield Block /run UIErrorsFrame:Clear() /console Sound_EnableSFX 1 /use Shield Slam
Button 4 is my "Conc" macro. This is a simple macro that lets me use either Concussion Blow (no modifier) or Shockwave (holding alt). As with the others, I've placed Shockwave on the 2nd action bar above so I can watch its cooldown. Since that's a common theme, I'll stop mentioning it.
#showtooltip /use [mod:alt] Shockwave /use [nomod:alt] Concussion Blow
Button 5 is my "Bash" macro. This macro is a bit more complicated because it's designed to work across stances, but from a Defensive Stance tanking point of view, it just let's me use Shield Bash (no modifier) or Spell Reflection (holding alt). In general, I place my spell interrupt on button 5 for every single toon I play.
#showtooltip /use [mod:alt, stance:1/2] Spell Reflection /use [nomod:alt, stance:2] Shield Bash /use [nomod:alt, stance:1/3] Pummel
Button 6 just has Thunderclap. I can't reliably hit 6 while holding down alt, so I don't have anything more tricky going on there. Above this on the 2nd action bar I have Demoralizing Shout, which I have to click manually if I want it. Generally speaking this doesn't get used much anymore except when riding the very edge of my gear/abilities.
Button Q is my "Dev" macro. This macro let's me apply Devastate to mouseover targets, hostile targets of friendly targets, or my current hostile target. It's essentially the same target precedence as my taunt macro, and let's me drop Devastate/Sunders on more than my current mob when tanking several, without having to switch targets.
#showtooltip Devastate /use [@mouseover,harm,nodead] [harm,nodead] [@targettarget,harm,nodead]  Devastate
Button E is just the Revenge ability. I have a hard time noticing the Revenge procs (even when the floating combat text clearly shows it), so I need Revenge all by itself so that it gets the yellow button highlighting when it procs. Above this on the 2nd action bar I have my "RetWall" macro, which simply uses the "3 minute cooldown stance-dependent skill", which of course is Shield Wall in Defensive Stance.
#showtooltip /use [stance:3] Recklessness /use [stance:2] Shield Wall /use [stance:1] Retaliation
Button R is my "Rage" macro. This is basically my rage dump button, and is a simple macro that switches between Heroic Strike (no modifier) or Cleave (holding alt). Since Cleave and Heroic Strike share the same cooldown now, there's no need to see Cleave separately.
#showtooltip /use [mod:alt] Cleave /use [nomod:alt] Heroic Strike
As you can see in the screenshots back at the start of this post, I've thrown a few talents I never use, like Slam and Disarm, way off to the left. They're available if I ever need to click them, but they are not commonly used so it doesn't happen very often.
Likewise, my right hand 2nd action bar is primarily used only during the pull, and it's where I've put things like Heroic Throw, Heroic Leap, Goblin Rocket Jump, etc. I know some people weave Heroic Throw more intimately into their single-target tanking rotation, but I just couldn't come up with a comfortable way to do it.
I also have my Berserker Rage, Last Stand, and Enraged Regeneration buttons there. I tried different ways of macroing these but in the end I couldn't make it flexible enough to do what I wanted. So instead I just decided to leave them where I could easily click them. My "oh crap" reflexes are sufficient that I can hit all 3 in a row for a massive health regen pretty darn quickly, or use each individually as the situation warrants.
So there you have it; my almost keyboard-only Protection Warrior layout. I hope it's helpful to someone out there but, even if not, at least this way I'll be able to reproduce my setup the next time I have to wipe my computer or come back after not playing WoW for awhile.