User:Dart Raiden/Keyboard layout

From Miranda NG
Jump to navigation Jump to search
This page contains changes which are not marked for translation.

This page describes how the so-called "autokeyboard" feature works in TabSRMM. The feature is sometimes also known as "auto locale". The purpose of this feature is to remember keyboard layouts on a per contact basis. This is useful for people who need multiple keyboard layouts for chatting with different contacts. If you do not need such a feature, it is best to disable it, which is also the default setting.

Technically, this is not a transliteration-type of keyboard handling. It simply changes the keyboard layout when the active message session (tab or window) changes. Also, only installed keyboard layouts can be used and you must use the standard methods to change the keyboard layout (either the language bar or one of the system-defined keyboard shortcuts, typically Alt+⇧ Left Shift).

First, to enable or disable this option navigate to Message sessions → Tabs and layout where you will find it in the last group (Miscellaneous options) as Remember and set keyboard layout per contact.

How to tell whether the feature is enabled or disabled

When the feature is enabled, TabSRMM will show a 2 or 3 letter keyboard layout identifier on the second status bar panel (for example "EN" or "ENG" for an English keyboard layout). This keyboard layout identifier will be absent when the feature is disabled, because it will always be the same as shown in the Windows language bar.

Note
The actual display depends on which operating system TabSRMM is running. On Windows Vista and later, it will use IETF language tags (e.g. en_US for us-english keyboard layout) while on Windows XP, the ISO scheme will be used.

This option also works in group chats.

Option disabled

When the option is disabled, TabSRMM will not touch the keyboard layout at all. Whenever you open a new message session or switch from one session to another one, the currently active keyboard layout will stay active. You can change keyboard layouts using the language bar or system-wide keyboard shortcuts and such a change will apply to the entire Miranda process and all its open windows (as usual when using the Windows language bar).

Option enabled

When the feature is enabled, TabSRMM will try to save the active keyboard layout on a per contact base. When you change the keyboard layout while a message tab is active, TabSRMM will notice this and save the new layout to the contact's database record. Whenever you switch to a tab or activate a message window, the keyboard layout which had previously been saved for a contact will be activated. If no keyboard layout was ever saved for a contact, which is typically for new contacts or contacts for which you never had a chat window open, TabSRMM will do one of the following things, depending on the value of the Message Sessions → Advanced tweaks → Automatic keyboard layout option:

  • Load the system default keyboard layout when this advanced tweak is set to OFF. This layout will then be saved for the new contact. This is typically the keyboard layout you have configured in Windows regional and language options as your default keyboard.
  • If the advanced tweak is set to ON, TabSRMM will keep and save the currently active keyboard layout for the new contact.

Possible problems

The only known issue (which is almost impossible to solve) is a situation where you change your default keyboard layout for whatever reason. Contacts which have a layout assigned from a previous session will activate this when you open them again. Now, if the saved layout was your old default keyboard layout, you will end up with a situation where you'll need to re-configure the keyboard layout for each contact in order to reflect your new default keyboard layout. This situation should be rare though.

Database key where TabSRMM stores the keyboard layout

The keyboard layout is saved under Tab_SRMsg/locale for each contact. There is no global setting. It is a unicode string value with a length of 8 characters and reflects the Windows API representation of a locale identifier.