How to: drive common cathode led with Arduino?

I'll have to use such setup, but are there anything smarter?

Yes you do unless you want to use a top switch IC, which is a lot more expensive.

how do I figure out the resistors R2 and R3?

They are super non critical and almost anything will do. R3 keeps the transistor off so it is just a pull up resistor, 10K will do. R2 limits the base current of Q1 so limit it to the gain times the load, in fact limit it to three times at least to be on the safe side. However 1K will do fine.