How to: Restore Command+Arrow keys in Name Mangler

March 3rd, 2013 by Rob Griffiths

One of the new features in Name Mangler 3 is a comprehensive history of renaming operations. Name Mangler will remember your last 50 (or more, if you change it in prefs) renaming actions. You can access these saved configurations via our history browser:

To make it easier to browse your history, we provide two keyboard shortcuts: Command-Left Arrow (previous configuration) and Command-Right Arrow (next configuration). Experienced keyboard users will instantly recognize that those are the shortcut keys for jumping to the start and end of text strings in an input box, and may wonder how we have the keys serving both roles.

The short answer is “we don’t.” In Name Mangler 3, you can’t use those shortcut keys to navigate input boxes, only to navigate history.

But there is an easy solution, for those who prefer these keys in their text field roles: change the keyboard shortcuts for the history browser. After changing these shortcuts, the Command plus arrow key shortcuts will work as expected in Name Mangler’s text fields.

If you’re experienced with changing OS X keyboard shortcuts, you just need to assign Previous Configuration and Next Configuration to new shortcuts, and you’re done. If you need more specific how-to help, keep reading.

To reassign keyboard shortcuts for an app in OS X, open System Preferences (Name Mangler can remain running), and go to the Keyboard pane. On the Keyboard pane, click the Keyboard Shortcuts tab, click on Application Shortcuts at the bottom left of the window, then click the plus sign at the bottom of the window:

This will drop down a sheet with three fields on it: Application, Menu Title, and Keyboard Shortcut. Click the Application drop-down menu, and look for Name Mangler (or Name Mangler 3, if you’re using the App Store version) in the list. If you don’t see it, click Other and navigate to the app on your hard drive.

In the Menu Title field, type Previous Configuration, and in the Keyboard Shortcut field, type whatever you’d like it to be—Command-Option-Left Arrow, for example. Once you have the panel configured, click Add to save your changes and return to the Keyboard Shortcuts screen.

Click the plus sign once more and repeat the process, but change the Menu Title field to Next Configuration, and assign it different keys (Command-Option-Right Arrow), then click Add.

When you’re done, the Keyboard Shortcuts panel will look something like this:

And that’s all there is to it. When you return to Name Mangler, Command plus arrow keys will work in text fields, and your newly-assigned shortcuts will be used to navigate history.

How not to compete in business

March 1st, 2013 by Rob Griffiths and Peter Maurer

Late in the day on March 1st, we received an explanation/apology from Dietmar Kerschner.
As far as we’re concerned, the personal side of this matter is now closed.

Two days ago, we launched Name Mangler 3, our first major upgrade to the program in nearly three years. This update was user-driven, based on feedback we’ve been tracking since Name Mangler 2 came out. We focused on speed, the ability to perform more than one renaming action, and some user interface improvements. We’re incredibly proud of what we built, and have been thrilled with the initial reaction.

Then yesterday, out of the blue, we received an email claiming we’d violated the copyright of another renaming application. We spent the afternoon researching the other app, and eventually sent an email response back to the accuser, clearly demonstrating our innocence through screenshots and app release timelines. (Name Mangler has existed in pretty much its current form since its initial debut as File List, way back in 2005.)

We thought that would be the end of it, because it was obvious there was no infringement. Today, though, we discovered that our accuser has gone public (despite not replying to our email) with these tweets:

Now that we’re being called thieves in a public forum, we feel we must respond in public as well: we cannot let Dietmar Kerschner trash our hard-earned reputation with baseless accusations that can’t withstand even the most basic level of scrutiny.

A Brief History of Name Mangler presents our side of the story. There you’ll find details on the development of Name Mangler, and that of Renamer(4Mac), the program whose designer has accused us of copyright infringement. Even a quick glance at the page will show that we’ve copied nothing from Renamer—if anything, we could claim that their latest release copied our design.

The purpose of this blog post, though, isn’t to go through a comparison of the two apps. Instead, we’d like to focus on the impact baseless copyright violation accusations have on both developers and (potentially) end users.

The threat

This is the threatening email we received from Dietmar Kerschner:

To whom it ma concern

I am Dietmar Kerschner, the UI/UX designer of Renamer 4. You have choosen to steal my UX concept for namemangler 3 which is a breach of copyright which i own.
It is abvious that you have stolen every part of the concept of Renamer 4, which i have concepted years ago.
I will not accept such copyright abuse.

Please explain the situation and give a statement, otherwise i will have to forward this case to my lawyer.
You also would risk another abusement case which can be forwarded to incrediblebees laywers.

I recommend to act fast.

Cheers
Dietmar Kerschner

