விசைபலகை இடுவெளியை மாற்றுதல்

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Keyboard layout switching and the translation is 39% complete.
Outdated translations are marked like this.

விசைப்பலகை இடுவெளி செயலிக்கு அனுப்பக்கூடிய வரியுருக்களை பொருத்தமான விசைப்பலகையின் வருடல் குறியீடுகளுடன் ஒன்றினைக்கிறது.

QWERTY மற்றும் QWERTY ஆல்லாத விசைப்பலகைகளையும் ASCII தொகுதிக்கு வெளியே உள்ள வரியுருக்களையும் ஆதரிக்க பொருத்தமான விசைப்பலகை இடுவெளி தேவைப்படுகிறது.

இதை தவிர விசைப்பலகை இடுவெளிகள் பல சிக்கலான உருமாற்றங்களையும் செய்யும். எடுத்துக்காட்டாக, செயலற்ற விசைகள் எந்த வரியுருக்களையும் வெளியிடாது எனினும் இவை அடுத்து வரும் விசைகளின் வெளியீட்டை திருத்தவல்லது.

உரை முறை

OpenRC

பொருத்தமான விசைபடத்தை மதிப்புகளாக /etc/conf.d/keymaps இல் உள்ள keymap மாறிக்கு அமைப்பதன் மூலம் முன்னிருப்பு முனைய விசைப்படத்தை அமைக்கலாம். விசைப்பட மதிப்புகள் /usr/share/keymaps இல் வரையறுக்கப்பட்டுள்ளது. பெரும்பாலான பயனர்கள் /usr/share/keymaps/i386/qwerty/ இல் உள்ள மதிப்புகளை பயன்படுத்துவர். விரும்பினால், extended_keymaps மாறிக்கு மதிப்புகளாக /usr/share/keymaps/i386/include போன்ற பொருத்தமான include அடைவை அமைக்கவும். எடுத்துக்காட்டாக, extended_keymaps="euro2" என அமைப்பதன் மூலம் யூரோ(€) மற்றும் சென்ட்(¢) வரியுருக்களை Alt-Gr விசையுடன் முறையே E மற்றும் C அழுத்தி உள்ளிடலாம்.

கோப்பு /etc/conf.d/keymapsஎடுத்துக்காட்டு உள்ளமைவு
keymap="us"
extended_keymaps=""

இறுதியாக மாற்றங்களை செயல்படுத்த keymaps ஐ மீண்டும் துவக்கி பின் அதை துவக்க ஓடுநிலையில் சேர்க்கவும்:

root #rc-service keymaps restart
root #rc-update add keymaps boot

ASCII அல்லாத வரியுருக்களை முனையத்தில் காண விரும்பினால் நீங்கள் /etc/conf.d/consolefont கோப்பை திருத்தி அதில் எழுத்துருவை மாற்ற வேண்டும்:

கோப்பு /etc/conf.d/consolefontசிரிலிக் எழுத்துருக்கான எடுத்துக்காட்டு உள்ளமைவு
consolefont="cyr-sun16"

consolefont ஐ மீள்துவக்கி பின் அதை துவக்க ஓடுநிலையில் சேர்க்கவும்:

root #rc-service consolefont restart
root #rc-update add consolefont boot

தனிப்பயனாக்கப்பட்ட விசைபடம்

தனிப்பயனாக்கப்பட்ட விசைபடத்தை உருவாக்க முதலில் /usr/share/keymaps இல் கொடுக்கப்பட்டுள்ள விசைப்படங்களை பார்க்கவும்:

user $vi <keymap file>.map
user $gzip <keymap file>.map
root #mv <keymap file>.map /usr/share/keymaps/<some directory>

தனிப்பயனாக்கப்பட்ட விசைபடத்திற்கான எடுத்துக்காட்டு கீழே கொடுக்கப்பட்டுள்ளது. இது அமெரிக்க ஐக்கிய நாடுகளின் QWERTY விசைபடத்தை ஒத்து இருப்பினும் முன்கீறல் மற்றும் மேற்கோள்குறி மட்டும் இடம் மாறியுள்ளது:

கோப்பு /usr/share/keymaps/i386/qwerty/swap_slash_apostrophe.map.gzவிசைபடத்திற்கான எடுத்துக்காட்டு
include "us.map"
 
keycode  40 = slash            question
keycode  53 = apostrophe       quotedbl
எச்சரிக்கை
விசைக்குறிகள் முறைமைக்கு முறைமை மாறுபடலாம்.

விசைகளுக்கு ஒதுக்கியுள்ள விசைக்குறிகளை கண்டறிய dumpkeys இன் வெளியீட்டை காணவும்:

user $dumpkeys -l

மேலுள்ள கட்டளையை கொண்டு விசைக்கான விசைக்குறியை கண்டறிய முடியவில்லையெனில் இதை இயக்கவும்:

user $showkey

இப்போது விசையை அழுத்தினால் அதற்கான விசைக்குறியை காட்டும். முடிந்ததும் சிறிது நேரம் காத்திருக்கவும். சில வினாடிகள் கழித்து showkey தானியக்கமாக நின்றுவிடும்.

systemd

systemd இதற்கு /etc/vconsole.conf கோப்பை பயன்படுத்துகிறது. இது முனைய எழுத்துரு மற்றும் விசைப்பலகை இடுவெளி அமைப்புகள் என இரண்டையும் கொண்டுள்ளது எனினும் OpenRC இல் காணப்படும் மேம்பட்ட அமைப்புகள் இதில் இல்லை. OpenRC இல் ஆதரிக்கப்படும் மாறிகள் இங்கும் பொருந்தும்.

கோப்பு /etc/vconsole.confஎடுத்துக்காட்டு அமைப்புகள்
KEYMAP=pl2
FONT=LatArCyrHeb-16

X11

அண்மைக்கால X11 செயலிகள் பொதுவாக x11-libs/libxklavier ஐ பயன்படுத்துகிறது ("klavier" என்றால் செருமனி மொழியில் "விசைப்பலகை" என்று பொருள்). இதை setxkbmap ஐ பயன்படுத்தி உள்ளமைக்கலாம். மேலும் மெய்நிகர் முனையங்கள் ஆதரிக்கும் அளவை காட்டிலும் அதிக அளவிலான விசைப்பலகை இடுவெளி தொகுதிகளை X11 ஆதரிக்கிறது.

முறையான பணித்தள சூழல் அதன் விசைப்பலகை இடுவெளி மேலாண்மையை அதுவே கவனித்து கொள்ளும் என்பதை நினைவில் கொள்ளவும். மேல் குறிப்பிட்டுள்ள செயலிகளை நேரடியாக பயன்படுத்த வேண்டிய தேவை இல்லை எனினும் முறிந்த விசைப்பலகை இடுவெளி மேலாண்மையை சரிசெய்வதற்கு இவை உதவியாக இருக்கும்.

K பணித்தள சூழல் (KDE) பிளாசுமா

System Settings ஐ திறந்து Input Devices கூறு இருக்கும் இடத்தை நோக்கி செல்லவும்.

To make additional languages available in the SDDM login manager, follow instructions on adding custom keymap.

Generic desktop environment

Edit ~/.xprofile and call setxkbmap from there or setup the keyboard in Xorg configuration file (see below for examples).

குறிப்பு
Recent versions of GNOME 3 do not use x11-libs/libxklavier any more therefore this might not work at all or likely get overridden by GNOME. Similarly any other desktop environment might also override the x11-libs/libxklavier configuration as part of the initialization or layout change.
எச்சரிக்கை
~/.xprofile is a non-standard file that is sourced only when logging in via a display manager that supports it (tested only on GDM, LightDM, LXDM and SDDM) and it might be distribution specific although all common distributions seem to support this file.

Generic X11

Using setxkbmap

These changes are non-permanent and will persist only as long as the user does not restart X11. Naturally the command can be called from a startup script to set the appropriate parameters on every start of the X server.

இப்போதுள்ள உள்ளமைவை காண்பதற்கு:

user $setxkbmap -query

