Author Archives: Gen2ly

Firefox Tuneup

Mozilla browser.

These are moderate touchs that help Firefox functionality towards more advanced usage.


These edits are done in the configuration page, type about:config on a new tab/window to get to it.

Save session

Load all tabs on program start


Open new pages in tabs


Load new tabs in background


Prevent accidental middle-click from opening a new tab


Enable spell-checking of all entry fields



Firefox assumes a DPI of 96 so if your monitor is different it is good to set this to get correct font sizes (the value is the ratio compared to 96 DPI: e.g. 102/96).


Disable roll-over help text

Disable preview on tab re-order


Set mouse scroll speed


Define source code viewer


Font type and size

Many sites define font size depended on CSS values. Using these values can be helpful in define font size: Firefox: Defining font type and size.


Avoid add-ons that are unnecessary; add-ons contribute to the potentiality of creating an un-stable browser experience. These add-ons give nice bonuses and have a good reputation:

  • Adblock Plus – blocks annoying buy keep unobtrusive ads.
  • Clear Fields – adds a clear text button for URL and search text entries.
  • Wired Marker – highlight text on a webpage and remember it.

References and tips

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:

Vi(m) Reference Card

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.


Backup Configurations with tar Helpers

Update: This article has been supplanted by The Beauty of rsync and Backup Script.

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 done with a basic script.

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 script. And it makes adding and subtracing files easy. For those new to tar the basic archive command is:

tar -c --xz -f <backupname>.tar.xz /folder/file /folder ...

Include/Exclude Files

By putting the archive command in a bash script it can be used later. Files and folders can be appended to the command in the script but for multiple files consider using include and exclude files:


tar --files-from=include.txt --exclude-from=exclude.txt -c --xz -f backupname.tar.xz

Include/exclude files contain the path on a line of what or what-not to backup. The include file should list the full path and cannot use regexps but the exclude fine can:


Add Paths to Include/Exclude Quickly

To add paths to the include/exclude files readlink can be used. Adding to the include and exclude files can be done like this (using the script below):

$ bckcfg i /etc/rc.conf 
 Added "/etc/rc.conf" to bckcfg include file.
$ bckcfg e ~/.thumbnails/
 * "bckcfg" doesn't check if patch is correct because the exclude file can
 contain regexps.  Be sure the path is correct (e.g. '/mnt/win/*')
 Add "/home/todd/.thumbnails/" to bckcfg exclude file? (y/n): y
 Added "/home/todd/.thumbnails/" to bckcfg exclude file.

Creating notes of backups can be done by:

$ bckcfg n Added font config
$:cat bckcfg-not.txt | tail -n 2
20xx-08-14-02:52:23 PM: Added dhcp cacher config
20xx-08-14-02:52:33 PM: Added font config

The Backup Script

To backup do:

bckcfg c

The script names the backup by several definable variables and removes old backups if desired.

Consider putting it in a cron job to get regular backups.


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 ;), but here it is:

// Contributor akau <>
// - cvar listings

/// Hardware ///

// FPS 30 or 60 decision - "showcom_fps 1" to draw fps
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:
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 -
//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 ///

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.

// 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 //

// 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"

// 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"

Restore Settings on a Broken Firefox

Update: 09-29-11 – Using script to automate process, see end of post.

When people have a issue with Firefox I’ve seen many people will resort to deleting their old profile (or folder) and creating a new one. This works but doing this will get rid of any passwords, history, bookmarks… therein. Having used Firefox quite a bit creating a new profile from time to time is a good idea anyhow as cruft, bad extensions, … can slow down browsing.


Copying the Firefox configs can be done by:

cd ~/.mozilla/firefox/

Backup the old profile and profile list:

mv xxxxxxxx.default{,.bck}
mv profiles.ini{,.bck}

Create a new profile:

firefox -CreateProfile <profilename>

This command will return the name of the new folder. Copy the basic settings to the new profile:

cd *.default.bck
cp places.sqlite key3.db cookies.sqlite mimeTypes.rdf formhistory.sqlite signons.sqlite permissions.sqlite webappsstore.sqlite persdict.dat content-prefs.sqlite ../*.<profilename>

This will transfer the bookmarks, browsing history, form entries, passwords, personal dictonary changes, and page zooms. There might be a couple other things wanted to add (possibly your firefox preferences), take a look at Transferring data to a new profile for more information.

Keyboard Template

I needed a keyboard template and I couldn’t find any so I made one (uh kinda). The outline was made by aphasia100stock:

Keyboard Outline

Keyboard Template


  • Converted from .ai format to .svg.
  • Removed inner borders.
  • Added Letters, Numbers, Symbols.
  • Added guidelines to be able to reference keys.
  • Requires Ubuntu font.

Thanks aphasia100stock for the outline. Free to use and distribute.

Customizable LiveUSB

If you ever have an emergency and need a rescue disk to recover your Linux install, or maybe you just want to brag to your friends there’s some good LiveCD/USB’s out there and many distro’s now make LiveUSB install images, but it is also possible to create your own customizable LiveUSB. Hey, if you’re willing to put the time in, you can have a portable Linux in your pocket.

There’s alot of articles about creating your own custom CD/LiveUSB but many of them seemed dramatic involving messing with things like syslinux… Plus many of these create a fixed image, meaning that once it’s on your USB it can’t be changed. But having a customizable Linux on a USB flashdrive isn’t that difficult – just install Linux to the USB drive.

Partition the USB Drive

The first thing you’ll need is at least a 2GB flash drive. Anything less and you better plan a real basic install. First thing you might like to do is partition the flash drive. This isn’t necessary but I was pretty sure I wouldn’t need the 4GB for what I needed so I partitioned the flash drive to have a 1GB FAT32 partition first (so that Vista can see any files I put on it) then I partitioned the remaining 3GB as ext4 with kparted (there’s also gparted for gnome users).

Install via VirtualBox

No need to burn an ISO and reboot, use VirtualBox and do it from your desktop. You can follow my Testdrive a LiveCD with VirtualBox post to getting VirtualBox setup. I personally used Arch Linux for this install because it’s easy to configure, Gentoo should work well too, and Ubuntu looks to be easy.

Note: At the time VirtualBox does not have 64bit capabilities. If you want to install a 64bit Linux on your flash drive best to boot a LiveCD and follow these instruction from there.

Make sure your user is part of the VirtualBox group to enable usb recognition:

sudo gpasswd -a <username> vboxusers

Boot the LiveCD/USB iso/img in VirtualBox then in Devices > USB devices select your flash drive. Now the installer will recognize your flash drive. Proceed to install the distro on the flash drive. If you partitioned beforehand you can skip partitioning and go to setting Filesystem Mountpoints. When you reach GRUB setup be sure to install GRUB on the flash drive itself, for me it was /dev/sdb. Be sure NOT to install GRUB to a partition, it should be at the beginning of the drive.

Fix Grub

Because your BIOS is likely setup to recognize your hard drive before your USB drive you get drive denominations like /dev/sda for your hard disk and /dev/sdb for your flash drive on regular bootup. If booting from a flash drive, many BIOS’s have you enter a key (mine is F10) to get to a Boot Menu. So when you select your flash drive in your BIOS Boot Menu your flash drive now becomes /dev/sda, hard drive /dev/sdb. In grub terminology this is hd0 and hd1. Most BIOS’s are like this (though there a few exceptions). To know for sure you won’t be able to detect this until you try and boot your flash drive (more below).

Close VirtualBox and open your GRUB menu list and change to the first recognized drive:

sudo mount /dev/sdb2 /mnt/usb
sudo vim /mnt/usb/boot/grub/menu.lst

or however you edit your system files. Then change:

# (0) Arch Linux
title  Arch Linux
root   (hd1,1)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/34393cdf-9f39-431e-88c8-ea89a2518c83 ro
initrd /boot/kernel26.img


# (0) Arch Linux
title  Arch Linux
root   (hd0,1)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/34393cdf-9f39-431e-88c8-ea89a2518c83 ro
initrd /boot/kernel26.img

The (hd0,1) value denotes the partition number, again starting with 0. So this denotation tells GRUB the root filesystem is on the first drive, second partition.

Arch-specific Details (Mostly)

If you already did the configuration for your hard disk, you should be able to copy most the configuation files over to the flash drive (rc.conf, mirrorlist, modprobe.conf, local.conf…) and then install xorg, xfce4… by chrooting in. This is my chroot script:

# chrootmount - change root to current directory

cp /etc/resolv.conf etc/resolv.conf
mount -t proc none proc
mount -o bind /dev dev
mount -t sysfs none sys
chroot . /bin/bash
source /etc/profile
grep -v rootfs /proc/mounts > /etc/mtab
source ~/.bashrc

This will allow you to just cd to the mounted directory and enter command to chroot to the new environment. From there you can install a desktop environment (I choose XFCE because I wanted a lightweight environment and limited disk space):

pacman -Syu
pacman -S xorg xfce4 gdm <few-fonts> nvidia

And a couple other things following the Beginner’s Guide.

The kernel initramfs image will need to be rebuilt too to have usb driver support. In the chrooted environment edit /etc/mkinitcpio.conf and add usb to HOOKS:

HOOKS="base udev autodetect pata scsi sata filesystems usb"

Then find the the kernel version name and version:

uname -r

and build a new initramfs image:

mkinitcpio -g /boot/kernel26.img -k <your-kernel-name-version>

The -k option needs to be specified to use the chrooted kernel and not runtime kernel that is being used by chroot.

When done, exit chroot:

exit && umount proc sys dev

Reboot and Test

Now reboot and get to the BIOS Boot Menu. As I said, all BIOS’s are different so keep an eye for a key to get to it. Once in the Boot Menu select your USB drive.

Try and boot the flash drive. If you get a GRUB 17 error or boot into hard drive OS, you’ll have to edit your menu.lst. You can find the devices Grub sees by starting the flash drive again and in the Grub menu press e to edit. On the root line press e again and delete to:

root (hd

now press tab and it will show you the availble drive and partitions. Enter the correct one, hit escape and then b to boot. That’s it, you should now have your own customizable Linux USB drive.


If you get errors loading the kernel, it may be because USB device detection may need a delay before loading root. Try to add this to the end of your kernel line in your menu.lst:



I was a bit surprised. I didn’t think a USB drive would be much different that a CD/DVD but actually it was alot faster. And I just discovered that I’m using a USB 1.1 flash drive. :) Not quite as quick as my hard drive but definitely not bad. This is also the first time I ran without an xorg.conf and my desktop runs great. Definitely worth a try if you ever need a rescue os to fix problems with.

Testdrive a LiveCD with VirtualBox

Results will vary depending on your machine but it may be quicker to burn and reboot to testdrive a LiveCD. If you want to try VirtualBox though, this is how you do it.

I decided to take a look at Fedora 11 and I thought that if I wanted to take a look at other LiveCDs in the future may as well set up VirtualBox and save myself the time of burning and restarting to take the look at them. Virtualbox is a bit slow but not terribly though. Note: I don’t have virtualization on my CPU though so load-times may alot better with it.

Install VirtualBox

Virtualbox has been getting some good reviews and is easy to use. Locate you distro’s documentation and find out how to do this.

Once Virtualbox has been installed load the module:

sudo modprobe vboxdrv

Start VirtualBox

VirtualBox in the KDE menu is under System > Sun VirtualBox, or you can just type VirtualBox in a terminal.


Click New in the VirtualBox window, name it, select OS type and version. Select base memory size as 512MB (most operating systems will need at least 512MB to function properly).

To create a hard disk image, when the new image has been created click Settings then CD/DVD-ROM and check Mount CD/DVD Drive, and then add the ISO image.

In the General dialogue select the Advance tab and check Enable IO APIC.

That’s it. You should now be able to load a LiveCD from VirtualBox.

Going Further

I wrote a post on top of this about creating you own LiveUSB:

Customizable LiveUSB

Kcheckgmail Gets in the KDE 4 Door

There are several programs to get mail notifications in the notification tray in KDE 4 but up until now there have been no native KDE ones: cgmail, and gnubiff rely alot on Gnome. There is the emailnotify plasmoid which isn’t too shabby but I wanted my notifications in the notification area!

Popular KDE 3 applications are making their way gradually to KDE 4 and kcheckgmail just made that plunge. So thanks to the devs that got this done.

Kcheckgmail for KDE 4 would still be considered beta software though as I encountered a couple bugs setting it up. After setup though kcheckgmail has been running good the last few days.

For now if you want to use kcheckgmail you’ll have to compile it from git. Luis has the basic instructions on how to do this.

Upgrading Your Video Card – Part 2

Continued from Part 1. Now that you got your card and PSU there’s couple more things to know.

Linux Drivers

It’s best to add your new video card drivers before you shut down so your new card will just boot up to the deskotp. Remove your old driver and install the new. Don’t try to keep both drivers as they’d probably conflict. Don’t worry about uninstalling a video driver on a running system, the driver is stored in memory so this is no problem to do.


For newer BIOS’s this isn’t a problem. On mine I had a video setting that by default said “PCI Express First’ so I didn’t have to change anything. The card was recognized at boot and the BIOS disabled the onboard one automatically. Most BIOS’s have this option. You may have to change this yourself though so look into your BIOS before booting.

Post Boot

If everything is set up correctly, you should have your new video card up and running. In the terminal type:

lspci | grep VGA

and you should see your new card. With that you can try out a game or an HD movie and see how it does.


There’s alot of talk in the video card click of overclocking. My advice? Don’t! Sure you can if you want to but keep in mind that overclocking voids most warranties. Overclocking can also take years off a video cards lifetime. Plus even the greatest overclocks will usually only yield about 2-4 fps. If you need more fps than that then likely you need another video card. If you absolutely have to do it, there’s a good post in the nvidia forums (see third post down).

Budget for a Price

I decided to go with the nvidia PNY 9600 GSO 768MB card. This isn’t a good card for gamers (be careful of manufacturer-reviews) but it is good for the price I got it for. I picked this up at Fry’s for $40 after a mail-in rebate. It’s runs quiet and has a three year warranty to boot. I tested a few games and found out it ran decent on most new games on medium settings (Crysis plays 20-40fps). I found out a bit too late but if you want a good budget/gamer card you’re gonna have to begin at the $100 price range and I’ve heard alot of good things about the ATi 4770.


This PSU is a great buy for the money as I said before though if you want to be sure you got a good PSU spend $40 dollars or more. As it was though, I couldn’t afford it and took a chance on a bargain PSU that has gotten some good reviews. The hec HP485D 485W ATX12V Power Supply installed easily and seems to be doing ok (I just hope it holds out for more that a year :) )


Get every new post delivered to your Inbox.

Join 52 other followers