How do I figure out what the keys are called?
Check out the manpage of xdotool using man xdotool or an online version, as it lists a number of the special keys. For instance, "alt+r", "Control_L+J", "ctrl+alt+n", "BackSpace". The LinuxQuestions wiki also has a list of X Keysyms one could use. To make things a bit easier, xdotool also has aliases for some of these, such that pressing Shift-Alt-Tab would for instance just be shift+alt+Tab. To verify that this does indeed click that key combination, you could send the input to xev, which is a program that will print whatever key or mouse events it gets to the console. Just do sleep 2; xdotool keydown ${KEY} and switch to the xev window before two seconds has passed to see the keys being clicked on that window. It should then output a series of events, such as these:
PropertyNotify event, serial 168, synthetic NO, window 0x1e00001, atom 0x13e (_GTK_EDGE_CONSTRAINTS), time 4390512, state PropertyNewValue MappingNotify event, serial 168, synthetic NO, window 0x0, request MappingKeyboard, first_keycode 8, count 248 KeyPress event, serial 168, synthetic NO, window 0x1e00001, root 0x163, subw 0x0, time 4390719, (882,657), root:(1000,771), state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 169, synthetic NO, window 0x1e00001, root 0x163, subw 0x0, time 4390738, (882,657), root:(1000,771), state 0x8, keycode 23 (keysym 0xff09, Tab), same_screen YES, XLookupString gives 1 bytes: (09) " " XmbLookupString gives 1 bytes: (09) " " XFilterEvent returns: False