PuTTY Tray: Redux — 0.61
→ Updated 2012-02-19: I have created a new static page with information about the new PuTTY Tray build. All future updates will be found on that page.
→ Updated 2011-11-10: There is a new version with added features/bugfixes!
PuTTY Tray (or PuTTYtray) is an unofficial branch of PuTTY, the terminal program. It builds on an already excellent application adding many features that (at least for me) make significant improvements including the ability to minimize the application to the system tray and turn URLs into clickable links within the terminal window.
It was originally published at http://haanstra.eu/putty/ by Barry Haanstra and was based on the PuTTY 0.60 codebase. It was last updated in November 2007, but the project was abandoned by the original author. Since PuTTY author Simon Tantham recently released an updated version of PuTTY (version 0.61) with some significant changes, I decided to adapt PuTTY Tray’s functionality to the new 0.61 codebase, hence the new moniker — PuTTY Tray: Redux.
I decided not to include some of the original PuTTY Tray changes because they didn’t work well for me or I had no need for them. A complete list follows (with the abandoned changes marked through and the reason they were left out):
- New default icon
- Minimizing to the system tray (on CTRL + minimize, always or directly on startup)
- Application and tray icon customizable per connection
- Blinks tray icon when a bell signal is received
- URL hyperlinking
- Easy access to the ‘always on top’ setting (in the system menu)
- Configurable window transparency
This was originally left out but I found a better transparency hack and re-implemented it — it can use Windows Aero (if available)! - Better bold font when using Cleartype (e.g. Consolas) fonts
- Portability: optionally stores session configuration in files (for example: on a USB drive) like portaPuTTY
I had no need for this since I could simply export/import the registry settings to keep my connections portable — plus this functionality can be achieved using PortableApps: PuTTY. - Reconnects when your PC wakes up from stand-by
After initially leaving this out, I have restored this functionality. - Attempts to reconnect when the connection fails
Also restored.
From the original site
PuTTY Tray is a combination of the best SSH client and some of the best patches written for it. It started out as a simple trayicon patch, created after I read that this feature would never make it into the ‘standard’ PuTTY.
After a while I started merging it with other patches, to create the ultimate PuTTY. Because I could never have created PuTTY Tray as it is today without these patches, I would like to thank:
- Everaldo, for making the beautiful Crystal SVG icon set from which I derived the PuTTY Tray icon
- Samuli Gröhn, for making the NuTTY hyperlink patch
- Jakub Kotrla because he invented the PuTTY File patch
This code has been omitted.- warp13.co.uk, for the reconnect patch.
- dwalin.ru, for parts of the TuTTY session icon code
- All the people who are sending me emails with great suggestions
Please note
If this software does not work as expected, eats your PC or kills your cat, you should know that it comes without warranty of any kind. You install it at your own risk. Also, please do not bother any of the people mentioned above with questions about PuTTY Tray. If it does not work, let me know, or try the original version.
Download it!
Updated 2012-02-19: I have created a new static page with information about the new PuTTY Tray build. All future updates will be found on that page.
Thanks for the program.
The version 0.60 could be synchronized with dropbox. How I can automatic synchronize the putty-sessions in the new version?
With UMTS-Card I can work without problems using 0.60 and screen (at server). The new version disconnects and doesn’t reconnect. So working in a train is impossible.
Mathias,
Thanks for your input. I updated the download to include the reconnect patch so we should be able to put you back to work on that train ;-). I also implemented a new transparency patch which seems to work better (at least for me) that the older transparency patch. For now, I think I’ll leave out the portability stuff since it can be achieved with PortableApps. Hope this works better for you.
Cheers,
Toby
Thank you for your hard work. I have always loved putty tray very much and I was very excited with the potential for using your new version but I just cant go without the portability feature.. See, portable apps’ version doesnt allow one to minimize to tray… and that is the main reason I would use putty tray..
Thank you very much for your hard work anyway, I will keep looking for my perfect alternate putty!
You make a good point. Perhaps I’ll try to integrate the portability functions into this PuttyTray. I’ll update this post if I manage to get it built.
Thanks for your input!
Cheers,
Toby
If you are referring to saving config in file that would be sweet! I’d like to be able to save the config file on dropbox
I tested with PortableApps version today and it minimizes to the tray just fine. Any way you can provide more information about your setup and what happens when you try to minimize to the tray?
Thanks &
Cheers,
Toby
Thank you, a very nice idea.
The problem with the duplicate sessions I solved with installing screen at the server and put the line “screen -D -RR putty” into SSH – Remote Command. It opens a screen session “putty” at first time connecting and reconnects always to the same session.
Another little problem: when I import and open old sessions without the registry key “Transparency”=dword:00000000 they are not to use. Better set the default transparency to 0 when the registry key is not set.
When you say it is “not to use” — do you mean that the window is invisible? I did see that when the registry value for the OLD transparency was read by the new one — I am going to implement a bit of defensive code to look for that (a 0 in the old transparency meant something different than in the new method of transparency.)
Anyway, can you explain if that is what you mean? Because if there is no registry value for transparency, it should simply default to an opaque window with transparency disabled.
Maybe you’re right, I used the settings of old PuTTyTray and the window was invisible. I added the new registry value and it was solved for me.
And – I installed the portable PuTTY from Portableapps.com and replaced the putty.exe with your exe file – all is working perfect.
Thanks a lot for your work.
Woot! So glad I found this! I love puttytray.
I am absolutely gutted that you have taken out the main feature I want from putty tray. I can’t begin to understand the logic of people wanting to not save session data as files instead of the registry. Why would anyone prefer the registry? Putty Portable just doesn’t have all the features that I’ve got used to and love from putty tray, and now I get punished by having portability taken away, for no reason?
Very nice, i suggest webmaster can set up a forum, so that we can talk and communicate.
I do want to add, as I do sound ungrateful, that it’s really good of you to take up this project. I know that you don’t owe anything to the users of the previous version, and I don’t mean to sound like I’m ungrateful that you’re taking over. But it just saddens me the program I love has finally been updated, and I have to look elsewhere and use a portable version that loses functionality, when this already had the code in place.
I appreciate your comments and input. Just out of curiosity, what functionality is lost if you use PortableApps PuTTY (replacing PUTTY.EXE with puttyTray.exe) — other than, of course, having to recreate your connections?
In the interest of full-disclosure, let me give you the reasons the session storage hack was left out:
1. The hack creating the the second storage type (filesystem vs. registry) was extremely messy and modified lots of core functionality. The original author even left comments in the code saying “This is one of the messiest hacks I have ever created.” ;-)
2. I didn’t use it.
3. The functionality (storing sessions using the filesystem which can then be synced with DropBox, USB key, etc.) was actually implemented better already with PortableApps.
I encourage you to try PortableApps. I tried it and it worked flawlessly for me (including minimizing to the tray, transparency, etc.)
Thanks &
Cheers,
Toby
The problem with dropping support for the session files and relying on PortableApps is that using PortableApps on Dropbox causes some weird file locking issues on the registry files when trying to use that single install on multiple computers simultaneously. It works great as long as one computer is using PuTTYTray at any time and you always close your sessions when you’re done so that when you go to another computer, it can open the registry file exclusively and keep it open.
For people that are looking for better support with Dropbox, take a look at http://puttytray.goeswhere.com/ as it seems this person has a more true upgrade of PuTTY 0.61 to the PuTTYTray codebase.
Oh, commendable! I love the work you’ve done here – I always loved PuTTyTray. That said, I also encountered the fact that when I replaced the old PuTTyTray with this one and just loaded up my old session file, not altering the transparency option at all, the PuttY window became nearly invisible. Just nearly. Well, I turned on the “glass” option, since I’m a Win7x64 user, and it’s a stopgap measure. I’d like to have the window completely opaque at all times. :) Anyway, you made my day with this redux.
How bizarre. The invisibility issue corrected itself after opening the application a few times and fiddling with the translucency settings.
I’ve actually tested an update that will fix the problem of the old transparency setting causing the window to be nearly invisible using the new transparency code. I’ll try to upload the new version this week sometime. I will also update the post to include this fix.
The new version has been uploaded. It fixes the issue with legacy transparency settings making the window nearly invisible, plus it fixes an issue where the window icon was not being updated properly until a session has been saved with a custom icon. The build number is 149.
Enjoy!
Thanks! Works well.
Where’s the source?
I would very much like to implement the easy fix for the font rendering issue discussed in this post.
Still no source code available?
Never mind, I found someone else who updated Putty Tray to 0.61 and also made the source available; it’s on github at https://github.com/FauxFaux/PuTTYTray.
I’ve added a diff file you can now download. My version is a bit different from the one on Github because I am using a different transparency method and I have omitted the portable sessions hack. The diff is here.
Very nice work, thank you! It would be even better if transparency worked in full screen mode.
Paul,
The transparency works in full screen mode. Make sure you don’t have the option “Opaque when focused” checked if you want the window transparent while focused.
Cheers,
Toby
Thanks Toby for resurrecting PuTTYtray!
Would it be possible to get an updated build using:
http://svn.tartarus.org/sgt/putty-branch-0.61/?sortby=rev&sortdir=down
in order to get the very latest fixes? I build from this branch to get the latest but it doesn’t include the PuTTYtray enhancements.
I have now built PuttyTray against http://svn.tartarus.org/sgt/putty-branch-0.61/?sortby=rev&sortdir=down which contains the latest fixes, as requested by jomcty.
Cheers!
Toby
Thanks, works well! I appreciate the effort.
This may be an issue where I am waaay over thinking things, but here is what I am attempting to accomplish:
I want a remote support user to be able to click on a batch file that would launch a PuTTY Tray session that minimizes automatically after connecting, then launch a TightVNC connection that will initiate a dial-back to a VNC viewer located on the same server that is running SSH. At this point, all the user has done is double-click on an icon that initiates a “remote support” session without having to do any typing, minimizing, maximizing, etc.
To this end:
I have installed a cygwin server running open ssh using a non-standard port
I downloaded PuTTYGen and generated a public/private pair key set to use with the client
I installed the public key onto the SSH server without a passphrase (I know, I know, but ease of use was balanced against security and I split the difference). The private key is installed on the client.
I saved the session with PuTTY Tray so that I could invoke it from a batch file and connect to the SSH server via port forwarding
Port 5900 is redirected so that all calls come from 127.0.0.1 but the connection is terminated to the SSH server and not the client
Here is where I am:
The connectivity is awesome. Having done some NAT/PAT translation on my Cisco firewall, I can open a secure SSH session and log in without a password using the key pair via SSH-2.
I can open the TightVNC client and connect to the remote server via 127.0.0.1:5900
I can fix end user stuff (sometimes, they are very creative)
Here is where I am not:
I want the batch file to launch the PuTTY Tray session minimized to the tray without user intervention, followed by a call to the VNC Viewer to initiate the dial-back session. Is there a way to do this so that the SSH session starts, connects, then pops down to the tray without any user intervention?
I appreciated any help! I have looked at this far too long today and I now have the theme song from the Simpsons stuck in my head….
Simon,
I am working on win7 enterprise edition. i don’t have the option “Opaque when focused” checked. But still the transparency doesn’t work in full screen mode. Maybe the functionality got lost after updating with the latest sources?
[…] […]
Thank you for keeping Putty with hyperlink alive!
Can you write in a “double click in the middle of terminal window to open a duplicate session” feature?
What about an alternative method of retaining the portability? Perhaps a “Backup/download config settings from registry to putty.cfg” and a “Restore/import config settings from putty.cfg to system registry” feature buttons?
If the said putty.cfg file is plain text, we may even tweak or copy/paste profiles with a text editor without having to navigate through the GUI settings dialogs.
Thanks again for your marvelous work.
The current version (0.61.151) has the Cleartype font fix from http://stackoverflow.com/questions/2520610/detecting-cleartype-optimized-fonts.
[…] Tray Redux: https://www.simmonsconsulting.com/2011/07/30/puttytray-redux/ [Privacy Tactics editor’s note: this is our current preferred version of […]
[WORDPRESS HASHCASH] The comment’s server IP (216.151.210.47) doesn’t match the comment’s URL host IP (72.233.2.58) and so is spam.
Putty 0.62 is out. Can you provide a puttytray version based on that?
Thanks!
It’s on my list … :-) I’ll update this post when I get it updated!
+1 for 0.62 :)
I was wondering if a drag and drop of urls could be implemented. Like mintty has done. See http://code.google.com/p/mintty/wiki/PuttyIssues
Hey Toby, while you’re working on the .62 version, would it be possible to add a secondary font selection for CJK characters?
For example, I prefer Consolas or Courier New for my Latin characters, but they don’t do CJK, so I like to use BatangChe for that. In other SSH programs (for example Poderosa), you can select two fonts: one for Latin and one for CJK.
I’m not sure how difficult that would be to add to PuTTY, but I figure it doesn’t hurt to ask. :D
Thanks for the good work~
2011-12-10 PuTTY 0.62 released
where is the updated version? is there this much to change?
Great job ! thanks
Hello, Simon! I use this Putty build to connect to a shell to use my Irssi screen. This is just perfect for that except for one thing.
When I minimize the program into the taskbar and maximize it enough times, the icon disappears and only a blank icon shows. This happens at least on Windows 7. It wouldn’t be a big deal, but I have set up a bell to tell me if somebody’s sending me a message. When the icon disappears, it won’t blink either. I’m not always using speakers or headphones, so it would be crucial to always see that icon. Restarting the program always helps but I’m sure something could be done to fix this.
Thanks for all your efforts!
And I mean Toby of course. Sorry for that. :D
Hello Simon,
nice to see this project, im already using your updated version!
I would ask you… did you ever think to implement tabs support?
I think is one of the most important missing features in the putty client and id like to see it implemented.
Bye.
I would love to be able to implement tabs, but it would require a much more significant rewrite to implement. It’s one of those things that I may or may not get around to but I wouldn’t hold my breath.
where is the updated version? is there this much to change?
2011-12-10 PuTTY 0.62 released
It’s not so much that there was a lot of change, I’ve been busy with other projects, the kind that actually pay. After all, a man’s gotta eat. ;-)
I have built PuTTYTray against the 0.62 repository. I’ll probably post the new binary on Monday after some vetting.
Cheers,
Toby
thx for your effort and for the new build.
I’m a software engineer and know what you mean.. coffee and pizza 4ever ;D