The above is reproduced verbatim, typos and formatting and all. Here’s the actual email message, in case you think we might be making this up. Trust me, we wish we were.

Our response

Needless to say, this email made us extremely angry: we have never stolen a UI concept/design from anyone, ever, and we work incredibly hard on our user interfaces. There are literally thousands of hours of design work and rework in Name Mangler 3’s user interface, and all of it was done internally, without ever looking at our competition.

We spend hours sweating the tiniest of details, often having pages-long Messages conversations about a one-pixel alignment decision. We care about this stuff, and we think it shows in the quality of our applications. So to be accused of interface theft hits us deeply, and it hurts, even when such accusations are false.

But what really got us mad was wondering how often this type of thing goes unnoticed and unmentioned, and the receiver of such a letter simply gives in under the threat of legal action.

Impact on developers

Between the two of us, we’ve now spent the better part of a full day on this project, gathering historical data for File List/Name Mangler (very easy, as we keep everything) and Renamer (much harder, given the name and ownership changes, and the lack of any sort of release notes) and preparing our response to Dietmar.

We’ve been Googling and taking screenshots and generally wasting time, proving something that we knew to be true going in. We called on friends in the software development business, to make sure we weren’t overlooking something about our work that could lead to a copyright infringement claim. We reached out to fellow Mac developers, asking for their thoughts on the situation.

All of these things take time, and time is our most precious commodity. This is time that we could’ve been using to code, to respond to customer inquiries, to visit with family and friends, etc. All that time wasted, because of one threatening letter. And we took the time to respond. Imagine a smaller developer, with a greater fear of legal action. Instead of responding, they may start spending hours changing their app’s appearance—all for no reason at all, beyond a threatening letter.

We love the software business, we love developing excellent products, and we love fair competition between developers: end users benefit greatly when two or more companies are building apps that do similar things. But trying to smother the competition with a baseless copyright violation claim? That’s not how we play, and we don’t think it’s how the software business should work.

Impact on end users

You may think a developers’ debate over copyright violations has no impact on end users. And if your timeframe is very short, you’d be right. But in a slightly longer run, time that developers waste on needless tasks takes away from the time they have to spend supporting end users, to write cool new apps, to update old apps, etc.

In addition, every time a copyright violation accuser forces an unwarranted change in an application, they’re affecting the user experience. If an app is forced away from an ideal layout because someone claims it’s “theirs,” that’s not good for users.

Threats may also dampen a developer’s enthusiasm for developing in general; after all, it’s no fun to spend hours defending your actions under threat of legal action. Irk a developer enough, and they may just decide it’s not worth the hassle, leading to fewer applications available for end users.

Wrapping it all up

Are we arguing that copyright is unimportant, and developers should be free to steal from other apps without any negative effects? Certainly not. Copyright is very important, and violators should be called to the mat for theft.

In this case though, we’ve demonstrated that not only did we not steal, but that any theft may have very well been the other way around: Renamer 4’s “new” interface bears a striking resemblance to one we’ve been using since 2005. But honestly, we don’t care—we like competing on features, performance, and ease of use instead of with legal threats.

So what happens next in this dispute? We have no idea. In an idealized world, Dietmar realizes that he’s wrong in his assumptions, and sends us his apologies for making a false accusation. The chances of that happening, though, are close to zero.

What we hope is that through exposing Dietmar and his threatening but groundless copyright violations email, he’ll think twice before trying such an approach on other developers. This business is hard enough as it is without having to worry about such underhanded tactics.

Late in the day on March 1st, we received an explanation/apology from Dietmar Kerschner.
As far as we’re concerned, the personal side of this matter is now closed.
Because we view the issue as closed, we’ve closed the comments.

The nitty-gritty on buying Name Mangler 3

February 27th, 2013 by Rob Griffiths

Have you heard the one about the customer who walks into this confusing mess of prices and stores, and says “Look, just tell me how to buy the new version of Name Mangler?”

OK, so it’s not really that bad, but the fact that there are two versions Name Mangler 3 for sale in two distinct channels does make for some potential confusion for those looking to buy. Hopefully this post will clear up any such confusion.

As background, this is the pricing for Name Mangler 3, in both the direct and App Store sales channels:

  • Normal price is $19 ($18.99 in the App Store).
  • Sale price is $10 ($9.99 in the App Store) through March 5th 2013.
  • Direct purchasers of version 2.x can upgrade for $9 through our web site for the next 30 days. Beyond that, the upgrade price will be $14. The upgrade will, as always, get you

This knowledge base article describes the differences between the App Store and direct versions of the program. There aren’t many, but for certain users, there may be some show stoppers for the App Store version. Please check that document before you buy.

