Have something to say?

Ready to be published? LXer is read by around 350,000 individuals each month, and is an excellent place for you to publish your ideas, thoughts, reviews, complaints, etc. Do you have something to say to the Linux community?

GNUifying Windows: Make the best of imposed Windows-use at work

Chances are, if you work at a big company, you have to work with the beloved Windows and - unlike home - you don't have sudo - er, I mean admin-permissions. If you are a vivid Linux-user at home, it may feel like you're lost without your favourite Linux tools.

However, there's a lot of Free Software / Open Source software for Windows to make you feel more at home. Below I will present a list of the tools I use from time to time. Remember, it's just a list of software I use which I hope you say "Nah, I never heard of that!", that's the goal of this article. It's not meant as a recommendation of any kind, or saying that it's better, or to start a discussion about an utopic world in which you are free to use any OS you like at work.

Please note, the software mentioned below is portable. That means it doesn' t have to be installed. For example, if you have a D-partition on your Windows system, the mentioned software "doesn't even have to touch" your C-partition.
Probably, most people are familiar with the great PortableApps-collection of mostly free software, so I'll skip that one and start with the more "unfamiliar" ones.

GNU Bash

License: GNU GPL v3+

Main developer: GNU for Bash, Steve Kemp (compilation, distribution of the .exe)

First thing you may miss, as the MS DOS shell (cmd) is so clumsy, is a familiar shell. Now, you can install entire Cygwin Portable, but I go for the more minimalistic approach. This is where Steve Kemp's Cygwin-precompiled version of GNU-Bash comes in. I use it quite a lot. Though it has its warty quirks, as bash was never designed to run on Windows, it's convenient for when you need to do some file-shuffling and can't figure out how to make a for-loop in DOS-Batch.

These are GNU Core utilities, like dd, GNU find (which does something different than DOS-find!), pwd, ls, gawk, grep and so on. These old hoary - er I mean tried and trusty tools use the native Windows-library msvcrt.dll, and don't depend on CygWin. If you put the path where these tools are in the Windows path environmental variable, you can use these tools from MS-DOS (cmd) as well! These days, I'm happily firing up

cmd.exe" to use "ls -alF|grep blabla | gawk {blabla} | sort -n

Of course, this can be done in Bash as well, but as I mentioned bash sometimes has its quirks, so I usually use the one which is most convenient.

For simple programming jobs, which can be done in a text-editor, I use SciTE. Trick is, to find the "single file executable called Sc1" (look for it on the webpage). This is the portable version which doesn't have to be installed.
My favourite features include:
1) Using the alt-key to put the cursor at multiple lines at the same time, very convenient to delete / add quotes at multiple lines at the same time. Hard to position the cursor very precise, but great feature though.
2) Being able to replace newlines, use [mono]rn[/mono] (Windows newline) and check the box "transform backslash expresions". Also great for any file juggling.
3) Multiple programming language support: Pres Alt-L and then choose a suited language.

For the programing jobs which are too inconvenient using only bash and SciTE, Python with PyScripter is my favourite. PyScripter is an enhanced text-editor tuned for Python, based on SciTE. This is great for when you're ready and raring to do "quick data juggling" involving defaultdics, maps, zip, multi-dimensional lists and file read / write and the like. I have both Python v2 and Python v3 installed, as v2 has more modules, but uses the more archaic Python v2-language. v3 is smaller, as it includes less modules. Whatever suits you best!
The PyScripter also has a built-in interpreter, so you can run python-commands line-by-line like you would run bash-commands in your bash-shell, without saving your file.
One convenient trick in Portable Python is, you can use it to run a local file-server with [mono]SimpleHTTPServer[/mono], for cases where you want to share some documents over a network which youd don't control.

This tool may raise discussion, as AutoIT was my favourite way of building a quick-gui for Windows. Not that I make any serious stuff, but for the occasional three-button natty program (close-button excluded), this works great once you finally figure out the confusing syntax.

