Monday, November 26, 2007

Updated xGestures again / USB Overdrive trick

New version of xGestures - 1.73.  It's a bug fix release, so no new awesome features this time.  This version should fix all of the hot corners and Dock related problems Leopard users have been having, as well as several other Leopard bugs.

I still haven't had a chance to fix the Wacom tablet problem, but it's still on my list of things to do, as well as several other things.  I plan to release at least one more version of xGestures in the not too distant future that fixes the rest of the bugs people have been complaining about off and on, as well as adding some Leopard specific features for things like Spaces and Time Machine.

(Incidentally, if you want to have gestures for those now, you can set xGestures to keystroke any of the various Spaces keystrokes.  You will have to temporarily change them to something different before you enter them into the xGestures pref pane, since otherwise they'll just switch the screen space and the pref pane won't register the keystroke.  But just change the Spaces keystrokes back again afterwards and it should work great.)

Also, for users using USB Overdrive:  Someone recently emailed me asking how they could use one of their really auxilery mouse buttons with xGestures and USB Overdrive at the same time.  (In this case it was mouse button #7.)  The problem is, USB Overdrive only allows mouse clicks up to button #5.  But you can work around that by having USB Overdrive do a keystroke for the button you want to use, and then set xGestures to use that keystroke for gesturing.  It works great!

Granted there's probably not a lot of people who'll find that tip useful, since it involves using both USB Overdrive and wanting to use an abnormally high button number to gesture.  But I thought it was especially clever, and it was useful to at least one person out there.

Monday, October 22, 2007

Finally updated xGestures

It's been... over ten months since I released a new version of xGestures?  I want to make it clear that I haven't abadonned the project at all.  In fact, I still use it every day, all the time.  However, I've come to realize that actually programming professionally for 8 hours a day, having a fairly active social life, and being lazy really makes it difficult for me to work on programming projects in my free time.  But I'm trying to get better about it.

So I've finally released a relatively minor update to xGestures that fixes a bunch of bugs that people have been complaining about for a while.  Unfortunately, there are still several bugs that I haven't had the opportunity to fix, and several features people have been requesting forever now that I still haven't had the time to add.  But in case you're wondering, here's stuff I really, honestly, plan to do at some point in the future:
  • Adding a feature for exporting and importing preferences. I plan to make this work so that you can import individual application preferences, as well as duplicate gestures and entire applications. So if you have 5 zillion gestures set up for your favorite web browser, and then you start using a slightly different web browser, you can copy over the gestures rather than having to do them all over again.
  • I want to fix the Wacom tablet problem.  LOTS of people have complained that xGestures doesn't work with Wacom tablets.  The problem, though, is that I don't own a Wacom tablet and don't have easy access to one right now.  As soon as I can get my hands on one, though, I'm going to see if I can fix things.
Now I should probably give some lip service to features that people have requested that are pretty low priority right now.  Which is to say, there are a bunch of other things I want or need to do in  my spare time before I'll have a chance to work on this stuff.  So the big one is diagonal gestures, or other kinds of complex gestures.  I really want to add that to xGestures, but it'll take a lot of work and I just don't have the right now.  Another big one is complex or advanced gesture actions, that can do neat things like do various different things depending on context, or start performing several actions in order until one of them succeeds.  That'd be a great feature to have, but once again it'll take oodles of work.  There's also adding a feature like being able to gesture with more than one mouse button.  So something like right-click gesturing in a direction will do action A, and middle-click gesturing in the same direction will do action B.  Or more rocker gestures, like holding the right button and clicking the middle button or something like that.   However, I want to be careful with these new features, because one of the things I'm trying to be careful about is not making xGestures really complex and annoying to use.  So if I implement any of these features, I'm going to try my hardest to make them simple and intuitive, but still powerful.

I'm also working on a new software project right now that's already getting pretty close to being finished. I'd say it's something like 70% of the way there. I'm almost certainly going to release it as freeware or donationware, because it's simple enough that I don't think it warrants people having to go through the effort of paying money to use it. But it's a cool idea, though, and it might actually be pretty popular. I'm not going to say what it is though just so I can be stupidly secretive with the four people who read this blog!!

Sunday, April 8, 2007

Screenshots in xGestures

Just earlier today someone emailed me asking if there was some way to create gestures in xGestures that would take screen shots, like pressing command-shift-3.  I figured it would be a pretty simple thing, since you can create keystroke actions and just have one of those press command-shift-3.  What I found out is that even if you get passed the first hurdle of figuring out how to enter that keystroke the xGestures preference pane without actually taking a screenshot instead, it still doesn't work.  There's a bug in xGestures I'm going to try to address as soon as I get the chance to make those sorts of keystrokes work, because apparently any kind of system-level key command can't be triggered by xGestures.

Not to be defeated, though, I figured that maybe there was some kind of neat way to do it using AppleScript.  And sure enough, there is.  Hidden in Mac OS X is the unix command screencapture, which can be used to take screenshots in exactly the same way as pressing Command-Shift-3.  Unfortunately it requires you to give it a path to a file, rather than defaulting to saving the screenshot to the desktop in the form of 'Picture N', so I had to code something in there to make it do that on its own.  But here are three AppleScripts you can use with xGestures (or anything that can run AppleScripts, like Quicksilver) for taking screenshots:

This will take a screenshot normally, just like pressing Command-Shift-3:

repeat with i from 1 to 999
    set pathToTest to ("~/Desktop/Picture\\ " & i & ".png")
        do shell script ("/bin/ls " & pathToTest)
    on error
        exit repeat
    end try
end repeat
do shell script "screencapture " & pathToTest

To make it behave like pressing command-shift-4, replace the last line with:
do shell script "screencapture -i " & pathToTest

or to make it behave like pressing command-shift-4-space, replace the last line with:
do shell script "screencapture -iW " & pathToTest

Hopefully someone might find these useful.  There's some other AppleScripts I wrote in response to user questions for xGestures, and at some point in the future I'll probably post them, since other people might like to have them too.

Introductory post

Hello to the cybermation info highway! I've started a blog because I just realized no more than fifteen minutes ago that I actually had a reason to write one. First, I'll get out of the way who I am: I am Brian Kendall. The general things I do include but are not limited to:
- Animation, mostly on computers but sometimes traditional animation
- Music composition, both instrumental and electronic
- Graphics programming
- Mac OS X programming and development
- Game development and design

That covers a lot of ground, so to give a better idea of what I do here are the actual things I'm actively involved with right now:
  • xGestures, a mouse gestures suite for Mac OS X
  • Software development for Anzovin Studios, including The Setup Machine and forthcoming products!
  • Pizazz!, the internets' hottest, happiest pop stars!

I'll mention more things as I start working on them. Aside from the work I've been doing for Anzovin Studios, I've been busy trying to complete more music compositions that I will probably post here at some point, and I'm probably going to start doing some very, very basic game development for the Xbox 360 using Microsoft's XNA game studio, but don't expect anything major to come from that anytime soon.

So what I'm going to do with this blog is post updates about the projects I'm working on that people might care about. For example, if I'm doing some kind of new work on xGestures, or I learned about or figured out some cool trick with it, I'll post that. (In fact, that's what my next post after this is going to be.) Or, if I have something neat or relevant to show for one of my other projects, I'll mention that. Really what it comes down to is that every now and then I develop or come up with cool things that are useful, neat, or practical involving computers or the internet or something like that, and I don't tell anyone about it, even though there's probably people out there who might find it really useful. So whenever something like that comes up, I'll post about it. This probably means I won't update the blog very often, because that doesn't really happen all that often, and I'm lazy. What this blog WON'T include is daily musings about my life, what my feelings are, or other mundane things about my day to day life because nobody wants to read that.

And that's that!