From my ooooooooooooold post at the AoD forums.
I'm sure it way over-explains it.
As a side-note, if you're using Windows, typing
\win_allowalttab 1 will let you alt-tab in and out (usually).
Feel free to ignore everything after the first paragraph (except the whole "Read the manual!" thing) and then look at my lame config file.
The Tremulous Manual has the item/classnames and commands to make binds near the bottom. You can make these either by using the console in-game to type "\bind [key] [command]" or by manually editing your current autogen.cfg which is either in Trem's "base" sub-folder (F:\Program Files\Tremulous\base) or "C:\Documents and Settings\SA\Local Settings\Application Data\Tremulous\base\".
In case you can't find certain commands, here's my own .cfg with all the system/server config garbage cut out, below.
As a side-note, try to make your binds "logical". For example, my buy key for the pulse rifle is "P", and since "P" is then taken, I have "I" for buying the saw, because of the weapon's nature. I also have my grenade-tossing key right next to my movements keys so that if need be, I can quickly turn around a corner, toss, and duck back again or for a similar situation as with the window room in that other map with the crappy human base, where you havta quickly open the door and toss a frag inside.
//No, the OTHER one with a crappy human base.
//No, not THAT one, the OTHER one!
bind TAB "+scores"
bind ENTER "+speed"
bind ESCAPE "togglemenu"
bind SPACE "+moveup"
bind + "sizeup"
bind - "sizedown"
bind 0 "name ^1E^7rwin^1R^7ommel^1(NaziZ+)"
bind 1 "name ^3H^3a^3p^3p^3y^7.^3c^3a^3t"
bind 2 "name ^2|^7A^3o^7D^2|^7Yaoi^2|^1?"
bind 3 "name ^1|^7A^3o^7D^1+|^2Bunny^6Slayer"
bind 4 "name ^1|^7A^1o^7D^1|^7Ozzy^1|^7^7"
bind 5 "name ^2|^7A^3o^7D^2|^7Steely_Ann^1?"
bind 6 "name ^2|^7A^3o^7D^2|^7Happy.cat^2|^1?"
bind 7 "name ^2|^7A^3o^7D^2|^7Vixen^2|^1?"
bind 8 "name ^2|^7A^3o^7D^2|^7Valkyrie^2|^1?"
bind 9 "name ^2|^7A^3o^7D^2|^7Steely_Ann^2|^1?"
// Set your least important buttons farther away from your hands' comfort zone, while having important functions (your sprint button, for instance) where they're easiest to reach. For example, the above binds for my name changes are on the number keys and well away from my comfort zone near the arrow keys.
bind = "sizeup"
bind [ "weapprev"
bind \ "+mlook"
bind ] "weapnext"
bind _ "sizedown"
bind ` "toggleconsole"
bind a "buy helmet; buy larmour"
bind b "buy battpack"
bind c "buy ckit"
bind d "deconstruct"
bind e "buy rifle"
// "E" for "Emergency weapon." :P
bind f "buy chaingun"
bind g "buy gren"
bind h "scoresUp"
bind i "buy psaw"
bind j "buy jetpack"
bind k "buy lgun"
// "K" for "Kills 'em dead."
bind l "buy lcannon"
bind m "buy mdriver"
bind n "+scoresDown"
bind p "buy prifle"
bind q "sell upgrades"
bind r "messagemode"
// Global chat. "R" for "Ruckus."
bind s "buy shotgun"
bind t "messagemode2"
// Team chat. "T" for "Obvious."
bind u "buy flamer"
// "U" for the way it kind of fans out.
bind v "buy ackit"
// "V" for "Very kindly don't kill me while I'm using this, aliens! Please?"
bind w "sell weapons"
bind x "buy bsuit"
// "X" for "X-tra large human armor."
bind y "say ^1L^2o^3l^4l^5e^6r^7g^1r^2a^3n^4g^5e^6r^7!^9!
bind ~ "toggleconsole"
bind BACKSPACE "cg_draw2d 0;wait;wait;screenshotJPEG;cg_draw2d 1"
//The above hides my HUD, waits for two frames (if I'm correct), takes a screenshot, then puts my HUD back up.
bind PAUSE "pause"
bind UPARROW "+forward"
bind DOWNARROW "+back"
bind LEFTARROW "+moveleft"
bind RIGHTARROW "+moveright"
// Arrows for life!
bind ALT "+button7"
//Thanks to my hotkeys for human, I find I no longer use the "use" key as much. My old use key (ENTER) is now my walking key for when I'm trying to sneak into position with a tyrant or somesuch.
bind CTRL "+movedown"
bind SHIFT "+moveup"
bind INS "itemact medkit"
bind DEL "buy ammo"
bind PGDN "boost"
bind PGUP "itemtoggle jetpack"
bind HOME "+zoom"
bind END "reload"
// Doing a reload on my middle mouse button feels odd.
bind F1 "vote yes"
bind F2 "vote no"
bind F3 "team humans"
bind F4 "team aliens"
bind F5 "team spectate"
bind F11 "screenshotJPEG"
// I keep my old screenshot key in the case that I want to screenshot a scoreboard. Otherwise, my other screenshot bind (BACKSPACE) erases the board before "shooting".
bind KP_HOME "say_team ^1[^7G R E N A D E !^1]"
bind KP_UPARROW "say_team ^1[^7Base is all clear!^1]"
bind KP_PGUP "say ^6M^7ew!"
bind KP_LEFTARROW "itemact gren;say_team ^4[^7Tossing frag!^4]"
// Throws a grenade and informs my team-mates that I'm doing so.
bind KP_RIGHTARROW "say ^6M^7ew?"
bind KP_END "itemact blaster"
bind KP_DOWNARROW "+button2"
// What I've taken to doing is keeping my current primary weapon highlighted (i.e. not blaster) so that I can very easily switch back to it using 2/downarrow on the numpad; my middle mouse button feels awkward so I only use it for goon sniping.
bind KP_PGDN "say_team ^1[^7Enemy spawn-points are down!^1]"
bind KP_ENTER "say_team ^1[^7Enemy reactor^2/^7overmind is down!^1]"
bind KP_INS "+button3"
bind KP_DEL "say_team ^1[^7Base is under attack!^1]"
bind KP_MINUS "say_team ^4[^7Roger that^4/^7Affirmative.^4]"
bind KP_PLUS "say_team ^4[^7I'm on your tail.^4]"
// Important messages are bound in red brackets ("Grenade!"), while less imperative messages (Roger!) are in blue brackets.
bind MOUSE1 "+attack"
bind MOUSE2 "+button5;+zoom"
//Alternative Attack and Zoom are on the same button.
bind MOUSE3 "+button2"
bind MWHEELDOWN "weapnext"
bind MWHEELUP "weapprev"