The first topic to address is recent buyers, particularly recent App Store buyers. The good news is that if you purchased Name Mangler within the last two weeks (on or after Feburary 13th, 2013), you’re entitled to a free upgrade to Name Mangler 3.

How do you get that upgrade? That depends on where you bought your copy.

  • For direct buyers, we will be sending you a license file, with no action required on your part. (If you already purchased an upgrade license, we’ll be sending you a refund, too.)
  • For App Store buyers, you face a decision. If you want the App Store version, you’ll have to buy it directly from the App Store—we do not have any way to provide free App Store copies to recent purchasers.

    However, you can get a free license to the direct version, if that’s acceptable to you. To get your free license, email me (rob at our domain, or click here) your iTunes receipt, clearly showing your full name, date of purchase, and Name Mangler as the purchased app. I will then verify the receipt and send you a license file.

Read on for some answers to questions that may come up as you’re looking to buy Name Mangler 3…

  • I previously purchased Name Mangler 2 from the App Store; don’t I get a discount?
    Apple, unfortunately, offers no way to sell upgrades to previous customers. We don’t know who our App Store buyers are (we receive no buyer information at all), and there’s no official upgrade mechanism in place for App Store applications. If this is something you’d like to see, we encourage you to let Apple know.

    Lacking any Apple solution, putting the new app on sale for a limited period of time is the best we can do for an upgrade plan. Make sure you buy within a week, though, to take advantage of the sale price.

  • I bought Name Mangler 2 directly from you, but now want the App Store version. How do I buy an upgrade license?
    If you want Name Mangler 3 from the App Store, you’ll need to buy it there. With the sale price, though, this will only cost you $0.99 more than would buying the upgrade license through our site.
  • I crossgraded to the direct version from the App Store version. How do I buy an upgrade license on your site?
    The crossgrade license is not the same as an actual license for an app purchased from our site. It allows you to run the direct version as a licensed customer, but we cannot use this license as the basis for an upgrade license. (The reasons relate to piracy and the ease with which pirates could use a license conversion tool for bad things.)

    As such, you’ll need to either buy a full license through us or through the App Store, depending on which one you want. Again, during the sale period, this will only cost your $0.99 more than would a true upgrade license.

  • I bought Name Mangler 2 directly from you, and want to buy the upgrade license from you as well.
    Great, an easy one! Just click here and you’ll see the shopping cart with the $9 upgrade license already in it. Complete the checkout, and await your license email. NOTE: You must have a full Name Mangler 2 purchased license in order for the upgrade license to work.
  • I accidentally upgraded to the direct version of Name Mangler 3, but prefer to stay on Name Mangler 2
    No problem, it’s easy to revert to the older version. Delete Name Mangler 3, then download Name Mangler 2. Copy the file off the disk image to your hard drive, and you’re back in business.

If you have any questions I don’t address in the above Q&A, please post them as comments, and I’ll do my best to answer them.

Hello, I’m Name Mangler 3, nice to meet you!

February 27th, 2013 by Rob Griffiths

After a long and intense development period, Name Mangler 3 is now available, either directly from our site or from the App Store (yes, it’s sandboxed). This release is loaded with tons of new features, an updated user interface, and some incredible increases in renaming speed.

Name Mangler 3

The regular price for Name Mangler 3 is $19, but it’s on sale for an astonishing $10 for the next seven days as an introductory special. (Name Mangler 2 users who purchased directly from us can upgrade for $9 for the next 30 days, after which the upgrade price will become $14.)

For a video overview of Name Mangler 3, check out the overview video (also available in ogv and webm formats).

While designing Name Mangler 3, we had four objectives in mind: Safe, Fast, Complete, and Easy. After many months of effort, and lots of great feedback from our beta test team, Name Mangler 3 delivers on all four of these objectives. Keep reading to see just how we’ve added features, improved performance, and revised the user interface to achieve our objectives for Name Mangler 3.

Safe

Whether you’re renaming dozens or thousands of files, you want it done safely—losing files during a renaming task is simply not acceptable. That’s why Name Mangler 3 includes these features to insure safe renaming:

  • Duplicate prevention: Creating duplicate filenames during a rename can lead to lost files, as one file overwrites another. That’s why, before you even start a renaming task, Name Mangler 3’s status lights and tooltip text let you know if there’s going to be a naming collision. See a red status light? Check the tooltip for the cause. Name Mangler 3 won’t allow you to rename files until you resolve the duplicate issues.

    Name Mangler can optionally force names to be unique, too, if you’d rather not worry about this issue at all.

  • Undo mistakes: Make a mistake during your renaming? Don’t worry, Name Mangler 3 can undo the last-performed renaming action.
  • Block dangerous actions: Name Mangler 3 won’t let you rename files associated with iTunes, iPhoto, and Aperture, as that can cause problems within those applications.