A bit of history: The AutoIT-team was pretty upset that lots of people were leeching their software and not giving credet / contributing to AutoIT, and that's why AutoIT v3 is no longer GPL anymore: The team intrepidly made it forbidden to reverse-engineer AutoIT. Of course, a fork was inevitable, and it became AutoHotKey. When I switched to AutoHotKey - which is GPL - I didn't know about this history.

In my opinion, AutoHotKey has pretty terrible syntax, all the time I'm confused over expressions and the difference between [mono]:=[/mono] and [mono]=[/mono]. This leads to tons of errors for the casual programmer - like me. The new "dialect" AutoHotKey L makes things even more confusing. AutoIT v2 felt way more intinuitive. However, AutoHotKey really shines when it comes to making hotkeys (doh, hence it's name!). If I need to press 4 key combinations quite often, I automate it using HotKey, shortening it to only one key combination. This is something I really miss in Linux!

"Then why do you use it?" I hear you ask. Well, because it's GPL, and because it's actually the quickest way I found to make a GUI-program for Windows, and - most important - also compile it to a standalon executable which doesn't require AutoHotKey to run. That executable can be distributed to colleagues. I spent hours trying to both make a GUI with portable Python, which isn't that hard. But then trying to compile it to a stand alone executable, well, that didn't work. If you're not much of a GPL / Free Software purist, I advice you to try AutoIT v3 as well, and use what suits you best.

Select-middle-click-'n-paste like GPM in Linux! The official name is "True X Mouse Gizmo", the canonical name is TXMouse. It does not always work and terribly conflicts with MS Access, and has not seen major updates since 2005, when Windows 7 didn't exist yet. So only use this one if you feel gutsy enough to deal with possible consequences!

When Microsoft decided upon their keyboard layout-changing method, it seems they did it with breezy indifference. The result is totally terrible for those - like me - who are stuck with a QWERTY-keyboard they want to use as a Dvorak-one: settings kan be changed, but only per window! Now, I want to switch back and forth between Dvorak / QWERTY for _all my windows_ with one key-combination! Seems some Russians had a comparable problem, and that's where Keyla steps in. It does, well, basically only that one task, switching keyboard setting, and that one task really well. Unix-philosophy, huh?

Windowspager

If you wake up from a lucid dream where are your windows are cluttered - 20 of them layered on top of each other and unable to all cilck them away, be not afraid: Windowspager is to Windows what virtual desktops are to Linux. The shortcut key is not Ctrl-Alt arrow but Ctrl-Special (usual Win) + arrow. Less settings and so on, not so fancy as Compiz, but does the job!

Once I was feeling feisty, and made the stupid decision I wanted to scan some harddrive for duplicate files. Problem is, this was on Windows. That's when I discovered md5deep, a tool for recursively listing and md5-summing files. After that, Python or some other scripting tool can find duplicates. Of course, it also has other uses such as when downloading something for which an md5-checksum is given. Luckily, it also does SHA1 and SHA256, the latter being preferred these days.

GhostScript

Once you know how to use it, a very hardy tool to "purely educational" strip the "protection" from PDF files. Especially a great tool in combination with scripting and PDFTK.
===== Freeware section (non FOSS, so consider this off-topic!!!) ====

Mentioning freeware might cause bad karma on LXer as it's not Linux or free/ open source software related. OK, actually this program maybe pre-dates the whole free-software movement as it was first written in BASIC for CP/M, so maybe the situation isn't so two-state quantal as "to be or not to be Free Software". Anyway, I will just mention it: whenever I need a hex - editor once every two years, I use this one. For Linux, there's a free new version available, made by Niels Horn. If that name sounds familiar, it might be because this guy also makes Slackware-packages. Yay, after mentioning non-foss freeware, definitely a karma up! "Later", Niels Horn said in 2010, an open source Windows-version of Hex-ed called nHex-ed may follow.

Philelight for Windows! Think WinDirStat in a cicrle. You don't have to wear a jaunty black turtle-neck to appreciate this minimalist application: however it's freeware. I'll mention it anyway as it's portable, convenient and usefull.