Best I've been able to figure out is to send all other troops elsewhere as reinforcements, so you can click attack, select all, send.
e.g. If you're Cav, send all but Cav away for the moment.
There's a sort of corresponding raping routine - send 1st march without Hero/Inq. and with all > L1 troops. e.g. Siege.
They take so long to get there, you can send one or more (1st with Hero/Inq.) right away, using Select All.
- 'problem' is, when immediately adjacent to victim, the marches come back so fast, you may not be able to get more than one march in motion, at a time.
-----
I don't expect you will find any gaming keyboard able to do what you ask. There is no set of keystrokes to effect what you're looking for, it's all mouse clicks and sliders.
- otherwise hyper-shielding would be even faster. As it stands now you can press 'b', then scroll down really fast, click for town defense, then scroll down, then Apply. A single keystroke for apply 8h shield would be beautiful. [It would also help if Plarium would let a keystroke scroll down to that point in the list, e.g. 't' for 'town defense'.)
If it were only keystrokes, there are various 'macro' utilities to do such.
Autoit and the like can help, but they may not be fast enough for this. e.g. Autoit could do clicks, including to # of troops to send, and you could assign a keystroke to that script.