ஒரு விசைப்பலகை இடுவெளியை அமைத்தல்:

user $setxkbmap lv

விசைப்பலகை இடுவெளியோடு அதன் திரிபு மற்றும் வடிவத்தையும் அமைத்தல்:

user $setxkbmap lv apostrophe -model logiultrax

இரண்டு விசைப்பலகை இடுவெளியை விசைப்பலகை மாற்றத்தை அறிவிப்பதற்கு ஒளி உமிழ் இருமுனையத்தை (LED) ஐ கொண்டு அமைத்தல்:

user $setxkbmap -layout us,ru -option grp:shifts_toggle -option grp_led:caps

விசைப்பலகை உள்ளமைவு விருப்பத்தேர்வுகளை பற்றிய முழு தகவல்களை அறிந்துகொள்ள xkeyboard-config கையேட்டை படிக்க பரிந்துரைக்கப்படுகிறது:

user $LESS=--chop-long-lines man xkeyboard-config

Finding the supported layouts and variants or values of other xkb properties does not appear to be possible with this application, although most of them are listed in the /usr/share/X11/xkb/rules/base.lst file. To get the most complete list seems to be possible only by examining other files in /usr/share/X11/xkb/. For sake of sanity, it is advised to use of a proper desktop environment with its own keyboard layout management.

Using system-wide configured layouts and shortcut

This method is recommended for configurations without desktop environments, in other words just X11 with a window manager. Since Gnome removed the ability to change the Keyboard layouts in GDM using the gnome-control-center, GDM also relies on this method on systems without systemd. Create the 10-keyboard.conf file and configure it with the appropriate keyboard settings. Create the directory /etc/X11/xorg.conf.d if it does not exist.

கோப்பு /etc/X11/xorg.conf.d/10-keyboard.confExample for US and brazilian layouts
Section "InputClass"
    Identifier "keyboard-all"
    Driver "evdev"
    Option "XkbLayout" "us,br"
    Option "XkbVariant" ",abnt2"
    Option "XkbOptions" "grp:shifts_toggle,grp_led:scroll"
    MatchIsKeyboard "on"
EndSection

The example above configures US and Brazilian keyboard layouts with Left Shift+Right Shift as shortcut to alternate between them. Brazilian layout is signalled by Scroll Lock LED on the keyboard.

குறிப்பு
When using a Cyrillic language layout and the keyboard has “Windows®” keys, it may be necessary to add responsive ",winkeys" to XkbVariant option.
Additional configuration possibilities

There are a number of variants and options available which can be used while configuring the keyboard mappings. Most of those can be found in the /usr/share/X11/xkb/rules/base.lst file.

For example, the US layout with possibility to write some international characters can be configured by using the variant altgr-intl:

கோப்பு /etc/X11/xorg.conf.d/10-keyboard.confAltGr-international variant for US layout
...
    Option "XkbLayout" "us,br"
    Option "XkbVariant" "altgr-intl,abnt2"
...

Right Alt is then used as a modifier for typing international characters.

Xorg provides the option to type international and various symbol characters by composition - which means by pressing compose key followed by a sequence of characters. To enable composition add the compose:<compose_key> option:

கோப்பு /etc/X11/xorg.conf.d/10-keyboard.confEnabling key composition
...
Option "XkbOptions" "grp:shifts_toggle,grp_led:scroll,compose:sclk"
...

The compose:sclk option above configures Scroll Lock as compose key. With this setting:

  • Press Scroll Lock then type 'oo' to get degree sign '°'
  • Press Scroll Lock then type 'oc' to get copyright sign '©'
  • Press Scroll Lock then type ':)' to get smiling face '☺'
  • Press Scroll Lock then type '^2' to get superscript 2 ('²')
  • Press Scroll Lock then type '_2' to get subscript 2 ('₂')
  • Press Scroll Lock then type 'di' to get diameter sign '⌀'

... and many more. The /usr/share/X11/locale/compose.dir file lists all possible composition sources.

Enhancing an X keyboard layout

