How to reassign hotkeys?

Hi all! I just registered here so before everything else I’m saying Hello to everyone…:slight_smile:

First of all, I’m a 3ds max user (quite experienced I hope) and just started to learn blender. I have to use .blend files for certain purposes, but instead of just converting models from 3ds to blender I prefer to learn about this program and do everything here from the start. So excuse me when I’m comparing blender to 3ds.:rolleyes:

But, regrettably, the most confusing part for me is key bindings. Why? Well…

1.)I hope you don’t mind a little critics, everything below is just an IMO.
Using 3key combos for usual tasks (Ctrl+Alt+G/R/S for example, Ctrl+Alt+G is the hardest, buttons are quite far away from each other) while having 1 key for not so necessary ones (like G/R/S) is painful to use.

Side question:
Is there any way to restrict movement to one of the planes (like XY, ZX, ZY)? There is a way to do this in 3ds max (just point at the desired square between axes). I heard that is possible in Maya too, but is there anything like this in blender (at least as a plugin or something else)? In 3ds I spend 99% of the time in “user” view because I know exactly how something is moving, but in blender I have to use different views for operation in different planes (yes, I know about x/y/z buttons)

2.) I’m too attached to 3ds hotkeys since they’re already intuitive/reflective (or how it’s called when you don’t even know what button you should push, and you’re pushing right combination anyway).

So, because of these two things I’d like to ask: is there a way to change hotkeys in blender?
In 3ds it is possible to change every key, so I assumed it’s possible in blender but while searching for information about it I only got more confused…
On mediawiki.blender.org I found those (OLD) pages:
CommandLine
DefaultBkeymap
But wasn’t able to figure-out how to change default hotkey assignments anyway…
I kind of agree with this guy, he has many good points (at least IMO), like “Border Select” by default and most of other things (actually I want to reassingn hotkeys to 3ds default, and I really hope it’s possible…)

Please edit the source to change the hotkeys. The files you want to look in are space.c and toets.c. It is planned that the hotkeys would become easier to change in some time in future. Though it is not hard to maintain your own build if you can code a bit.

You can restrict translating, scaling, whatever to a plane in following ways:
Use “g,shift-x” to restrict grabbing on z-y plane in global space. If you hit shift-x twice, it is constrained on space defined by alt-space (also seen in header). Basically the rule is “<transformation hotkey>,shift-<axis not to transform>”.

If you hit for instance “s,x,x”, you constraint scaling to be on x axis of orientation set with alt-space yet again.

You can use alt-space while performing a transformation.

Before I start to DL source on dialup…
Let’s say I can only appropriately put this:
std::ifstream ifs;
std::string bind_what, bind_where;
ifs.open("./config/keys.cfg", std::ios_base::in);
if ( ifs )
{
while ( ifs >> bind_where >> bind_what )
{
pcinp->Bind( bind_where.c_str(), bind_what.c_str() );
};
ifs.close();
};

Will it be sufficient (but I think not)?

Here’s a quick look at space.c and toets.c: http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/space.c?rev=1.447&cvsroot=bf-blender&content-type=text/vnd.viewcvs-markup , http://projects.blender.org/viewcvs/viewcvs.cgi/blender/source/blender/src/toets.c?rev=1.96&cvsroot=bf-blender&content-type=text/vnd.viewcvs-markup

Note that those are not the only files where handling events can be found. I am not really experienced with event handling so I cannot say if your code snippet would work or not. Please note that the problem has been acknowledged and work will be done to make the system more reasonable.

Thank you for explanations! :slight_smile:
And that was fast.
I’m not a programmer myself (that example gave me a friend of mine, but he’s absent now), so now I have to think what will I do next… :frowning:

On a second thought… I will learn blender anyway, just because it’s OpenSource.