Layout-switching in the Console

The command loadkeys can be used to set a new layout. The following outline explains how to implement such a mechanism in dCore, specifically how to make the necessary files available.

Installing

  • Import and load the kbd package, providing 'loadkeys'. This extension is to be made persistent by adding it to 'sceboot.lst'.
  • Import and load the console-data package. This extension is only used in an ephemeral way and can be removed afterwards.

Storing the key-map-files

The necessary key-map files are stored away and made persistent.

  • Create a directory to store the key-map files in, e.g. '/opt/sys/keymaps/', and make it the working directory.
  • In a console (virtual TTY, accessed by Ctrl+Alt+F#), sudo loadkeys us should output “/usr/share/keymaps/i386/qwerty/us.kmap.gz”. Use dumpkeys > us.keymap to produce an appropriate key-map file.
  • Determine your keyboard layout by sudo loadkeys <LAYOUT>, substituting some desired key-map code (likely some file name in '/usr/share/keymaps/', probably under 'i386/qwerty/'). Use dumpkeys > <LAYOUT>.keymap to produce an appropriate key-map file.

Hint: if you should have loaded a non-functional keyboard layout, use the arrow-up key to get back to the line loading the US-layout.

Notes

  • The naming scheme remains a bit hazy. The Swiss-German layout, for instance, may well be loaded by 'loadkeys ch' but the command does not produce any output. Indeed, there is no file 'ch*' at all but instead one for 'sg_latin1'. YMMV. In the end, the file names do not matter as a new key-map file for local use is generated anyways.

Testing

Loading any such key-map with loadkeys should switch keyboard layout, e.g. sudo loadkeys /opt/sys/keymaps/us.kmap.

Warning about log-in prompt

The man-page of loadkeys explains a possible side-effect of changing the keyboard-layout in the console. “Note that because the changes affect all the virtual consoles, they also outlive your session. This means that even at the login prompt the key bindings may not be what the user expects.”

Persistence

Add the name of the directory, e.g. “opt/sys/keymaps” to '.filetool.lst' and issue backup.

Personalisation

Standard layout

In order to specify a standard layout for the console, add the following to '~/.profile'.

~/.profile:
sudo loadkeys <KMAP>

The US-keyboard layout is used as default if nothing else is specified so this step can be omitted if that layout should be used by default.

Aliases

In order to quickly switch between layout, add something like the following to '~/.ashrc'.

~/.ashrc:
alias us='sudo loadkeys /opt/sys/keymaps/us.kmap'
alias <CODE>='sudo loadkeys <KMAP>'

Keyboard Layout - Tinycore way

  1. Download http://tinycorelinux.net/6.x/x86/tcz/kmaps.tcz and save it in the sce dir as kmaps.sce
  2. Add kmaps to sceboot.lst
  3. Add your layout to the boot options on your bootloader, for example kmap=qwerty/it

A list of available keyboard codes can be seen in the content list of kmaps.tcz.

Print/export
QR Code
QR Code dcore:keyboard_layout_in_console (generated for current page)