I have found a few programs recently that I thought I ought to tell everyone about. It is rare that one finds a piece of software that makes it’s way into one’s life quickly and irrevocably. Nevertheless that is what these have done. Both are for Mac OS X. I have no affiliation with any of them, except that of satisfied user.

The first is TextMacro, billed as a system wide boiler-plate text insertion program. It uses an idea that I implemented in ScripTyper1 of being able to move the insertion point to the middle of the text after it was inserted. This seems to me to be a very handy feature. However TextMacro’s greatest use to me is as an easy way to edit the text systems key bindings. This means that in all Cocoa apps I can have ctrl-j map to move cursor left, ctrl-l to move it right, and so on. It’s true that you could do this before, and in fact I did. That method involves editing an xml file, and it convenient enough to experiment, so I only changed the most important things. Now that it is so much easier, I feel more adventurous. Not to mention all those users too timid to try editing their own DefaultKeyBinding.dict file. Another useful thing is that it provides all the system keybindings, which I can use for reference. The only improvement that I can think of is if it had some reference material on what Cocoa input methods are available to make more complicated macros. The best part of it all? It’s a control panel, so it’s always handy, but never in the way.

The second is OmniWeb from OmniGroup, a group of former NeXT developers who now write Cocoa apps for OS X. I would definitely want to work for these people if I were interested in writing software for a living.

When I tried Omniweb version 4 I wasn’t impressed enough to switch from Safari. Safari is a lightning fast little browser that does most everything I want. Or at least that I thought I wanted. I am currently using the beta of OmniWeb 5. It has crashed once on me (it is beta after all). One complaint that I have is that it’s slower than Safari. Again, it’s beta, and my machine isn’t exactly turbo charged (300MHz Beige G3). The only feature that I wish it had is mouse gestures a la Opera (and now available via plugin for Mozilla and ilk).

People who use and love the Mac (and Mac OS X in particular) do so because of the sum of all the little things; the attention to detail that makes the Mac user experience superior.

The above quote from the OmniGroup website sums up my feelings for OmniWeb. I don’t think there is any single feature that I couldn’t live without, but the experience is much greater than the sum of all the niceties. For the most part what this means is that it does what I want without me having to ask nicely. The most obvious feature different from other browsers is the tab bar. Instead of being at the top like every other browser, it is a drawer. For those of you who don’t know a drawer is a wonderful OS X feature that allows a pallet to slide out from the side of the corresponding window and then hide again when you asked. What this allows OmniWeb to do is have actual thumbnails of the pages instead of just names and icons. Can’t I read you might ask? Of course. But this way it’s much easier to tell slashdot from my webpage. They are completely different colors, and have different layouts. Not to mention the lovely fact that I can middle-click to open a link in a background tab, and then decide that nothing has changed since last time I was there, and close the tab, all without leaving the page that I am currently visiting. The green check mark is also nice visual feedback that the page is loaded, but hasn’t been visited yet.

The other big feature for me is the source editor. Instead of just viewing the source code like most browsers, OmniWeb allows you to actually change the source, and look at the changes that you have made. You can then save the file, either locally or remotely. Unfortunately most of my webpages are at least partly dynamic, so it isn’t the perfect solution for me, but it does give me a way to make minor changes and see how they affect the site.

Of course OmniWeb has several features that no self-respecting browser should be without. For example it saves what pages you had open when you last quit. It allows searching in the location bar by use of a simple g word to search google for word. Of course these are fully customizable. Who needs a separate search box when cmd-l g space is so easy? Of course it has spell checking as you type, and ad and pop-up blocking (I think it was one of the first to have ad blocking). One of my favorite things is that it uses the same rendering engine as Safari (based on khtml). This means that pages are beautiful, and most important the expanding menus on my links page work right. After all what could be more important than my webpages ;-) Of course there are many more things that I could say, but I am sure you are either bored, or would rather experiment for yourself.

I may have to break my rule and actually pay for a browser when there are plenty of free ones that work fine. For example Safari for OS X, and the new Mozilla Firefox browser. Mozilla is very nice in some ways, and is very popular, but in my opinion the interface is horrible. That’s all there is to it. That said it’s still better than most everything for Windows or Linux (the exception being Opera). Mouse gestures will help and perhaps Firefox will come into it’s own someday, but I don’t think that will be until they start copying OmniWeb instead of other browsers.

As I was writing this entry and contemplating OmniWeb’s lack of mouse gestures, I realized that there is no reason to limit gestures to browsers. I’m not exactly sure what is possible, but I don’t see why Apple, or someone else, couldn’t make an inputmanager that would read mouse gestures and then pass them off to the application. If I had system wide configurable mouse gestures, I would be able to live without middle button paste. But then, I probably wouldn’t have to. What could be better than that? Then I would have much of the power of emacs in all my applications. All I would lack is lisp. On the other hand, why don’t I officially use emacs as my operating system? Then I have everything. Maybe because I still think emacs is too difficult to learn, and I know I will never get my dad to use it.


  1. This originally linked to a page about ScripTyper and a download. I have no idea where that is now, but it wasn’t as cool as I thought it was. ↩︎