Alright guys, next version time! This one has a massive syntax overhaul that will hopefully only need to happen once. As a result, the predefined menus and keys are a tad sparse, but I'll add in more fairly soon. In the meantime, feel free to make your own, seeing as that's what this thing's all about.
A cool feature to add to this would be to actually designate with the mouse by click-and-drag, with live preview. It would work in the backend by really designating the rectangle the mouse is currently defining, for instance set it for mining. When the mouse moves, undesignate the previous rectangle and designate the new one, and so on. Inconvenient is that this will undesignated any area you're dragging over, it's possible to use some memory hacking to remember what were the designations and restore them instead of undesignating.
On a side note, the way the cursor moves is really a limitation of DF's control scheme, I've toyed around with telling it new cursor coordinates directly, but then the game doesn't actually check the tile for entities and the like, which is quite annoying.
Wild uninformed guess, but maybe a workaround for that could be to quickly hide/reveal the tile with dfhack, or do some other dfhack trick to the tile that causes it to "refresh".
As for the mousewheel scrolling, I'm guessing that that's an issue of different mouses having different scroll "speeds" (...)
Just to make sure you're not misunderstanding, the scrolling with the mousewheel between one level and another works fine. It's holding the middle mouse button/mousewheel and dragging the mouse to scroll horizontally that's a bit difficult to use, as well as scrolling by going near the edge of the screen when in d/k mode.
The click-and-drag live preview thing is actually something I've been thinking about for quite a while, and the only reason it isn't in is because I need to hook into DFHack to get it to anything approaching a usable state, so if I port this over to DFHack, that's definitely going in.
Updating tiles efficiently is also something that hooking into DFHack would be necessary for. Although, I have been toying around with a few ways of manually doing it, and if I work one out that works as well as I'd like, I'll definitely change the cursor code. But for now, I've optimized it some more.
If the issue with the scrolling (excluding the pan scrolling, which I'm working on updating) persists, then I'd love some more specific feedback so I can figure out what to change.
Hope you guys like this update! I did a bunch of stuff that should make everything run smoother from here on out, so it'll be easier to add in new stuff later on.