For number 1), can't any modern OS do it just with a configuration setting?
As Wes says, both are simple, but for the keyboard, you'd have to use a PS/2 keyboard. Doing real USB on Arduino would be extermely hard, I know one person has managed though.