Jump to content

IL-2 Battle of Stalingrad: want Dvorak layout, program forces qwerty


Recommended Posts

Posted

I use the Dvorak layout on my computer.

 

I am running windows 10, and Dvorak is enabled through the operating system's language controls. In all applications except for IL2, even the few games I have, this is enough - the applications use the keyboard layout selected through the OS.

 

IL-2 still forces a qwerty layout.

 

So far I have tried remapping the keys through the registry. I have read that this takes effect on a "deeper" level, and so it should prevent applications from hijacking my layout preferences. While the registry remap took effect everywhere else, IL-2 still uses qwerty.

 

This is a major headache, since there are about 500 key commands to learn (okay, maybe a slight exaggeration), and when I pause the simulation to look up a key binding, the keys listed don't actually correspond to what I see on my keyboard.

 

Is there any way to make IL-2 use the Dvorak layout? I found some IL-2 input device configuration files, and I suspect that maybe the solution lies therein.

  • 4 months later...
Posted (edited)

I think I can answer this! I had the same problem with a different program ('byki express language learning' forcing QWERTY despite only DVORAK being installed/active in my windows and even with registry remap), and yours was the only post which came up in google. So after I (99%) solved it, I created an account here to share my solution, in the hope it will help others facing the same issue (DVORAK users having programs force QWERTY) whose Google search results are similarly bare.

 

This solution requires downloading the free scripting program autohotkey (www.autohotkey.com), which allows you to remap keys manually, either at a global level or in specific instances. The simplest way is to globally remap all alphabet keys as if they were in QWERTY to what they should be in DVORAK, even if you are only running DVORAK at windows level. This means that when your QWERTY-forcing program runs, the global autohotkey script will convert the QWERTY presses to their appropriate DVORAK keys on the fly, and you're in business - doing it at a superficial level and 'after the fact' rather than trying to block the QWERTY mapping at a 'deeper level'. Appropriate re-mappings are listed below- just copy and paste (or type out) the below into a notepad file, save and change the extension from .txt to .ahk (making it an autohotkey script), right-click it and find AutoHotKey in the Windows 'open with...' dialogue, to register the script with AutoHotKey. Then just run the script whenever you want to use your QWERTY forcing program.

 

a::a
o::r
e::.
u::g
i::c
d::e
h::d
t::y
n::b
s::o
-::[
'::-
,::w
.::v
p::l
y::f
f::u
g::i
c::j
r:: p (delete the space before the p, it's just to prevent it becoming a smiley)
l::n
/::z
=::]
[::/
]::=
\::\
;::s
q::'
j::h
k::t
x::q
b::x
m::m
w::,
v::k
z::;
 

(I've included a, m and \ for completeness, despite being the same in both layouts). This does everything except allow the QWERTY 'z' key to be mapped as the DVORAK semicolon ( ; ), because autohotkey uses colons and semicolons strangely- still haven't figured out how to do that one, but have left the last line (z::; ) in case someone better at this than me can figure it out. Hence my earlier comment that this fix works 99%- you can't map another key to be a semicolon, but you can remap semicolon to be another key (S in DVORAK), so you'll lose semicolon/colon functionality with the above script (which shouldn't matter too much if it's just for games).

 

It also means that you have to manually activate and de-activate the script when not in the QWERTY-forcing program, which can be annoying. A better option is to add the line

#IfWinActive *WINDOW_NAME*

 

Before the above remappings, replacing the asterisks and everything between them with the appropriate window's title bar content. This is the window title, not the .exe or program name; for example, to make the remapping only run in my language program BYKI Express 4 (executable name Byki4express.exe), I open the program, note that the main window's title bar just says 'Byki', and add a line at the start of the script so it looks like this

#IfWinActive Byki

a::a

o::r

(and so on...)

 

Strange that it doesn't use the executable name, but there you go. This will mean that while the script is active, it will only do the remappings in the QWERTY-forcing Byki window, and leave everything else (Firefox, Word, Explorer etc.) in normal DVORAK mapping. So in your case, find out what the IL-2 window title bar says, and stick that on the end of the line (e.g. "#IfWinActive IL-2 Sturmovik" , or experiment with the .exe name if the above approach fails), and you can just leave it running in the background. Autohotkey uses virtually nil system resources, and is also great for doing a bunch of other basic stuff you've always wanted Windows to do, but didn't have as a basic option (such as hot-swapping audio or video outputs).

 

I hope this makes sense and is helpful for you- let me know if it works, or if I haven't been clear in explaining any part. Good luck!

Edited by asterion500

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...