I'm just going to post this as I don't have the time to read through this thread
How to change key bindings:
There are two configuration files you need to edit.
...\Cyberpunk 2077\r6\config\inputUserMappings.xml
...\AppData\Local\CD Projekt Red\Cyberpunk 2077\UserSettings.json
I recommend opening these two files with Notepad++
Make sure you backup these two files before you edit them.
The file UserSettings.json contains all the key binds you would find in the game's settings menu. You can assign whichever key you want. Only change the key under "value" not "default value."
The key or mouse button must be in quotes and prefixed with IK_
Aside from the number keys and letters, some keys require the word name for the character on the key.
Such as:
Up
Down
Left
Right
Enter
Delete
End
Home
PageDown
PageUp
RShift
RControl
RightBracket
LeftBracket
Backspace
NumPad0...NumPad9
NumPeriod
Mouse4
Mouse5
Now lets take a look at inputUserMappings.xml
Entries (with a few exceptions, see below) in this file that contains the variable "overridableUI=" is found in UserSettings.json.
In other words, the key for each action listed in inputUserMappings.xml will be overridden by the key for that action found in UserSettings.json
Now there are a few entries in inputUserMappings.xml that contain an "overridableUI="
that is not found in UserSettings.json (don't try to add these to UserSettings.json), such as:
(Do not change these entries to match what is listed below, I edited these for the sake of space. Also, I copied these entries from the file I edited, so the keys won't match the defaults.)
<mapping name="CancelCharging_Button" type="Button">
<button id="IK_Delete" overridableUI="cancelCharge"/>
</mapping>
<mapping name="ApplyAndCloseQHackWidget" type="Button" >
<button id="IK_End" overridableUI="selectChoice"/>
</mapping>
<mapping name="PickUpBodyFromTakedown_Button" type="Button">
<button id="IK_End" overridableUI="dropCarriedObject"/>
</mapping>
<mapping name="BodyDrop_Button" type="Button">
<button id="IK_End" overridableUI="dropCarriedObject"/>
</mapping>
<mapping name="UI_MoveUp" type="Button" >
<button id="IK_Up" overridableUI="selectUpSecondary"/>
</mapping>
<mapping name="UI_MoveDown" type="Button" >
<button id="IK_Down" overridableUI="selectDownSecondary"/>
</mapping>
<mapping name="Apply_Button" type="Button" SIEJADependent="true" >
<button id="IK_End" overridableUI="selectChoice"/>
</mapping>
<mapping name="Cancel_Button" type="Button" SIEJADependent="true" >
<button id="IK_Delete" overridableUI="cancelSelection"/>
</mapping>
<mapping name="ExitWheel_Button" type="Button" SIEJADependent="true" >
<button id="IK_RightMouse" overridableUI="exitRadial"/>
</mapping>
<mapping name="SelectWheelItem_Button" type="Button" SIEJADependent="true" >
<button id="IK_LeftMouse" overridableUI="selectInRadial"/>
</mapping>
<mapping name="StopDeviceControl_Button" type="Button" >
<button id="IK_Delete" overridableUI="stopDeviceControl"/>
<mapping name="Choice1" type="Button" >
<button id="IK_NumPad1" overridableUI="choice1"/>
<mapping name="Choice2" type="Button" >
<button id="IK_NumPad2" overridableUI="choice2"/>
<mapping name="Choice3" type="Button" >
<button id="IK_NumPad3" overridableUI="choice3"/>
<mapping name="Choice4" type="Button" >
<button id="IK_NumPad4" overridableUI="choice4"/>
The "overridableUI=" for these actions are not found in the UserSettings.json. So whichever key you change them to will be the key the game will use.
It is worth noting that whichever keys are assigned to the last four; Choice1 thru Choice4, will be the key you will be prompted to press to perform most actions (the "Use" or "Action" key as it is in most other games in this genre).