I have seen the HOWTO articles etc, and this link here....
http://www.reddit.com/r/Bitcoin/comments/hid2r/how_will_you_lose_your_bitcoin_wallet_ill_tell_you/
Personally I think that you can never have a secure wallet what ever you do, and here is why I think so.
The "secure" wallet will eventually have to connect to the net at sometime, and the vector in my guess will be thru a vulnerability in the client itself. So imagine a malicious peer sitting on the network sending specially crafted packets to a vulnerable client (even if it is on a clean OS etc) and exploiting a known or 0-day.
Anyhow I am a sucker for false security and fanciness so I liked what was said in the reddit link above by the WJKovacs character. I have two wallets now. One in the default location and one in a truecrypt thing, and I use the bash script below to load them on demand as i am too lazy to be renaming wallet files, or manually starting bitcoin with parameters.
#!/bin/bash
# Display a listbox with two items (could be more depending on how much wallets you have)
# In this example we have the two items below:
# 1) Default account where day-to-day activities are done. This wallet/account is stored at ~/.bitcoin, the default location
# 2) Savings account where you send you put your savings. This should be in a secure location (a CD, truecrypt volume, thumbdrive etc.)
ans=$(zenity --list --text "Select Bitcoin Account Type?" --radiolist --column "Pick" --column "Account Type" TRUE "Default" FALSE "Savings");
# You may select an item or click the cancel button in the listbox
# If you click on cancel nothing happens.
# If you select the Default Account it starts bitcoin where the wallet is in the default directory
# If you Select Savings account it pops up a Directory Browse dialog that lets you select where the Savings accout wallet is
if [ -n "$ans" ]; then
if [ "$ans" == "Default" ]; then
/opt/bitcoin/bin/32/bitcoin -gen=0 -noupnp -rescan;
elif [ "$ans" == "Savings" ]; then
cd ~/Desktop;
# Display directory browse dialog.
# If you click on cancel here nothing happens.
# If you select a directory then bitcoin is run using your selection in the "-datadir" parameter
szDataDir=$(zenity --file-selection --directory --title "Select Savings Account");
if [ -n "$szDataDir" ] && [ -d "$szDataDir" ]; then
/opt/bitcoin/bin/32/bitcoin -gen=0 -noupnp -rescan -datadir=$szDataDir;
fi
fi
fi
I believe none of this protects me ... but I feel fancy (...and actually do like the sensation of false security ... no lie...) doing it anyway.