Vi(m) Reference Card
I use the Vi Reference Card all the time but I seem to have lost my copy and since my printer is broke I decided to make an html version of it:
Portage Management and the propensity to being lazay – plus updates
Got an oppurtunity to build Gentoo again on my server and this led to me building a new portage management script. Since I was at it I decided to update my Gentoo Quick Install and Clamshell iBook guides. The portage management script can be found on the Gentoo Linux Tidbits page.
Enjoy!
Backup Configurations with tar Helpers
When I have to do a reinstall, sometimes I have to install from scratch – doing a clean install is just sometimes necessary. My configurations are priceless to me and after my reinstall I restore them from a backup copy. Here’s how I quickly add my configurations to an include file and back them up on a regular basis with a couple of tar helpers.
Basic tar Command
A good number of GUI programs can do this (you can read about the ones I’ve looked at here), but they seem to make the process more complicated, so I went back to tar and created a couple helper scripts. For those new to tar, the basic archive command is:
tar -cvpzf <archive-name>.tar.gz /folder/file /aplain/folder
Include/Exclude Files
If you put the archive command in a bash script, you can use it later. Files and folders can be added to the command, but consider using include and exclude files:
#!/bin/bash tar --exclude-from=/<location-of>/exclude.txt -cvpzf \ --file-from=<location-of>/include.txt <backup-name>.tgz
Include/exclude files contain the path on a line of what or what-not to backup. The include file should include the full path and cannot use regexps but the exclude fine can:
# Trashes not necessary /home/*/.local/share/Trash/files /home/*/.Trash
Add Paths to Include/Exclude Quickly
To add paths to the include/exclude files, readlink can be used. Here are a couple bash scripts to add to your include/exclude files.
For includes:
#!/bin/bash
# bca (backup-cfg-add) - add file/folders to the backup-cfg include file
incfile=/home/todd/.bin/root/backup/include.txt
# Program name from it's filename
prog=${0##*/}
# Text color variables
bldblu='\e[1;34m' # blue
bldred='\e[1;31m' # red
txtund=$(tput sgr 0 1) # underline
txtrst='\e[0m' # text reset
pass=${bldblu}*${txtrst}
warn=${bldred}!${txtrst}
# Add file/folder/link to list
if [[ -z "$@" ]]; then
echo " $prog <file/folder/link> - add files/folders/links to backup-cfgs' include file"
exit
fi
fullpath=$(readlink -f "$@")
# Test if link is valid
if [ ! -e "$fullpath" ]; then
echo -e "$warn File "$@" doesn't exist."
exit
fi
# Add entry
echo "$fullpath" >> "$incfile"
echo -e "$pass Added ${txtund}$fullpath${txtrst} in backup include file"
# Sort entries
sort -u "$incfile" -o "$incfile"
Then to add a file, folder, or link:
bca /etc/fstab # or cd /etc bca fstab
For excludes:
#!/bin/bash
# bce (backup-config-exclude) - add files to be excluded in backup
excfile=/home/todd/.bin/root/backup/exclude.txt
# Program name from it's filename
prog=${0##*/}
# Text color variables
txtbld=$(tput bold) # bold
txtund=$(tput sgr 0 1) # underline
bldblu='\e[1;34m' # blue
bldred='\e[1;31m' # red
bldwht='\e[1;37m' # white
txtrst='\e[0m' # text reset
info=${bldwht}*${txtrst}
pass=${bldblu}*${txtrst}
warn=${bldred}!${txtrst}
# Add file/folder/link to list
if [[ -z "$@" ]]; then
echo " $prog '<path/*/files...>' - add exclusions to backup configuration"
exit
fi
echo -e "$info bce doesn't check valid paths because the exclude file can contain regexps."
echo -e "$warn Be sure the path is correct! (e.g '/mnt/win/*')"
echo -en "${txtbld}?${txtrst} Add this to the exclude file? (${txtbld}y${txtrst}/${txtbld}n${txtrst}): "
read question
if [[ $question == [Yy] ]]; then
echo "$@" >> $excfile
echo -e "$pass Added ${txtund}"$@"${txtrst} to the backup-cfg exclude file" else
exit
fi
Creating notes of backups can be done by:
#!/bin/bash # bcn (backup-cfg-notes) add notes to file in backup directory # Author: Gen2ly # Label computer, distro, type and date pc=$HOSTNAME distro=arch type=configs date=`date "+%F"`-`date "+%r"` # Where to backup target="/home/todd/.backup" notename="backup-notes.txt" # Append note echo "$date: "$@"" >> $target/$notename
emach ~/.backup: Added dhcp cacher config emach ~/.backup: bcn Added font config emach ~/.backup: cat backup-notes.txt 2009-08-14-02:52:23 PM: Added dhcp cacher config 2009-08-14-02:52:33 PM: Added font config
The Backup Script
This is the backup script I use to backup my configs, names the backup by hostname and date, and removes old backups:
#!/bin/bash
# backup-cfg - backup configurations with tar
# Backup name
machine=$HOSTNAME
distro=arch
type=configs
date=`date "+%F"`
backupname=$machine-$distro-$type-$date
# Backup destination
backdest="/opt/backup/pc-emach"
# Files contailing information to include and exclude
bcdir="/home/todd/.bin/root/backup"
include_file="$bcdir"/bc-include.txt
exclude_file="$bcdir"/bc-exclude.txt
# Verify that the target directory exists.
if [ ! -d $backdest ]; then
echo " Backup directory does not exist, creating;"
mkdir $backdest; else
echo " Backup directory exists."
fi
# Delete backups older than a month
if [[ -n "$(find "$backdest" -mtime +30)" ]]; then
find "$backdest" -mtime +30 -exec rm {} \;
echo -e " Backups older than two months deleted"
fi
# Unmount other drives/partitions
#umount -a
# Backup
tar --exclude-from=$exclude_file --files-from=$include_file -cvpzf \
$backdest/$backupname.tar.gz
Consider putting it in a cron job to get regular backups.
o/
A Beginners Setup to Quake Wars
If you are just getting into Quake Wars, has a Strogg just thrown a grenade in your area and then quickly pulled out his Lacerator jumping around the corner to finish you off, all before you could say, “What the…”? Welcome to Quake Wars. Quake Wars has been around for a couple years and has some very devote followers. I almost threw out Quake Wars, discarding it as too tough and moved on. I’ve played a good bit of Urban Terror and thought I could mesh skills pretty well in QW but I couldn’t. For one, QW is a completely different game that UT. It is highly team-based and class-independent game. Second, experts there have a highly configured setups that can make your twist-left-hand stretch-forefinger setup into minchmeat. This is a guide that will get your setup somewhat on par with the experts and put you on evener ground.
ETQW is highly configurable. It literally has thousands of settings that can be changed. Thankfully we will only have to change a number of them the get on par with other players. Be of warning though that changing some settings are considered cheats and the built-in cheat system (Punkbuster) may disallow some settings. I have built a configuration that will work on just about all servers. If there are values that are not allowed by Punkbuster, Punkbuster will let you know in the chat window.
Keyboard Layout
The most important thing you can do is to build a keyboard layout where most commonly used keys are close to the fingertips. Here’s the layout I use. Green keys are at the fingertips, blue require a bit of reach, yellow are just out of reach, and red are need be.
A couple notes. Sprint toggle is the always running toggle. Sprinting is useful most of the time but makes scoping opponents and moving impossible. All keys to right are automated responses that I frequently use. 9 and 0 will respawn you in either the original spawn or the foremost spawn.
User Configuration File
Configurations are put in the users autoexec.cfg file. There won’t be one originally so you will have to create it. The autoexec.cfg file in Linux goes in the user configuration folder: ~/.etqwcl/sdnet/<playername>/base. In Vista it goes in in the users Documents\Id Software\ETQW…\sdnet\base. This file gets loaded when the user logs in. To be able to test it though it needs to be in ETQW’s global location <ETQW-config-folder>/base. Create an autoexec.cfg in the user folder and redirect to the global one:
exec global.cfg
You can name it anything you want. Once you have your global config set up you can test it from a running QW by opening console (~) and running exec global.cfg. QW will let you know of any error exist in the configuration file.
Global Configuration File
I could explain all the details of the configuration file but rather I’ll just give it to you. It has all the explanations in it plus links you need to look up an details. A couple notes: A smooth, even frames per second is critical to QW. You’ll want 30fps or 60fps without any hitching. Good graphics and great light don’t mean a thing when you’re looking to make that great hit and find yourself fighting your hardware. The config is for a nvidia 9600 GSO which at 2009 this is a medium level graphic card that handles shaders and lighting poorly, the config will reflect that. I haven’t give away all my secrets, so, well here it is:
Enjoy!
// Contributor akau <dirk.r.gently@gmail.com> // http://www.planetquakewars.net/Guides/Config_Guide?locale=en_US // http://4newbies.planetwolfenstein.gamespy.com/ETQW/iffy_autoexec.php // http://wiki.battle.no/index.php/Quake_Wars_Cvar_list - cvar listings /// Hardware /// // FPS 30 or 60 decision - "showcom_fps 1" to draw fps // http://community.enemyterritory.com/forums/showthread.php?t=2042 seta com_unlockFPS 1 seta com_unlock_timingMethod 2 // Texture Quality (-2 to 2) // Texture and Visual Quality mirror those found in Settings > Advanced seta image_diffusePicMip "0" seta image_bumpPicMip "0" seta image_specularPicMip "-1" seta image_anisotropy "0" // (0 off, to 16 by 2^) // Visual Quality/Performance // Terrain Quality, Effects Level, Debris/Weather many settings seta r_megadrawmethod "3" // Lighting Quality (3 low, 0 high) seta com_lastFoliageLevel "0" // Foliage Quality (0 low, 2 high) seta seta com_lastGraphicsLevel "0" // Shader Effects (0 low, 2 high) seta com_lastGraphicsDetailLevel "0" // Effects Level (0 low, 2 high) seta com_gpuSpec "0" // Shader Level (0 low, 3 ultra) seta r_multiSamples "0" // Anti-Aliasing (0,2,4,8,16,32) seta image_filter "GL_LINEAR_MIPMAP_NEAREST" // bilinear antialiasing (faster) seta r_swapinterval "0" // Vsync (0 off, 1 on) seta r_shadows "0" // Shadows (0 off, 1 on) seta r_softParticles "0" // Better explosions/smoke (0 off, 1 on) seta r_useAlphaToCoverage "0" // Smooth foliage (0 off, 1 on) // Good FPS boosts // r_megaDrawMethod, r_shadows, r_softParticles, com_gpuSpec above seta com_machineSpec "1" // Processor (0 low, 2 high) seta g_decals "1" // Bullet marks (0 off, 1 on) seta g_showPlayerShadow "0" // Player shadows (0 off, 1 on) seta r_skipMegaTexture "1" // Skip mega textures (1 off, 0 on) seta r_skipStuff "0" // grass and foliage (0 off, 1 on) // Additional FPS boosts seta r_skipBump "0" // Skips rendering bumpmaps on textures seta r_skipSpecular "1" // seta r_shaderQuality "2" // Shader quality (0 high 2 low) seta r_detailTexture "0" // Detail level textures seta r_detailFade "0" // Detail level fades seta r_useThreadedRenderer "2" // For multiple cpus seta com_videoRam "768" // usually ETQW can detect video memory // Resolution // r_mode list: // http://community.enemyterritory.com/forums/showpost.php?p=349547&postcount=4 seta r_mode "10" // -1 for custom seta r_aspectRatio "2" // 0=4:3, 1=16:9, 2=16:10, 3=5:4 TFT, -1 custom seta r_fullscreen "1" //seta r_customAspectRatioV "10" //seta r_customAspectRatioH "16" //seta r_customHeight "900" //seta r_customWidth "1440" //seta cg_fov "90" // field of view, default depends on aspect // ratio. Note: wider fov increases view depth // seta image_lodbias "-1" // viewable distance (-1 high, 1 low) // seta r_visdistmult "1.2" // Gamma/Brightness seta r_brightness "1.18" seta r_gamma "1.05" // Sound seta s_driver "oss" // For linux OSS seta s_volume_dB "-10" seta s_volumeMusic_dB "-16" seta s_force22kH "0" // lowering audio quality helps FPS a bit // Network - http://ucguides.savagehelp.com/Quake3/connection.html //seta cl_maxpackets "100" // max packets 100 for PunkBuster bandwidth. //seta cl_packetdup "1" // If high PL - make 1. //seta snaps "40" // Leave this at 40, servers will adjust. //seta rate 25000 // DSL/Cable best at 25,000 servers will adjust. //seta cl_timenudge 0 // Leave at 0 for less lag and less trouble. //seta cg_lagometer "0" // Displays network lag // Mouse seta sensitivity "13.0" // sensitivity seta m_smooth "1" // smooth mouse movements seta m_pitch "0.022" // vertical sensitivity scale seta m_yaw "0.022" // horizontal sensitivity scale seta m_helicopterPitch "0.022" // mouse/joystick no inverted when flying // VOIP - team, global, fireteam (1 on, 0 off) seta ui_voipReceiveTeam "1" seta ui_voipReceiveGlobal "1" seta ui_voipReceiveFireTeam "1" /// General Settings /// seta g_skipIntro "1" // Seen intro, doesn't work in Linux seta com_allowconsole "1" // For Windows tilda key seta gui_showTooltips "0" // Enough of the tooltips seta g_tooltipTimeScale "0" seta net_clientPunkbusterEnabled "1" // Punkbuster is our friend // Limit rolling and bobbing motions (Warning few servers may not allow this) seta pm_crouchbob 0 seta pm_bobpitch 0 seta pm_bobup 0 seta pm_runroll 0 seta pm_runpitch 0 seta pm_runbob 0 seta pm_walkbob 0 seta in_toggleSprint "1" // I find the run toggle useful seta g_weaponSwitchTimeout "0" // Quick weapon switch seta ui_advancedFlightControls "1" // No auto-correcting of flight controls seta ui_drivingCameraFreelook "1" // Freelook on vehicles with no weapons seta ui_rememberCameraMode "1" // Remember vehicle camera mode /// HUD settings /// // http://community.enemyterritory.com/forums/showthread.php?t=14167 seta g_rotatecommandmap "0" // No rotating command map seta gui_showRespawnText "0" // Unneeded respawn text (1 on, 0 off) // Chat colors seta g_chatDefaultColor 1 1 0 .60 // Global chat color (RGBa color) Y g_chatTeamColor .8 .8 .8 .7 // Team chat color Gray g_chatFireTeamColor 1 .6 .6 .7 // Fireteam chat color seta gui_chatAlpha "0.7" // seta g_chatLineTimeout "12" // Chat timeout (default 5 seconds) //seta g_chatDefaultColor .6 .8 1 .7 // global chat color (RGBa color) B //g_chatTeamColor 1 1 .6 .7 // team chat color Purple? //g_chatTeamColor .94 .96 .50 .7 // team chat color //g_chatFireTeamColor .72 .44 .44 .7 // fireteam chat color // Less distracting waypoints, player info, mines, objectives, crosshair, // vehicles, fraglist, commandmap, fireteam list seta g_waypointAlphaScale "0.5" seta g_waypointDistanceMax "3084" seta g_waypointDistanceMin "16" seta g_waypointSizeMax "15" seta g_waypointSizeMin "10" seta g_playerIconAlphaScale ".5" seta g_playerIconSize "8" seta g_playerArrowIconSize "5" seta g_drawVehicleIcons "0" // Disable the vehicle icons seta g_friendlyColor ".8 .8 .8 .5" seta g_enemyColor ".55 .20 .16 0.5" // Gray red seta g_neutralColor "0.45 .45 .45 .5" //seta g_friendlyColor ".14 .88 .32 .5" //seta g_enemyColor "1 .2 .21 0.5" // Brighter-red seta g_drawMineIcons "0" seta g_mineTriggerWarning "0" seta gui_objectiveListAlpha "0.4" seta gui_objectiveStatusAlpha "0.4" seta gui_crosshairColor "1 1 1 .70" seta gui_crosshairSpreadScale "0" seta gui_crosshairGrenadeAlpha "0.286585" seta gui_crosshairStatsAlpha "0" seta gui_crosshairSpreadAlpha "0" seta gui_crosshairAlpha "0.7" seta gui_crosshairKey "pin_14" seta gui_crosshairDef "crosshairs" //seta gui_crosshairColor "0 1 0 .70" // Green seta g_showVehicleCockpits "0" seta gui_vehicleDirectionAlpha "0.5" seta gui_vehicleAlpha "0.8" seta gui_obitAlpha "0" // remove leftside kill message seta gui_commandMapAlpha ".8" seta gui_fireTeamAlpha "0.8" seta gui_personalBestsAlpha ".4" // Disabled because of bug? seta gui_showRespawnText "0" /// Player /// seta ui_name "akau" seta ui_clanTag "" seta ui_clanTagPosition "1" /// Keybindings /// // Dont' unbind all unless you plan to bind every key. ETQW will just replace // otherwise. //unbindall // Xbox Controller Settings exec xboxgamepad.cfg // Actions // // Movement bind "e" "_forward" "" "default" bind "s" "_moveleft" "" "default" bind "d" "_back" "" "default" bind "f" "_moveright""" "default" // Lean - lean with shift key and s and f bind "s" "_leanleft" "shift" "default" bind "f" "_leanright" "shift" "default" // Crouch/Prone/Sprint/Walk bind "shift" "_movedown" "" "default" bind "v" "_prone" "" "default" bind "r" "_sprint" "" "default" bind "CTRL" "_speed" "" "default" // Toggle sprint key behavior. // On: move forward always sprints, Off: hold sprint key to sprint bind "F4" "toggle in_toggleSprint" // Weapons - melee, second, primary, grenades, gadgets (packs, cameras, // explosives, airstrike), designators, tools (construct, revive, hack), deploy bind "q" "_weapon0" "" "default" bind "a" "_weapon1" "" "default" bind "w" "_weapon2" "" "default" bind "c" "_weapon3" "" "default" bind "z" "_weapon5" "" "default" bind "4" "_weapon6" "" "default" bind "x" "useweapon weapon_tool1" "" "default" bind "3" "useweapon weapon_tool2" "" "default" // Reload bind "t" "_reload" "" "default" // Use bind "g" "_activate" "" "default" // Vehicle bind "capslock" "_usevehicle" "" "default" // enter vehicle bind w "_leanleft" "" "vehicle" // strafe in Desecrator bind r "_leanright" "" "vehicle" bind "shift" "_sprint" "" "vehicle" // use shift as vehicle boost bind "1" "_weapon0" "" "default" // decoys with right mouse click bind "MOUSE2" "_weapon0" "" "vehicle" // Fireteam Menu bind "o" "_fireteam" "" "default" // Type Chat - team, global, fireteam bind "y" "clientMessageMode 1" "" "default" bind "u" "clientMessageMode" "" "default" bind "i" "clientMessageMode 2" "" "default" // Automated Chat bind "MOUSE3" "_context" "" "default" bind "MOUSE3" "_quickchat" "shift" "default" // VOIP - team, global, fireteam bind "5" "_teamVoice" "" "default" bind "6" "_Voice" "" "default" bind "7" "_fireteamvoice" "" "default" // Respawn bind "h" "kill" // Sane screenshot button bind printscreen screenshot // Spawn at default spawn and forward-most spawn bind "9" "setSpawnpoint base" bind "0" "setSpawnpoint default" // Load configuration bind "F9" "exec akau.cfg" // GreasedScotsman's insta-class changes and announce // GDF use CTRL + (1234-qw-asd-5-zx) - (ALT Strogg) // soldier bind "1" "clientTeam GDF; clientClass Soldier 0;wait;kill;sayTeam '^7'Respawning as a'^m'Soldier'^7'with an '^d'Assault Rifle'^7'" "CTRL" "default" bind "2" "clientTeam GDF; clientClass Soldier 1;wait;kill;sayTeam '^7'Respawning as a'^m'Soldier'^7'with a '^d'Rocket Launcher'^7'" "CTRL" "default" bind "3" "clientTeam GDF; clientClass Soldier 2;wait;kill;sayTeam '^7'Respawning as a'^m'Soldier'^7'with a '^d'GPMG'^7'" "CTRL" "default" bind "4" "clientTeam GDF; clientClass Soldier 3;wait;kill;sayTeam '^7'Respawning as a'^m'Soldier'^7'with a '^d'Shotgun'^7'" "CTRL" "default" // medic bind "q" "clientTeam GDF; clientClass Medic 0;wait;kill;sayTeam '^7'Respawning as a'^m'Medic'^7'with an '^d'Assault Rifle'^7'" "CTRL" "default" bind "w" "clientTeam GDF; clientClass Medic 1;wait;kill;sayTeam '^7'Respawning as a'^m'Medic'^7'with a '^d'Shotgun'^7'" "CTRL" "default" // engineer bind "a" "clientTeam GDF; clientClass Engineer 0;wait;kill;sayTeam '^7'Respawning as an'^m'Engineer'^7'with an '^d'Assault Rifle'^7" "CTRL" "default" bind "s" "clientTeam GDF; clientClass Engineer 1;wait;kill;sayTeam '^7'Respawning as an'^m'Engineer'^7'with a '^d'Shotgun'^7" "CTRL" "default" bind "d" "clientTeam GDF; clientClass Engineer 2;wait;kill;sayTeam '^7'Respawning as an'^m'Engineer'^7'with an '^d'Assault Rifle w/ Gren. Launcher'^7" "CTRL" "default" // field-ops bind "5" "clientTeam GDF; clientClass FieldOps 0;wait;kill;sayTeam '^7'Respawning as a '^m'Field Ops'^7'with an '^d'Assault Rifle'^7" "CTRL" "default" // covert-ops bind "z" "clientTeam GDF; clientClass CovertOps 0;wait;kill;sayTeam '^7'Respawning as a'^m'Covert Ops'^7'with a '^d'Scoped Assault Rifle'^7" "CTRL" "default" bind "x" "clientTeam GDF; clientClass CovertOps 1;wait;kill;sayTeam '^7'Respawning as a'^m'Covert Ops'^7'with a '^d'Sniper Rifle'^7" "CTRL" "default" // aggressor bind "1" "clientTeam Strogg; clientClass Aggressor 0;wait;kill;sayTeam '^7'Respawning as an'^m'Aggressor'^7'with a '^d'Lacerator'^7" "ALT" "default" bind "2" "clientTeam Strogg; clientClass Aggressor 1;wait;kill;sayTeam '^7'Respawning as an'^m'Aggressor'^7'with an '^d'Obliterator'^7" "ALT" "default" bind "3" "clientTeam Strogg; clientClass Aggressor 2;wait;kill;sayTeam '^7'Respawning as an'^m'Aggressor'^7'with a '^d'Hyperblaster'^7" "ALT" "default" bind "4" "clientTeam Strogg; clientClass Aggressor 3;wait;kill;sayTeam '^7'Respawning as an'^m'Aggressor'^7'with a '^d'Nailgun'^7" "ALT" "default" // technician bind "q" "clientTeam Strogg; clientClass Technician 0;wait;kill;sayTeam '^7'Respawning as a'^m'Technician'^7'with a '^d'Lacerator'^7" "ALT" "default" bind "w" "clientTeam Strogg; clientClass Technician 1;wait;kill;sayTeam '^7'Respawning as a'^m'Technician'^7'with a '^d'Nailgun'^7" "ALT" "default" // constructor bind "a" "clientTeam Strogg; clientClass Constructor 0;wait;kill;sayTeam '^7'Respawning as a'^m'Constructor'^7'with a '^d'Lacerator'^7" "ALT" "default" bind "s" "clientTeam Strogg; clientClass Constructor 1;wait;kill;sayTeam '^7'Respawning as a'^m'Constructor'^7'with a '^d'Nailgun'^7" "ALT" "default" bind "d" "clientTeam Strogg; clientClass Constructor 2;wait;kill;sayTeam '^7'Respawning as a'^m'Constructor'^7'with a '^d'Lacerator w/ Plasma Launcher'^7" "ALT" "default" // oppressor bind "5" "clientTeam Strogg; clientClass Oppressor 0;wait;kill;sayTeam '^7'Respawning as an'^m'Oppressor'^7'with a '^d'Lacerator'^7." "ALT" "default" // infiltrator bind "z" "clientTeam Strogg; clientClass Infiltrator 0;wait;kill;sayTeam '^7'Respawning as an'^m'Infiltrator'^7'with an'^d'Accurized Lacerator'^7" "ALT" "default" bind "x" "clientTeam Strogg; clientClass Infiltrator 1;wait;kill;sayTeam '^7'Respawning as an'^m'Infiltrator'^7'with a'^d'Railgun'^7" "ALT" "default" // Automated responses quick-keyed // // http://4newbies.planetwolfenstein.gamespy.com/ETQW/vsay.php // Global Replies / End Games bind "HOME" "clientquickchat quickchat/global/yes" "" "default" bind "END" "clientquickchat quickchat/global/no" "" "default" bind "INS" "clientquickchat quickchat/global/taunts/owned" "" "default" bind "PGUP" "clientquickchat quickchat/global/taunts/meh" "" "defaults" //broke bind "DEL" "clientquickchat quickchat/global/cheers/goodgame" "" "default" bind "PGDN" "clientquickchat quickchat/global/cheers/wellplayed" "" "default" bind "UPARROW" "clientquickchat quickchat/global/hi" "" "defaults" //bind "DOWNARROW" "clientquickchat quickchat/global/sorry" "" "defaults" bind "LEFTARROW" "clientquickchat quickchat/global/sorry" "" "defaults" //bind "RIGHTARROW" // Team Replies //bind "KP_NUMLOCK" bind "KP_SLASH" "clientquickchat quickchat/responses/onit" "" "default" bind "KP_STAR" "clientquickchat quickchat/responses/sorry" "" "default" bind "KP_MINUS" "clientquickchat quickchat/responses/thanks" "" "default" bind "KP_HOME" "clientquickchat quickchat/need/team/medic" "" "default" bind "KP_UPARROW" "clientquickchat quickchat/need/engineer" "" "default" bind "KP_PGUP" "clientquickchat quickchat/need/team/covertops" "" "default" bind "KP_LEFTARROW" "clientquickchat quickchat/need/team/radar" "" "default" bind "KP_5" "clientquickchat quickchat/need/team/apt" "" "default" bind "KP_RIGHTARROW" "clientquickchat quickchat/need/team/avt" "" "default" bind "KP_PLUS" "clientquickchat quickchat/need/medic" "" "default" bind "KP_END" "clientquickchat quickchat/enemy/indisguise" "" "default" bind "KP_DOWNARROW" "clientquickchat quickchat/enemy/deployables/aptspotted" "" "default" bind "KP_PGDN" "clientquickchat quickchat/enemy/deployables/avtspotted" "" "default" bind "KP_INS" "clientquickchat quickchat/commands/captureforwardspawn" "" "default" bind "KP_DEL" "clientquickchat quickchat/self/disguise/enemydisguisedasme" "" "default" // State Class // bind "KP_ENTER" "clientquickchat quickchat/self/imsoldier" "" "soldier" bind "KP_ENTER" "clientquickchat quickchat/self/immedic" "" "medic" bind "KP_ENTER" "clientquickchat quickchat/self/imengineer" "" "engineer" bind "KP_ENTER" "clientquickchat quickchat/self/imcovertops" "" "covertops" bind "KP_ENTER" "clientquickchat quickchat/self/imfieldops" "" "fieldops" bind "KP_ENTER" "clientquickchat quickchat/self/imaggressor" "" "aggressor" bind "KP_ENTER" "clientquickchat quickchat/self/imtechnician" "" "technician" bind "KP_ENTER" "clientquickchat quickchat/self/imconstructor" "" "constructor" bind "KP_ENTER" "clientquickchat quickchat/self/imoppressor" "" "oppressor" bind "KP_ENTER" "clientquickchat quickchat/self/iminfiltrator" "" "infiltrator"


