Hey Brian! Thanks for the quick feedback.
Funny you should mention using NORMA with a client on a notebook. One of the big drawbacks I've had in demos is that on my laptop's track pad it takes a painfully long time to enter even simple models. I usually build a very simple model as a demo then pull out a bigger model that I made before. Sitting down with a client and modeling is a serious pain at the moment because all that mousing takes time! I don't know if they notice, but I certainly do.
I haven't been keeping up with the release notes as I should be... naughty me for not doing the homework before posting. I don't know what the current keyboard shortcuts are, if any. You're right that context menus are a good place to look for the shortcuts. Photoshop, again, is my gold standard on this one. If you hover over the icons in the tool windows the tool tips include the keyboard shortcuts. Each menu item that has a shortcut is labeled appropriately.
Something I hadn't thought of until just now is that Photoshop hardly uses -any- right-clicking. This comes from its legacy as an Apple application, and the more I think about it the more I like it. When you consider a tablet PC format, it's even more appropriate. Now, with a tablet PC I don't know what keyboard modifiers you can do.... Ctrl and alt are used as click modifiers in Photoshop, and depending on which tool you're using it can perform different functions. It's quick, easy, and very powerful if you're an advanced user.
In a pure tablet PC format (no keyboard modifiers) we might need more floating toolbars, or maybe I just need to use the ones we have in a non-docked way. My complaint about the floating windows in VS is that you can't collapse them. You can dock and hide, you can float and move, but you can't collapse a floating window to reduce its size when you don't need it. Not something that I expect can be changed in NORMA unless it's decoupled from VS. Also with a tablet, double-clicking can be a trick. Maybe it's because I'm not using Windows Tablet edition, but when I try double-clicking with my Wacom tablet I often miss. Double-clicking is heavily ingrained in NORMA. Look at http://dontclick.it for UI alternatives to double-clicking, or even clicking in general! Until docking toolbars and the heavy double clicking can be addressed, I don't see NORMA as being a great tablet PC app. Which is not a big problem in my opinion, because that audience is so small that it's not worth the team's limited resources to cater to.
For NORMA, focusing on tool-sensitive ctrl and alt modifiers for left-clicks is probably not appropriate either. (Except for the "duplicate drawing shape" ctrl-click gesture-- genius points to whoever picked that one!) Windows users, and especially Visual Studio users, are accustomed to right-clicking. Heck, I expect it as part of my VS experience!
So key-click modifiers are out, collapsing tool windows are out, avoiding right-clicks and the whole no-click paradigm is out. That leaves us with keyboard shortcuts! I agree that learning the shortcuts and having them change in a later version is annoying. On the other hand, not having them at all forces you to complete a relatively long mouse gesture to perform each action. Think about it-- each time you want to express something in NORMA you have to "hunt and peck" on the "keyboard" that is the toolbox. You can't use muscle memory, you can't improve your "object types per minute" speed. I'll quit with the analogies here while I'm ahead, as I tend to beat them to death.
I think most keyboard shortcuts can be done without tying too deeply to VS. The obvious copy/paste, open, close, etc. are part of the environment, but those are fairly universal. Using unmodified or shift-modified keys such as "o", "f", "u", etc. can be easily ported to other environments since most visual editors are not geared to using keyboard shortcuts unless they're ctrl- or alt-modified. It lends itself well to being platform independent, and it's even something that can port to the web in javascript or Flash without interfering with the browser's shortcuts. Typing your OT names and FT predicates is still easy since the focus is not on the text entry area instead of the design surface.
I'm liking "O" (shift-o) as the Entity Type shortcut, which I guess puts the subtype connector as "F" (shift-f). Not entirely pleased with subtypes ending up there, but I can't think of anything else at the moment. Earlier I mentioned ctrl-up and ctrl-down, which is inconsistent with the "no modifiers" rule. I think capturing unmodified arrow keys interfere with scrolling on the design surface. Maybe shift-arrows? "`"? Tab? ";"? I'm not in love with any of them. Either way, what about using them to change directions on subset constraints? For making fact types derived or derived and stored? Objectifying fact types could use a shortcut. For frequency constraints it'd be nice if you could just type in a number for the simple cases. A toggle key for alethic/deontic might be nice.
I'm just tossing out ideas for shortcuts, and I'd love to hear somebody disagree with me. I know it'll be waaaay down on the priority list for the team (if it even makes the list!), but it would be good exercise if there's a group of new guys who need something simple to get their feet wet. If they wanted to get really fancy, they could make a menu where you can assign keyboard shortcuts to common actions. ;-)
Thanks!
-- Tyler Young