Name Mangler 3 also checks files’ write status before renaming, warning you if you don’t have write permission. If your renaming action will remove any filename extensions, you’ll be asked to confirm before proceeding—files without extensions in OS X can be problematic.

The safety features in Name Mangler 3 let you rename your files with confidence, as they provide a safety net you need to help insure nothing is lost in the process. (Of course, you should always have a backup whenever you’re doing anything of a massive scale to your filesystem!)

Fast

A super-safe renaming app isn’t much use if it’s slower than a large fruit-named computer company is at releasing new versions of its flagship desktop hardware…but I digress. When renaming thousands—or even tens of thousands—of files, speed is of the essence.

That’s why we’ve optimized Name Mangler 3 to deliver speeds like you’ve never seen before. Depending on your computer, hard drive, renaming configuration, and other such variables, Name Mangler 3 can be anywhere from 50 to 100 times (or more) faster than Name Mangler 2. For example, when renaming 5,000 files, here’s how the two versions compared:

In other words, Name Mangler 3 renamed 5,000 files in just 3.3 seconds, versus 203 seconds—over three minutes—for Name Mangler 2. Name Mangler 3 even scales well for huge jobs: A test renaming of 20,000 files took just 25 seconds. If speed is what you need, Name Mangler 3 delivers, and does so without compromising safety.

Complete

What good is safety and speed if you can’t do everything you need to do? Name Mangler 3 is your one-stop multifile renaming solution. As always, a slew of renaming actions await your use: Find and Replace, Sequence, Add Prefix/Suffix, Insert/Delete, and more. Now, Name Mangler 3 adds to its existing skill set with these powerful new features:

  • Metadata: Use the metadata browser to insert “data about data”—image dimensions, audio bit rate, etc.—into any renaming operation. With over 150 metadata fields available, our browser needs to be smart—and it is. As you type, it narrows the list of matching metadata fields, making it easy to find just the one you need.
  • Multi-step renaming: Need to find and replace text within a bunch of filenames and add a sequence number to their names? In Name Mangler 3, you can string together one or more renaming actions to do everything you need to do in one rename operation. No longer will you need to reprocess your filenames; one pass is all it takes.
  • Save presets: Have a renaming operation you use a lot? Just save it as a preset, and it’s always available. Presets can even be automatically shared across Macs using Box or Dropbox.
  • Revisit history: Name Mangler 3 keeps track of every renaming action you perform. Want to re-do that action you ran three months ago, but forgot to save as a preset? No problem; use the history browser to call it up.

    Make any changes you desire, and your action is ready to use again.

  • View interim filenames: If you’re performing a multi-step renaming operation, select any step of the operation, and Name Mangler will show you the filenames as of that step, as well as the ending filename. This makes it easy to insure that Name Mangler 3 is going to do exactly what you want it to do.
  • Advanced mode advances: For those who use Name Mangler’s Advanced mode, you gain all sorts of goodies in this release: resizable edit area, auto-indent, auto-completion of functions and variables, tab to empty parameters, find and replace, and indent and outdent of multiple lines of code. You can also save snippets of code for easy reuse in the future, and share these saved snippets as you can do with saved presets.

Lots of other touches abound to offer the complete renaming experience. Retina graphics for those using retina-enabled display devices. Export renaming configurations to share with others. A new Compose rename command, so you can start with an empty name. Status lights reveal the presence of syntax errors in regular expressions. Rename files using an imported CSV-delimited text file.

Easy

Name Mangler has always been about ease of use. Filename previews show you before-and-after views of your filenames before you rename them. You can populate the file list via drag-and-drop, a Finder selection, or an Open dialog. Quick Look lets you check that the files you’re renaming are, in fact, the files you want to rename. A progress bar shows you how your renaming task is proceeding (though it’s onscreen much less often now, thanks to Name Mangler 3’s speed).

