キー配列を変更する

キー配列を変更する方法です。
毎回忘れてしまうので、備忘録的に。


例によって、CentOSの例です。
参考のリンク先を自分用まとめです。。


設定ファイルは「/etc/sysconfig/keyboard」です。
「KEYTABLE」の値を書き換えると次回起動時に有効になります。


下の例だと101キーボードになっています。
106キーボードにしたい場合は「KEYTABLE="us"」を「KEYTABLE="jp106"」にします。

# cat /etc/sysconfig/keyboard 
KEYBOARDTYPE="pc"
KEYTABLE="us"


起動中のコンソールのキー配列を(一時的に)変更する場合は、
「loadkeys」コマンドを使います。


下は、106キーボードに設定を変える例です。

# loadkeys jp106
Loading /lib/kbd/keymaps/i386/qwerty/jp106.map.gz


昔のRedHatLinuxについて記述してあるものを見ると、
keytable というサービスが存在したようですが、
今は「/etc/rc.sysinit」で実行するように変わっているようです。(参考参照)


なので、「loadkeys」コマンドで変えてしまうのが良いようです。


ちなみに私が今回確認した環境の「/etc/rc.sysinit」は以下のようになっていました。
(参考にさせていただいた所と)同じ処理を行っているみたいですね。

    373 if [ -x /bin/loadkeys ]; then
    374  KEYTABLE=
    375  KEYMAP=
    376  if [ -f /etc/sysconfig/console/default.kmap ]; then
    377   KEYMAP=/etc/sysconfig/console/default.kmap
    378  else
    379   if [ -f /etc/sysconfig/keyboard ]; then
    380     . /etc/sysconfig/keyboard
    381   fi
    382   if [ -n "$KEYTABLE" -a -d "/lib/kbd/keymaps" ]; then
    383      KEYMAP="$KEYTABLE.map"
    384   fi
    385  fi
    386  if [ -n "$KEYMAP" ]; then
    387   if [ -n "$KEYTABLE" ]; then
    388     echo -n $"Loading default keymap ($KEYTABLE): "
    389   else
    390     echo -n $"Loading default keymap: "
    391   fi
    392   LOADKEYS=loadkeys
    393   if [ "${LANG}" != "${LANG%%.UTF-8}" -o "${LANG}" != "${LANG%%.utf8}" ]; then
    394         LOADKEYS="loadkeys -u"
    395   fi
    396   $LOADKEYS $KEYMAP < /dev/tty0 > /dev/tty0 2>/dev/null && \
    397      success $"Loading default keymap" || failure $"Loading default keymap"
    398   echo
    399  fi
    400 fi


今日はこんな所で。