Note that the version 0.98 added a functionality to change the UI hotkeys as well, so the manual changes shown in the video are no longer required.
Here are the quick and easy steps to change your control interfance hotkeys (those are the bottom right corner for units and buildings):
ALWAYS MAKE A BACKUP OF THE FILES YOU ARE EDITING (that is, make a copy of the original, if something goes wrong, replace the corrupted/FUBAR file by the original + it is possible the game will not patch over modified MPQ files)
Note: make sure you use a folder name that does not include the patch version in it, here's why:
+ Show Spoiler +
User Clamps found out that if you create a backup folder that has the name of the latest patch inside it (e.g. "Base15343 - backup"), the SC2 client will use the "newer" (ie. backed up) files instead of the ones you modified. It might also be true with specific file(s), we haven't checked this. In any case, just rename the folder to something else => "backup" as always worked for me so far.
0- Make sure SC2 is closed!
1- Download Tiler's tool to customize hotkeys (don't forget to thank him! that's because of this tool that it gets easy to customize) here : http://sc2tools.ucoz.com/load/0-0-0-5-20 (v1.0.2)
[NB. Look up Tiler's lastest posts in this thread, as he updates his software faster than I can keep up linking it]
2- Open up SC2Tools.exe and click "Open from MPQ"
3- Make the changes you want by double-clicking the icon and then pressing the key you want it to be bound to.
NB. Make sure you pick different hotkeys for every "interface" you see, otherwise one hotkey will override the other (for instance : if you set "burrow" and "basic buildings" to Z, whenever you press Z with a Drone you will enter the buildings panel instead of burrowing)
4- Hit "Save to MPQ."
5- Click Exit, run SC2 and make sure you are using the "Standard" profile setting from the Hotkey tab in the Options.
6- ?????????????????
7- Profit
[a.k.a. manual procedure] Here's how to make manual changes to the files [all shown in the video above]:
0- Same as above.
1- Download the appropriate MPQ Editor for your OS here : http://www.zezula.net/en/mpq/download.html
2- Open up your localized version of the file patch-enUS.SC2Archive inside the latest patch directory (e.g. patch 10 = \StarCraft II Beta\Versions\Base15133\ ) and don't forget to set the filetype to " All Files (*.*) " otherwise you will see an empty directory.
3- Uncheck "Open the MPQ in read-only mode" and open the directory tree \Mods\Liberty.SC2Mod\enUS.SC2Data\LocalizedData
4- Right-click on GameHotkeys.txt and hit "Extract" => then select or create a directory different than the installation folder.
5- Open up the file with your favorite .txt editor and make the changes you want, then save.
6- Go back inside the MPQ Editor, right-click in the right area and select "Add file(s)".
7- Browse and select the GameHotkeys.txt you just modified, it "Yes" to replace and "ok/confirm" (don't remember which) on the next screen.
8- Close the MPQ Editor, run SC2 (again, make sure you use the Standard profile in hotkey settings) and enjoy 8D
FAQ
1. What are all those other hotkeys inside GameHotkeys.txt?
These are the hotkeys used by the SC2 client for all the different settings:
_NRS = Normal Right Sided (Standard for Lefties)
_GLS = Grid Left Sided (Grid)
_GRS = Grid Right Sided (Grid for Lefties)
_SC1 = Starcraft 1 (Classic)
Since Tiler's tool modifies the standard settings, that's the one you will have to use inside the game.
Note that _GLS and _GRS tags are absent from these specific files for one simple reason: they use a setting coded elsewhere (see question #2 for further details).
2. All I want to change out of the grid setting is the attack button, do I really have to change ALL the hotkeys?
[edit: actually, it might be possible, it just hit my mind, but I did not try it out yet, see the end of this question to find out what I'm talking about]
I wish I could have told you something to the likes of "of course not!", sadly, I can't. The only thing you can do switch these buttons without having to rebind everything else is by editing some other file manually. Follow the manual editing procedure above, but this time extract the 2_GridLeftSide.SC2Hotkeys (or 3_GridRightSide.SC2Hotkeys if you want to use the leftie settings) out of:
patch.SC2Archive\Mods\Core.SC2Mod\Base.SC2Data\UI\Hotkeys\
Open the file with a .txt editor, you should find something like this:
CommandButton04=T
CommandButton05=A
you can invert these keys or set any other key you prefer, BUT remember these will affect ALL the grid keys.
Now, here's what I thought could be possible to change only a few hotkeys out of the grid system. Again, follow the manual procedure and inside the GameHotkeys.txt file (from the \Mods\Liberty.SC2Mod\enUS.SC2Data\LocalizedData subdirectory) add the line:
Button/Hotkey/Attack_GLS=A
[or any other tag you need - DO NOT replace the current line code - cf. question #1 for all the tags and their meaning]
Do any additional change you want, save the file and replace the file in patch-enUS.SC2Archive
[not up-to-date as of v0.98 of SC2Tools] 3. What if I want to change hotkeys not supported by Tiler's tool, such as: camera location saving (F2-F4), select all warp gates or anything else?
This is shown in the video guide, you will have to follow the manual procedure and open the same file as usual (patch-enUS.SC2archive or your localized version), although this time open up the following subdirectory: \Mods\Core.SC2Mod\enUS.SC2Data\LocalizedData.
Then extract, edit, save and replace...as usual.
The camera saving and recalling are those entries:
+ Show Spoiler +
These are my own settings, I didn't bother editing them:
UI/Hotkey/CameraSave0=Control+F2
UI/Hotkey/CameraSave1=Control+F3
UI/Hotkey/CameraSave2=Control+F4
UI/Hotkey/CameraSave3=Control+F5
UI/Hotkey/CameraSave4=Control+F6
UI/Hotkey/CameraSave5=Control+F7
UI/Hotkey/CameraSave6=Control+F8
UI/Hotkey/CameraSave7=
[...]
UI/Hotkey/CameraView0=F2
UI/Hotkey/CameraView1=F3
UI/Hotkey/CameraView2=F4
UI/Hotkey/CameraView3=F5
UI/Hotkey/CameraView4=F6
UI/Hotkey/CameraView5=F7
UI/Hotkey/CameraView6=F8
UI/Hotkey/CameraView7=
Make sure you don't use conflicting hotkeys, F1 and F9 are used elsewhere!
UI/Hotkey/CameraSave0=Control+F2
UI/Hotkey/CameraSave1=Control+F3
UI/Hotkey/CameraSave2=Control+F4
UI/Hotkey/CameraSave3=Control+F5
UI/Hotkey/CameraSave4=Control+F6
UI/Hotkey/CameraSave5=Control+F7
UI/Hotkey/CameraSave6=Control+F8
UI/Hotkey/CameraSave7=
[...]
UI/Hotkey/CameraView0=F2
UI/Hotkey/CameraView1=F3
UI/Hotkey/CameraView2=F4
UI/Hotkey/CameraView3=F5
UI/Hotkey/CameraView4=F6
UI/Hotkey/CameraView5=F7
UI/Hotkey/CameraView6=F8
UI/Hotkey/CameraView7=
Make sure you don't use conflicting hotkeys, F1 and F9 are used elsewhere!
The Select All Warpgates hotkey is called "WarpIn" and if you want to change any other interface hotkey, this is where you will have to look up.
4. I have my own hotkeys from previous patches, how do I transfer them? / How do I transport my hotkeys to future patch versions?
If you have some old hotkey settings, I strongly recommend that you do them over as the content of the GameHotkeys.txt is not the same as the specific content of the old GameStrings.txt (that is: if you just copy-paste, there will be discrepancies, probably nothing major, but don't take any chance)
In the future, if the GameHotkeys.txt file is stable (that is: if it does not change), all you will have to do is manually replace it inside the .SC2Archive with your previous patch file. Just look up this thread whenever a new patch will come out to find out what to do (of course, you can check the files yourself).
5. What's up with GameStrings.txt file and placing it in the installation directory?
For an unknown reason, it is no longer possible to have files overwrite archived files by simply placing them in the installation folder like we used to. That's why we have to deal with the MPQs.
As for GameStrings.txt => this file no longer contains the game hotkeys, they have been moved to another file called GameHotkeys.txt (although they are located at the same place, and just like GameStrings.txt, there are two of them!)
6. Is this legal?
The golden rule with any law is that it is subject to interpretations, otherwise judges would be out of job. Of course the license to which you had to agree when installing the SC2 beta has provisions against tinkering or reverse engineering any of the game files or functionality.
Nevertheless, modifying hotkeys mean simply tinkering with readily available settings of the game and as you can read in http://www.teamliquid.net/forum/viewmessage.php?topic_id=121072 :
UI/Hotkey adjustments: They are not planning on having a fully customizable UI but they will have customized hotkeys. For advanced players, they can even open a textfile and edit each individual hotkey.
If you consider yourself an advanced player, go ahead, open a textfile and edit each individual hotkey...just like any WC3 noob could do for years.
7. I have tried to use [insert some keyboard key] and it would not work - HALP!!
Not all keyboard keys are supported by Tiler's tool, you will have to use the manual procedure if you want to use anything not supported. You can look up all the available keys in the file GameStrings.txt => the one located in the \Mods\Core.SC2Mod\enUS.SC2Data\Localized Data\
Note that you will have to use the key value BEFORE the equal sign, e.g. Key/NumPad0=Num Pad 0
And remember! If you set hotkeys that are used for something else (while both being "available" at the same time), one hotkey will override the other. For e.g. I tried to set my "select larvae" to "5", but that was used by the entry UI/Hotkey/ObservePlayer4 and my manually changed "select larvae" would not work. What I did to fix this is that I moved the entry at the end of the file containing "select larvae" so that the later would load BEFORE the ObservePlayer4.
One last thing, there are some keys on non-US English keyboards that are considered dead, that is: they require the use of shift/ctrl/alt to be activated. There are also reports of some keys not working at all (even if not dead) and hard coded inside SC2, this might be because of language used for the keyboard (ie. even if you use a non-US standard keyboard, if you use the US English language for it, it might be working).