We’ve built on these great features in Name Mangler 3, taking ease of use to another level. Among the new ease of use improvements are:

  • Automatic input box sizing If you’ve ever tried to work with lots of text in a small input box, you know how frustrating it can be—lots of scrolling to see everything, difficulty in selecting, etc. Name Mangler solves this problem with automatically-resizing input boxes:

    Type as much or as little as you like, and Name Mangler will make sure you can see what you’re doing.

  • Draggable multi-step actions: When working with multi-step actions, you can change the working order by dragging each individual renaming action around. If you prefer the keyboard, Command and the Up or Down Arrow key will similarly move actions up or down the chain.
  • Export configurations: If you need to share your renaming actions with others, you can easily do so by exporting the configuration file, and sending it to the other person. They can open your configuration with a double-click.
  • Add files to the selection: Forget to include some files you wanted to rename? Shift-drag them from Finder into Name Mangler 3’s file area, and they’ll be added to the existing set.
  • Show only affected files: Sometimes you’ll be dealing with thousands of files, only wanting to rename a few. Name Mangler 3’s new View > Show Modified Files Only menu makes this simple, by removing any files that won’t be renamed from the list of displayed files.
  • Automatic view mode: Change the sort order from Name to Modification Date, and Name Mangler 3 automatically adds the Date Modified field to the file list view. Change the sort order to Size, and each file’s size is automatically displayed.

The total package

Although not everyone needs a multi-file renamer, for those who do, Name Mangler 3 delivers the goods. With safeguards that help prevent data loss, speed to crush even the most demanding of tasks, a complete set of features, and incredible ease of use, there’s not a better renamer out there.

Try the free demo today and see for yourself.

A brief follow-up on Donation Day activities

December 22nd, 2012 by Rob Griffiths and Peter Maurer

On December 20th, we ran a promotion wherein you could get any of our apps for $1 apiece, with the understanding that you’d donate the cost savings to a charity of your choice. Obviously, we have no idea how many people actually donated, versus those who just saw a chance to buy our apps on the cheap—hopefully a fair percentage of people at least gave something to a charity of their choice.

From the responses we did receive, the distribution of charities was quite wide. Browsing the emails and tweets, here’s every charity we can identify that received some money from our customers on Donation Day (in no particular order):

Salvation ArmyOxfam JapanPartners in Health • 10 Days of Giving Food Shelf • Gruft – Caritas ViennaWorld Wildlife Fund • Bible for Today • Charity:WaterSjogren’s Syndrome Foundation • Celiac Disease CenterMind, the Mental Health Charity • Santé-Sud • Action Contre La Faim • Electronic Frontier Foundation • Brady Campaign to Stop Gun ViolenceNational Pancreatic Cancer FoundationOakton Community College Educational FoundationHurricane Sandy Appeal – British Red Cross • Wikimedia Foundation • Coalition to Stop Gun Violence • Jehova’s Witnesses • Mazon: A Jewish Response to HungerWarren Public Library • Mateno • Motor Neurone Disease Association • Local food drive • Local church parish • Nyx – Free public internet • American Red Cross • Local children’s charity • Housing WorksWaterAidWCNY Public TV • Warren General Hospital

That’s quite a list, and we obviously hope that there are many other charities that benefited from our Donation Day; we heard from only a sampling of our customers.

To all of you who bought and then contributed to a charity on Donation Day, we thank you for following through on something that was based on nothing more than trusting people to do the right thing—both of us felt really good about what was going on as we read the tweets and emails. And for those of you who bought the apps cheaply but haven’t donated, please do so. This wasn’t a giveaway on our part, it was an idea to raise money for charity. So please, contribute your savings and help make a difference.

In closing, and to bring Donation Day full circle, we’ve also made a charitable contribution of our own: Many Tricks has donated $2,000 to Newtown Youth and Family Services, to help everyone there recover (as best as may be possible) from the horrible tragedy they’ve lived through.

We hope you have a safe and enjoyable holidayPeter and Rob.

Donation Day has come to a close

December 21st, 2012 by Rob Griffiths

If you’re coming here via a link about our Donation Day promotion, it has come to an end. We’ll have an update on how it went somewhat later today. Thanks to everyone who did the right thing by donating their savings to a charity of their choice!

Some ideas for your Donation Day savings

December 20th, 2012 by Rob Griffiths

Update: It seems Apple has ended our App Store pricing somewhat early; all App Store prices are back to their normal levels. (This probably happened in preparation for the shutdown that begins at midnight tonight, Pacific time).

Our own store’s schedule remains unchanged, however: you can buy for $1 through tomorrow morning.

Now that Donation Day is live in most of the world, we thought we’d make the task of donating easier by providing some links to various charities (a few people have asked us for such). Note that the intent of Donation Day is for everyone to donate to a charity of their choosing, thereby perhaps getting some money to charities that don’t usually get much visibility. However, we realize that some people may prefer a bit of guidance on the subject.

So with that said, here are some links to help start your charitable giving campaign…

Hopefully this list gives you a nice start at finding a home for all that cash you saved on your Many Tricks’ purchases today!

Announcing Many Tricks’ Donation Day

December 19th, 2012 by Rob Griffiths and Peter Maurer

In the past, we’ve donated proceeds from our software sales to worthy causes, such as the National Pancreatic Cancer Foundation and Charity:Water. This year, we thought we’d try something different…