This is necessary when more far-reaching changes have to be made to the keyboard layout, such as adding key assignments, or adding actions to function keys. Since such changes are actually enhancements to the source files of a package, it is recommended to use the User patching mechanism so that these amendments are preserved when the package is next updated.

The fundamentals

The relevant Gentoo package is x11-misc/xkeyboard-config. Configuring a keyboard under X is more complicated than doing the same for a virtual console. The pertinent configuration files can be found in /usr/share/X11/xkb in these subdirectories:

keycodes
These files associate key codes with symbolic names - it is unlikely that anyone wants to change this.
geometry
This is the physical shape of the keyboard, used by some software for drawing diagrams of it - it is also unlikely that anyone wants to change this.
types
The files here create "types". Used in a key declaration, a type specifies which combinations of shift keys can be used with the key.
symbols
These files specify the actual key assignments.
compat
The files here specify "actions" (such as switching to a virtual terminal), giving them names, which can be assigned to keys.
rules
These files, given parameters such as the keyboard type, and a language, activate the appropriate specifications in the other directories.

A fuller description of the files in these directories can be found at An Unreliable Guide to XKB Configuration by Doug Palmer. It is a lot better than its name suggests. Further documentation can be found at xkeyboard-config's home page at freedesktop.org.

Xkb gives keys names like "<AC01>" which means "key in the Alphanumeric area, in row C (i.e. third row from the bottom, the row CapsLock is on), and key number 01, the first key at the left of the row". This key is A in an English layout. Keys in other areas have other names, such as "<FK05>" for F5, or "<LCTL>" for the left control key.

Adding key assignments

As an example, this section will enhance the British English keyboard layout such that typing a, o, or u with AltGr will generate the German umlaut letters ä, ö, and ü. It should also do the Right Thing for the upper case versions. The keys to enhance are A (<AC01>), O (<AD09>) and U (<AD07>). (The character ß is already assigned to AltGr+S.)

The names of the umlauted letters in xkb are "adiaeresis" and so on. These names can be found in the file /usr/include/X11/keysymdef.h, though the leading "XK_"s have to be removed to get the names.

Identify the right file in the symbols directory. Most of these files are named as two letter country codes (such as gb for Great Britain) so guess the one which matches the keyboard layout currently selected in X. In this example, symbols/gb is enhanced.

With the information above, create new entries by copying the existing scheme in symbols/gb. In this example, these entries should be added into the section called "basic". From its content, it is easy to guess that the four items in the braces and brackets within the entry for each key are for regular (without other key combinations), Shift, AltGr, and Shift+AltGr respectively:

கோப்பு /usr/share/X11/xkb/symbols/gbTypical key entry
key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth]	};

After making the additions, the section looks like this:

கோப்பு /usr/share/X11/xkb/symbols/gbExample for enhancing the British English keyboard
default  partial alphanumeric_keys
xkb_symbols "basic" {
 
    // Describes the differences between a very simple en_US
    // keyboard and a very simple U.K. keyboard layout defined by
    // the SVR4 European Language Supplement and sometimes also
    // known as the IBM 166 layout.
 
    include "latin"
 
    name[Group1]="English (UK)";
 
    key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth ]	};
    key <AE03>	{ [         3,   sterling, threesuperior,    sterling ]	};
    key <AE04>	{ [         4,     dollar,     EuroSign,   onequarter ]	};
 
    key <AC11>	{ [apostrophe,         at, dead_circumflex, dead_caron]	};
    key <TLDE>	{ [     grave,    notsign,          bar,          bar ]	};
 
    key <BKSL>	{ [numbersign, asciitilde,   dead_grave,   dead_breve ]	};
    key <LSGT>	{ [ backslash,        bar,          bar,    brokenbar ]	};
 
// Keys inserted by ACM, 2015-10-23.
    key <AD07>  { [         u,          U,   udiaeresis,   Udiaeresis ] };
    key <AD09>  { [         o,          O,   odiaeresis,   Odiaeresis ] };
    key <AC01>  { [         a,          A,   adiaeresis,   Adiaeresis ] };
// End of insertion 2015-10-23
    include "level3(ralt_switch_multikey)"
};

