CopyExt 2!

 2 min read

For the past few months I’ve been doing various SpiNNaker related things as part of the BIMPA project.  A lot of the tools I’ve been using are Perl scripts that have been designed with Linux in mind, but (to its credit) I’ve been running them through Cygwin without any issues.  Well, when I say any issues, I mean software issues.  Copying and pasting paths between my Windows and Cygwin environments very quickly became a massive pain.  So in what should’ve been my week off, I decided to resurrect a project of mine I wrote back in 2009!

CopyExt running in Windows XP

The ancient version (2009!) of CopyExt runing under Windows XP. The original version was seriously basic and actually arose out of a similar situation.  I was doing a lot of CAD/software stuff during my final year of undergrad and that involved an annoying amount of copying/pasting of filenames.  It broke when I finally got a 64bit operating system but I decided I didn’t really need it any more.  Until, of course, this week!

Commands added to the right-click menu by CopyExt when at least one file is selected.

I’ve finally rewritten it to work for 64bit Windows!  I haven’t broken backwards compatibility though as I still regularly use a Windows XP machine, but that is now the minimum supported operating system.

The new version of CopyExt running in Windows XP!

Now you may be sat there thinking “Why does this warrant a shell extension? Just hold Shift when you right click a file or folder in Windows 7!”  But I raise this as my counter-argument: the Copy as Path command is actually pretty useless to me because it always surrounds the path with quotes.  With CopyExt I can set the options such that a path of the form,

C:\Some Project\Some (poorly named) folder

will be copied to the clipboard as

/cygdrive/C/Some\ Project/Some\ \(poorly\ named\)\ folder/

Which means I can dump that straight into Cygwin without having to munge it at all!  The option to replace all backslashes with slashes means I can dump paths and filenames directly into certain CAD tools, again, without having to munge it at all!  Yes, it is lazy of me.  But that’s exactly why I wrote it! 🙂

This version is also far more complete.  It has a configuration dialog that lets you set exactly what menu items you want to appear and there’s a proper installer!  I’ve been wanting to learn NSIS for quite a while now and this finally gave me an excuse to do so.  I’m still releasing the source code for people who want to tinker.  All downloads are available here.

Overall I consider this to be a pretty complete solution and I’m happy with how it has turned out.  Hopefully it’ll even prove useful to people who aren’t me! If you do end up using it and you like it (or hate it) or have a feature suggestion/bug report then please don’t hesitate to leave a comment.