On Thursday, December 20*, all of our apps
will be priced at $1 ($0.99 on the App Store).

The catch: We want you to donate the money you saved
(compared to list prices) to the charity of your choice.

For example, if you want to own Moom ($10) and Time Sink ($5), we’ll expect you to donate $13 to your favorite charity. Usher ($35) and Desktop Curtain ($5) would mean a $38 donation. Buy everything in our portfolio for $9, and donate $109 to charity. It’s pretty simple math, regardless of which apps you’re interested in buying. (These donations should be tax deductible, too, but please don’t take our word for that!)

You may wonder how we’re enforcing this donation requirement. The short answer is we’re not. We both firmly believe in the goodness of people, and we’re confident that those who purchase on Thursday will do the right thing. Will everyone? Absolutely not. But we believe that many will, which will hopefully lead to some nice contributions to a wide range of charities.

Sure, we could have kept prices at their normal level, and donated proceeds to a charity or two of our choosing. But we feel strongly that you should be able to pick your own charity, and we hope that by dropping the apps’ prices to $1 for the day, we’ll get more participation than we would by simply donating our proceeds.

So if you’ve been waiting for a good excuse to purchase one or more of our apps, Thursday’s the day. You get the apps you want at an amazing price, you get to choose who gets the money you saved on our apps, and you get to feel good about supporting a charity.

All we ask (ask, not require) is that you let us what you did with the savings. You can either send us an email with the details, or just tweet about it, and copy @manytricks on your tweet. We’d love to know how much money was donated, and to which charities, if you feel like sharing that information.

Happy Holidays!Peter and Rob.

*

Because the world insists on having multiple timezones, our Donation Day pricing will roll out differently for the App Store and for our web site. App Store buyers will see Donation Day pricing starting at 12:01am on December 20th in their local timezones, and it will end 24 hours later.

On our web site, Donation Day pricing will begin at 7am Pacific USA time on December 20th, and end at 7am Pacific USA time on December 21st. This will give buyers, regardless of their local timezone, 24 hours to purchase directly from us, if that’s their preference.

How-to: Add a teleporter to your multi-display Mac

December 7th, 2012 by Rob Griffiths

If you’ve got a multi-display Mac, then you know what a drag it can be to drag things. When you have a window at the lower right corner of your right display, and you need it at the upper left corner of your left display, that’s a lot of pixels to traverse. One excellent solution to this problem is Moom, our window management tool. Amongst its other capabilities, Moom lets you easily jump a window across displays via keyboard or mouse.

But what if it’s not a window, but text, that you need to drag—say from a word processing window to an email window? Moom won’t be much help there. Or you need to drag a file, to drop it on another application or into a Finder folder?

big drag

Again, Moom can’t help you with that task. But our app Keymo certainly can!

Keymo is an app that lets you control the mouse pointer with the keyboard, and it bears some resemblance to Moom. While some of its users have physical handicaps that make using the mouse difficult, Keymo has some talents that appeal to everyone.

One of those skills is its ability to instantly jump the mouse pointer between displays…and if you can send the pointer between displays, well, anything you happen to be dragging will come right along with it when it goes. So read on to see how you can use Keymo to greatly ease the drag of dragging.

After installing Keymo, all you need to do to start teleporting around your displays is set up one new custom action. Open Keymo’s Preferences, and click on the Actions entry in the toolbar. Create a new Action, and make it look like this:

Move cursor in Keymo

You don’t need to assign the same shortcut (^3 in the screenshot) that I’ve used—but you want it to be something pretty easy to type with one hand, as your other hand will be on the mouse or trackpad. If you check the ‘Loop through displays’ box, you’ll be able to repeat the command to jump to the next display in line (or back to the first display, if you’re using two displays).

The ‘Retain relative position’ setting tries to keep the pointer in the approximate same screen location as resolution changes across displays. You can also set this to ‘Retain absolute position,’ which will use the same fixed coordinates on all displays, or to ‘Absolute center,’ which will always put the pointer at the center of the screen.

Once you’ve set up this custom action, you’re ready to put it to use:

  1. Start a drag operation.
  2. While still dragging, press the hot key you assigned to your Keymo shortcut.
  3. There is no step three.

As soon as you press the Keymo shortcut key, the cursor and whatever it was dragging will jump to the next display, from where you can continue your drag. Press the shortcut key again, and Keymo will teleport cursor and dragged object to the next display (which would be the first display in a two-display setup). Repeat as needed.

Here’s a short video that demonstrates how this works, in case the text above is too confusing.

Watch the large version [mp4 only • 1024x640 • 2.6MB]