Having saved this file, restart X Windows. A typical desktop environment, XFCE, re-reads the above configuration files each time it starts. Should there be errors, error messages will be written to the normal stderr - if X Windows is started from the command line, stderr will be the virtual terminal it was started from.

Adding actions to function keys

As an example, add the actions "switch to virtual terminal n" (where n > 12) to the function keys F1 - F12 when Ctrl, Alt, and Shift are all selected. The same effect should also occur when AltGr and Fn are selected.

First, search for the file in the symbols directory which handles the existing assignments for the Function keys. This file is symbols/srvr_ctrl. The entry in this file for F1, which is intended to be modified, is:

கோப்பு /usr/share/X11/xkb/symbols/srvr_ctrlExisting entry for F1
key <FK01> {
	type="CTRL+ALT",
	symbols[Group1]= [ F1, F1, F1, F1, XF86_Switch_VT_1 ]
    };

There are two things to note with this entry:

  • It is of type "CTRL+ALT"; it thus takes the standard four shift key settings with Shift and AltGr, plus a fifth setting of Ctrl+Alt. Since the goal is to use Ctrl+Alt+Shift, and there is no suitable existing type, a new one needs to be created.
  • The "action" XF86_Switch_VT_1 is just a defined symbol in the xkb system. Its semantics are given to it by an entry in a file in the compat directory, namely compat/xfree86. There is no symbol XF86_Switch_VT_13 (or higher) - instead, steal the otherwise unused existing symbols F13, F14, ..., F24.
Creating the new type CTRL+ALT+SHIFT

Having located "CTRL+ALT" in types/pc, it is easy enough to copy it, rename the copy to "CTRL+ALT+SHIFT" and extend this to allow the modifier key combination Ctrl+Alt+Shift. The result looks like this:

கோப்பு /usr/share/X11/xkb/types/pcCreating a new type
type "CTRL+ALT+SHIFT" {
        modifiers = Control+Alt+Shift+LevelThree;
        map[None] = Level1;
        map[Shift] = Level2;
        map[LevelThree] = Level3;
        map[Shift+LevelThree] = Level4;
        map[Control+Alt] = Level5;
        map[Shift+Control+Alt] = Level6;
        preserve[Shift] = Shift;
        preserve[Shift+LevelThree] = Shift;
        level_name[Level1] = "Base";
        level_name[Level2] = "Shift";
        level_name[Level3] = "Alt Base";
        level_name[Level4] = "Shift Alt";
        level_name[Level5] = "Ctrl+Alt";
        level_name[Level6] = "Ctrl+Alt+Shift";
    };
Activating the symbols F13, ..., F24

The symbol XF86_Switch_VT_1 is swiftly located in compat/xfree86. It is a simple matter to copy its form, creating assignments for the symbols F13, ..., F24. The definition for the first of these symbols, F13, in compat/xfree86 then looks like:

கோப்பு /usr/share/X11/xkb/compat/xfree86Assigning an action to a symbol
interpret  F13 {
        action = SwitchScreen(Screen=13, !SameServer);
    };

Analogous definitions for F14, ..., F24 should also be put into the file.

Amending the entries in symbols for keys F1, ..., F12

Now that the new type CTRL+ALT+SHIFT and definitions for the symbols F13, ..., F24 are defined, amend the key definitions for the function keys in symbols/srvr_ctrl. The one for F1 is mentioned below, analogous definitions also need to be inserted for the other function keys:

கோப்பு /usr/share/X11/xkb/symbols/srvr_ctrlRedefinition of function key
key <FK01> {
	type="CTRL+ALT+SHIFT",
	symbols[Group1]= [ F1, F1, F13, F1, XF86_Switch_VT_1, F13 ]
    };

After making these changes to types/pc, compat/xfree86, and symbols/srvr_ctrl, and restarting the X server, switching from X directly to virtual terminals 13 and above is now possible - provided that these have been configured in the /etc/inittab (or systemd equivalent) of course.

See also

  • Key repeat rate — controls how quickly a key press on the keyboard will repeat if the key is pressed and held for a period of time.