0
votes

I want a trilingual English-French-German keyboard with the Dvorak layout on Windows 7. I made it myself with the Microsoft Keyboard Layout Creator v. 1.4. For some letters I have to assign five variants (e, é, è, ê, ë plus the capital versions). Microsoft Keyboard Layout Creator only allows Ctrl-[key] and Alt-Ctrl-[key] to make alternate characters (not Alt-[key], unfortunately). I had no choice but to use the Ctrl-[key] sequence to produce a lot of keys.

In almost every program (e.g. Firefox) the keyboard has priority over program-defined shortcuts, so that if Ctrl-u is a defined key on my keyboard, the Firefox shortcut with Ctrl-u is frozen. This is what I want in Microsoft Word 2010. But even if I delete the Word 2010 shortcuts in File > Options > Customize Ribbon > Keyboard Shortcuts Customize, Word still has control over the Ctrl-[key] sequence. That is, if I kill the Ctrl-f (find) shortcut in Word, and then press Ctrl-f, nothing will happen: find will not open and my Keyboard assigned Ctrl-f character is not printed.

How can I give priority to my custom-defined characters over Word's Ctrl shortcuts?

1

1 Answers

0
votes

Your best bet is probably going to be using AutoHotKey to do your layout mappings. AHK basically monitors the keyboard buffer at the OS level, so it is able to intercept and correct keystrokes before the other programs can react to them. I can confirm that Ctrl+F in AHK does overwrite the keyboard shortcuts in Word 2010.

Some sample AHK code:

^f::Send {U+00C6}   ;Ctrl+F sends Æ
!f::Send {U+00C7}   ;Alt+F sends Ç
!^f::Send {U+00E8}  ;Ctrl+Alt+F sends è
!^+f::Send {U+00C8} ;Ctrl+Alt+Shift+F sends È

^ intercepts a Ctrl keystroke, ! intercepts Alt, and + intercepts Shift, and they can be combined. The {U+xxxx} corresponds to the Unicode number for the given character.

Using this method allows you to keep your keyboard mapping in a simple txt file (easy to backup or transfer to another computer). It also overrides shortcuts in all programs, so you won't have to re-adjust the shortcuts for each new program you use.