If you’ve got a trackpad, this is even slicker, because you can enable drag lock (in System Preferences > Trackpad), and then teleport around your displays without having to keep any pressure on your trackpad—just drag, teleport, etc. until done, then tap the trackpad to release the window.

Keymo is only $5, and you can download and use it in trial mode to help you decide if it helps your workflow or not. (While Keymo is presently available on the App Store, we don’t recommend you buy it there, as it’s presently not sandboxed and we’re not sure if it will be in the future or not. If we can’t sandbox it, we can’t update it.)

Witch and RAM usage, both real and not so real

November 28th, 2012 by Rob Griffiths

Witch, our window switching application, is designed to be always-running (what good is a window switcher if it’s not active?). The program itself exists as two components: the user interface, where you modify Witch’s settings, and the background process that watches for the Witch activation keystrokes and builds the list when activated. The background process is named witchdaemon, and some users have emailed us with concerns about the RAM usage of this background daemon.

The emails we receive come in two flavors:

  1. Why is Witch using so much real RAM?
  2. Why is Witch reserving gigabytes of virtual memory (VSIZE in top)?

Read on for the details on both real and virtual RAM usage by Witch—the explanations are somewhat detailed and technical (especially relative to virtual memory), so put on your geek glasses before proceeding.

High real RAM usage

I’ll address real RAM usage first, because it’s both more important and much simpler to understand. To see how much real RAM Witch is using, run Activity Monitor (in Applications > Utilities), click on the Process Name header, and find witchdaemon in the list of processes. Here’s how it looks on my Mac:

The witchdaemon background process

The column of interest is Real Mem, and as you can see, it’s only 13.4MB—and the daemon had been running for nine days when I took that screenshot. On your Mac, though, you may see a much different value, and it could be substantially higher; I’ve had reports of RAM usage exceeding 1GB. So why the differences? There are three things that affect the memory usage for witchdaemon:

  1. The number of windows you’re switching between. Keep more windows open, and generally speaking, witchdaemon will use more RAM.
  2. The setting of the “Show” pop-up menu in the Appearance tab of Witch’s settings. Set it to ‘application icons’ for the least memory usage; using ‘mini window previews if possible’ will use the most RAM.
  3. Using window previews, either via the “Pop up a preview of the selected window after a” pop-up menu (also on the Appearance tab of Witch’s settings), or by pressing the Space Bar with a window selected. Show lots of window previews, and RAM usage will increase.

The reason these last two options use RAM is that Witch caches the images, so that future redraws of the panel will be quicker. For instance, here’s my same nine-days-running witchdaemon after I used a slew of window previews:

After using window previews

At present, this cache isn’t cleared aggressively by Witch, though the system will take it if it needs it. Over time, if you use preview icons and/or window previews, you may see witchdaemon‘s memory usage increase. (The system will do some cleanup; my RAM usage fell to 92MB within a minute or so of taking the screenshot.)

The easiest way to reclaim this memory is to simply open the Witch settings panel—this will restart witchdaemon automatically, and thereby clear the cached image data.

High virtual memory usage

If you’re the type of user who likes to really see the nitty gritty on what your machine is up to, you may occasionally use top in Terminal. top is basically like Activity Monitor, but for command line geeks. If you do, and you use Witch, it may freak you out just a bit when you see something like this:

Output from 'top' sorted by VSIZE

Why on Earth would witchdaemon need 11 gigabytes of VSIZE, whatever that might be? (In Activity Monitor, you can see these VSIZE values, but you must first select a process, then click Inspect; the value is on the Memory tab.)

Regardless of what it VSIZE may be, though, the sheer size of the number is shocking, and probably has you thinking “Geez, Witch is a huge memory hog; that’s horrible!”

As it turns out that this huge figure in VSIZE is nothing to worry about, and it’s not exclusive to Witch. So if you’ve seen it, and wonder if you should care, the answer is you shouldn’t.

If you’re curious as to why you shouldn’t care, then keep reading. (Things are going to get a bit geeky from here on out, so consider yourself warned.)

You’re headed into a maze of twisty little passages, all alike…at least, that’s how I feel when I start discussing OS X and memory management. In short, it’s a very complex and powerful system that generally works very well, but can be really confusing at times. Keep in mind I’m not a programmer (Peter is our founder and programmer) or memory expert, so the following is a semi-educated amateur’s attempt at explaining Witch’s huge VSIZE number, and why you shouldn’t care about it.

The VSIZE column represents the amount of memory ‘marked’ for an application’s potential use. The important bit is that it’s not reserved, protected, or otherwise used; it’s simply marked, as in “Witch may need 11GB of RAM at some point.”

