I use Putty relatively often, and it's a great tool to have on your Windows utilities if you do any kind of SSH-connectivity every now and then. However, the way customizations are made leaves somewhat to be desired at times.

In particular, one of the things that annoys me about Putty is that pretty much all customizations seem to be done only at the profile level, even those that relate to the appearance of the terminal. And lets face it, the default Putty configuration is ugly and hard to use on a screen with a large resolution.

Meanwhile, I've gotten pretty used on my Linux boxes to using gnome-terminal with the Tango color scheme, which is relatively nice as far as these things go. It's perfectly possible to configure Putty to use this colorscheme, but let's face it: it's cumbersome. Plus, moving your profiles around by exporting/importing registry keys ain't great, either.

Putty with Tango scheme

So I built this very simple PowerShell script (puttyconf.vim) to fill in all the necessary registry values for the Tango scheme on an existing Putty profile in the registry. Enjoy!

param([string]$puttyConf)



$sessionKey = "HKCU:\Software\SimonTatham\PuTTY\Sessions\$puttyConf"

if ( test-path $sessionKey ) {

   $values = @{

      "Xterm256Colour" = 0x00000001

      "BoldAsColour" = 0x00000001

      "Colour0" = "187,187,187"

      "Colour1" = "255,255,255"

      "Colour2" = "8,8,8"

      "Colour3" = "85,85,85"

      "Colour4" = "0,0,0"

      "Colour5" = "0,255,0"

      "Colour6" = "46,52,54"

      "Colour7" = "85,87,83"

      "Colour8" = "204,0,0"

      "Colour9" = "239,41,41"

      "Colour10" = "78,154,6"

      "Colour11" = "138,226,52"

      "Colour12" = "196,160,0"

      "Colour13" = "252,233,79"

      "Colour14" = "52,101,164"

      "Colour15" = "114,159,207"

      "Colour16" = "117,80,123"

      "Colour17" = "173,127,168"

      "Colour18" = "6,152,154"

      "Colour19" = "52,226,226"

      "Colour20" = "211,215,207"

      "Colour21" = "238,238,236"

   }

   $values.Keys | %{

      set-itemproperty $sessionKey $_ $values[$_]

   }

} else {

   write-error "Profile '$puttyConf' does not exist in the Putty configuration"

}


Tomas Restrepo

Software developer located in Colombia. Sr. PFE at Microsoft.