Warning: This is a little bit of a technical post.

When a widget is installed by the engine, it will prompt you to grant access permissions. There are a lot of widgets that will require system commands. They usually come in the form of shell commands like:

/usr/bin/id
or
/usr/bin/curl

And these commands are called in javascript through the widget.system() method.

These commands will require linux or linux-like environment like MacOS. (Is MacOS techincally linux?). On windows, we emulate this environment using Cygwin. It’s a linux-like environment for Windows.

Go there.

Download the installer. Choose the packages you need. You’ll need to install a shell package like bash or sh. Installation is pretty easy and straight forward.

You then have to edit the engine preference and check “Run system commands inside a shell”. And point the shell path to your Cygwin shell. (There’s a default sample entry to help you out.)

With cygwin, a majority of widgets that use system command will now run smoothly. But there would still be commands that are available only on MacOS.

The Say Cheese, daily comics widget use /usr/bin/pbcopy to paste an comic image on the clipboard. pbcopy isn’t available in cygwin, so someone will have to port or make a version of that. This is one area where contributors can come in.

In true Kludget fashion, we use cygwin as a component to make the dashboard widgets work. Cygwin is several MBs of disk space, depending on you packages. Do you think it’s worth it? I’m interested in your comments.