If you look at the VSIZE figures in total, they can be shockingly large. If you look at my screenshot above, there’s a summary at the top; one of the lines summarizes the virtual memory situation:

That 308GB of VSIZE reflects the memory that has been marked as possibly required for my currently running apps—yikes! But the reality is that this amount of memory will never be used or needed. Even more important is that application authors don’t control this VSIZE figure; the system does it itself, based on what the author’s code needs to do. So why is it so big? The honest answer is that I don’t know why, nor seemingly does anyone out there, at least based on some internet searches.

You can, however, see exactly what’s in that huge VSIZE space by using the vmmap tool. Enter this command in Terminal:

vmmap -resident `ps ax | grep [w]itchd | cut -b 1-5` | grep "Summary for" -A 999

That looks complicated, but what it does is run vmmap on the process ID of witchdaemon, and then displays only the summary portion of the output (as there are thousands of lines). The output on my machine is as follows:

==== Summary for process 66301
ReadOnly portion of Libraries: Total=143.7M resident=80.9M(56%) swapped_out_or_unallocated=62.7M(44%)
Writable regions: Total=8.4G written=7248K(0%) resident=30.0M(0%) swapped_out=0K(0%) unallocated=8.4G(100%)

REGION TYPE                      VIRTUAL RESIDENT
===========                      ======= ========
CG backing stores                  9100K    5824K
CG raster data                      228K     192K
CG shared images                   1280K    1256K
CoreGraphics                         16K       8K
CoreServices                       6232K    6232K
IOKit (reserved)                  256.0M       0K        reserved VM address space (unallocated)
MALLOC                            337.2M    6520K        see MALLOC ZONE table below
MALLOC (reserved)                   7.8G       0K        reserved VM address space (unallocated)
MALLOC freed, no zone              72.0M     196K
MALLOC guard page                   104K       0K
MALLOC metadata                     740K     260K
Memory tag=240                        4K       4K
Memory tag=242                       12K      12K
Memory tag=243                        4K       4K
STACK GUARD                        56.0M       0K
Stack                              9752K     116K
VM_ALLOCATE                        16.2M    16.1M
__DATA                             12.1M    9808K
__IMAGE                            1240K     344K
__LINKEDIT                         36.8M    10.9M
__RC_CAMERAS                        248K       0K
__TEXT                            106.9M    70.0M
__UNICODE                           536K     456K
mapped file                        23.3M    8492K
shared memory                     135.8M   111.6M
===========                      ======= ========
TOTAL                               8.8G   247.4M
TOTAL, minus reserved VM space    825.0M   247.4M

                                          VIRTUAL   RESIDENT ALLOCATION      BYTES
MALLOC ZONE                                  SIZE       SIZE      COUNT  ALLOCATED  % FULL
===========                               =======  =========  =========  =========  ======
auto_zone_0x100263000                      256.2M      4240K      17546      1698K      0%
DefaultMallocZone_0x1001d0000               72.0M      2168K       7793      1597K      2%
DispatchContinuations_0x10026c000           8192K        96K          1         32      0%
environ_0x100202000                         1024K        12K          1         16      0%
DefaultPurgeableMallocZone_0x1007d6000         4K         4K          0         0K      0%
===========                               =======  =========  =========  =========  ======
TOTAL                                      337.2M      6520K      25341      3296K      0%

This command shows you the breakdown between what’s marked (VIRTUAL) and what’s being more actively used (RESIDENT). The lines I highlighted in red show three items that take no RESIDENT RAM, but have huge VIRTUAL values. Add them up, and of the 8.8GB in total VSIZE, roughly 8.1GB of it is taken up by things that aren’t using any RAM—and that aren’t controlled by Witch.

The RESIDENT column shows Witch using 247MB of RAM, but that doesn’t seem to be accurate either. To me, the best summary of Witch’s actual memory usage is found in the Inspect panel in Activity Monitor; here’s what it looked like while writing this blog entry:

Here you can see that the witchdaemon process is using only 20MB of real memory, has 163MB of shared memory (used for inter-application communication, as I understand it), and has 7MB of private memory. (We are rapidly approaching the limits of my knowledge of OS X’s memory management system, so I’ll stop now!)

In summary, Witch’s VSIZE figure is high. But it’s nothing we’re doing to create it ourselves, and it’s not something we can reduce. The biggest chunk of it, the 7.8GB for MALLOC (reserved), isn’t anything we can remove, as it’s the OS that’s putting it there. Why is it putting it there? Who knows. But here are a couple of related articles that show it’s not a Witch problem:

Finally, Apple’s support article on Using Activity Monitor contains some tips on how to use Activity Monitor to understand memory usage.