If you play on a laptop, then you need special controls.
If you play on a mac, then you need special controls.
If you play on a mac laptop, then you need even specialer controls.
If you play a lot on a mac laptop, and you have special controls set for it, you wind up forgetting how to play with the default controls.
My key-binds follow.
// Torque Input Map File
moveMap.delete();
new ActionMap(moveMap);
moveMap.bindCmd(keyboard, "escape", "", "escapeMenu.toggle();");
moveMap.bind(keyboard, "w", moveForward);
moveMap.bind(keyboard, "s", movebackward);
moveMap.bind(keyboard, "a", moveleft);
moveMap.bind(keyboard, "d", moveright);
moveMap.bind(keyboard, "space", Jump);
moveMap.bind(keyboard, "lshift", Crouch);
moveMap.bind(keyboard, "c", Walk);
moveMap.bind(keyboard, "z", toggleFreeLook);
moveMap.bind(keyboard, "tab", toggleFirstPerson);
moveMap.bind(keyboard, "t", GlobalChat);
moveMap.bind(keyboard, "y", TeamChat);
moveMap.bind(keyboard, "pageup", PageUpNewChatHud);
moveMap.bind(keyboard, "pagedown", PageDownNewChatHud);
moveMap.bind(keyboard, "m", ToggleCursor);
moveMap.bind(keyboard, "1", useBricks);
moveMap.bind(keyboard, "q", useTools);
moveMap.bind(keyboard, "e", useSprayCan);
moveMap.bind(keyboard, "2", useSecondSlot);
moveMap.bind(keyboard, "3", useThirdSlot);
moveMap.bind(keyboard, "4", useFourthSlot);
moveMap.bind(keyboard, "5", useFifthSlot);
moveMap.bind(keyboard, "6", useSixthSlot);
moveMap.bind(keyboard, "7", useSeventhSlot);
moveMap.bind(keyboard, "8", useEighthSlot);
moveMap.bind(keyboard, "9", useNinthSlot);
moveMap.bind(keyboard, "0", useTenthSlot);
moveMap.bind(keyboard, "cmd z", undoBrick);
moveMap.bind(keyboard, "cmd a", openAdminWindow);
moveMap.bind(keyboard, "cmd o", openOptionsWindow);
moveMap.bind(keyboard, "cmd p", superShiftBrickUpProxy);
moveMap.bind(keyboard, "cmd k", superShiftBrickTowardsProxy);
moveMap.bind(keyboard, "f2", showPlayerList);
moveMap.bind(keyboard, "ctrl n", toggleNetGraph);
-snip for privacy-
moveMap.bind(keyboard, "f5", ToggleShapeNameHud);
moveMap.bind(keyboard, "cmd period", NextSeat);
moveMap.bind(keyboard, "cmd comma", PrevSeat);
moveMap.bind(keyboard, "i", shiftBrickAway);
moveMap.bind(keyboard, "k", shiftBrickTowards);
moveMap.bind(keyboard, "j", shiftBrickLeft);
moveMap.bind(keyboard, "l", shiftBrickRight);
moveMap.bind(keyboard, "p", shiftBrickUp);
moveMap.bind(keyboard, "period", shiftBrickThirdUp);
moveMap.bind(keyboard, "comma", shiftBrickThirdDown);
moveMap.bind(keyboard, "o", RotateBrickCW);
moveMap.bind(keyboard, "u", RotateBrickCCW);
moveMap.bind(keyboard, "return", plantBrick);
moveMap.bind(keyboard, "lbracket", useLight);
moveMap.bind(keyboard, "cmd i", superShiftBrickAwayProxy);
moveMap.bind(keyboard, "cmd j", superShiftBrickLeftProxy);
moveMap.bind(keyboard, "cmd l", superShiftBrickRightProxy);
moveMap.bind(keyboard, "up", invUp);
moveMap.bind(keyboard, "down", invDown);
moveMap.bind(keyboard, "left", invLeft);
moveMap.bind(keyboard, "right", invRight);
moveMap.bind(keyboard, "equals", dropCameraAtPlayer);
moveMap.bind(keyboard, "minus", dropPlayerAtCamera);
moveMap.bind(keyboard, "ctrl k", Self Delete);
moveMap.bind(keyboard, "n", dropTool);
moveMap.bind(keyboard, "ctrl b", cancelBrick);
moveMap.bind(keyboard, "cmd m", ToggleBuildMacroRecording);
moveMap.bind(keyboard, "cmd b", PlayBackBuildMacro);
moveMap.bind(keyboard, "cmd semicolon", superShiftBrickDownProxy);
moveMap.bind(keyboard, "semicolon", shiftBrickDown);
moveMap.bind(keyboard, "cmd d", doScreenShot);
moveMap.bind(keyboard, "cmd s", doHudScreenshot);
moveMap.bind(keyboard, "cmd n", toggleMacroWindow);
moveMap.bind(keyboard, "cmd e", toggleAutoEvents);
moveMap.bind(keyboard, "cmd c", toggleAutoWrench);
-multiple snips for privacy-
moveMap.bind(keyboard, "ctrl i", RTBIC_toggleIRC);
moveMap.bind(keyboard, "ropt", toggleSuperShift);
-multiple snips for privacy-
moveMap.bind(keyboard, "opt a", turnLeft);
moveMap.bind(keyboard, "opt d", turnRight);
moveMap.bind(keyboard, "slash", TestGui);
moveMap.bind(keyboard, "opt m", ingameRtb);
moveMap.bind(keyboard, "r", Jet);
-snip for privacy-
moveMap.bind(keyboard, "f", toggleZoom);
-snip for privacy-
moveMap.bind(keyboard, "opt f", doDofScreenShot);
moveMap.bind(keyboard, "cmd apostrophe", TW_Open);
moveMap.bind(keyboard, "opt s", panDown);
moveMap.bind(keyboard, "opt w", panUp);
moveMap.bind(mouse0, "xaxis", yaw);
moveMap.bind(mouse0, "yaxis", pitch);
moveMap.bind(mouse0, "button0", mouseFire);