カテゴリー別アーカイブ: Linux

Apple Wireless Keyboard のキーコード (CentOS 6.3)

Apple Wireless Keyboard を CentOS 6.3 (Linux) で使用する」の補足です。

4. Apple Wireless Keyboard のキーコード (keycode)

CentOS 6.3 (64 bit) に Apple Wireless Keyboard を接続したときの、Mac 専用キーのキーコードを調べました。

4.1. キーコード (keycode) の取得

キーコードは "xev" アプリを使用して取得します。

取得例: コントロールキーを押したときのイベント情報

$ xev
...
KeyPress event, serial 44, synthetic NO, window 0x4600001,
    root 0x1c3, subw 0x0, time 6953593, (80,132), root:(991,1181),
    state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes:                                     
    XmbLookupString gives 0 bytes:                                   
    XFilterEvent returns: False

赤字がキーコード (keycode)、青字が発生イベントです。

4.2. xkb_keycodes の取得

現在使用している "xkb_keycodes" を確認します。

$ setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete+japan"        };
        xkb_symbols   { include "pc+jp(OADG109A)+inet(evdev)+terminate(ctrl_alt_bksp)"  };
        xkb_geometry  { include "pc(pc104)"     };
};

"xkb_keycodes" の値から、/usr/share/X11/xkb/keycodes/evdev がキーコードとして使用されていることが分かります。

/usr/share/X11/xkb/keycodes/evdev

// translation from evdev scancodes to something resembling xfree86 keycodes.

default xkb_keycodes "evdev" {
    minimum = 8;
    maximum = 255;

        # Added for pc105 compatibility
        <LSGT> = 94;

    <TLDE> = 49;
    <AE01> = 10;
    <AE02> = 11;
    <AE03> = 12;
    <AE04> = 13;
    ...

    ~ 以下、略 ~

4.3. Mac 専用キーのキーコード一覧

Apple Wireless Keyboard の Mac 専用キーのキーコード (keycode) 一覧です。
比較用に Happy Hacking Keyboard Lite 2 の発生イベントも参考として乗せています。

物理キー keycode 発生イベント
Apple Wireless Keyboard 【参考】 HHKB Lite 2
control 37 <LCTL> Control_L Control_L
command (左) 133 <LWIN> Super_L -
command (右) 134 <RWIN> Super_R -
option (左) 64 <LALT> Alt_L Alt_L
option (右) 108 <RALT> - Alt_R
caps 66 <CAPS> Eisu_toggle -
delete 22 <BKSP> BackSpace -
119 <DELE> - Delete
BS 22 <BKSP> - BackSpace
英数 130 <HNGL> Hangul_Hanja -
かな 131 <HJCV> Hangul -
半角/全角 49 <TLDE> - Zenkaku_Hankaku
無変換 102 <MUHE> - Muhenkan
変換 100 <HENK> - Henkan_Mode
eject 169 <I169> XF86Eject -

[ END ]

Apple Wireless Keyboard を CentOS 6.3(Linux)で使用する

CentOS が入っているデスクトップ PC では Happy Hacking Keyboard Lite 2 (以下、HHK) の日本語版を使っています。
もう 10年以上使っていて、黄ばみや手垢で見た目は残念なことになっていますが、そのコンパクトさと ESC キー / Control キーの配置から手放せずにいます。

20130211_01

ところが、、、
子供が生まれてから問題になったのが打鍵音です。
カチャカチャという音で子供が起きると奥様からクレームが上がり、子供が寝ているときは使用禁止となってしまいました。

そして始まったのが打鍵音が静かなキーボード探しです。
使わないときはしまえるように、コンパクトでワイヤレスであることを条件にしました。
キー配列は ESC キーはやむを得ないとして HHK に近いこと。
コンパクトなキーボードは特に、カーソルキーが他のキー配列を破壊しているものが多いように思えます。

そんな条件で探しまわっていると、なせが Apple Wireless Keyboard に行き着いてしまいました。。。

1. Bluetooth アダプタの設定

1.1. Bluetooth USBアダプタ GH-BHDA42

デスクトップ PC には Bluetooth が内蔵されていないため、Bluetooth アダプタも同時に購入しました。

選んだのはグリーンハウスGH-BHDA42、選定理由は Bluetooth 4.0 に対応したアダプタの中で一番安かったからです。

1.2. BlueZ のインストール

CentOS に限らず、Linux で Bluetooth アダプタを使用する (認識させる) 場合、BlueZ パッケージを使うのが現在では一般的です。

BlueZ がインストールされているか確認します。

# rpm -qa bluez
bluez-4.66-1.el6.x86_64

赤び~の環境では bluez-libs パッケージしかインストールされていませんでした。

# rpm -qa bluez
# yum list installed | grep bluez
bluez-libs.x86_64                      4.66-1.el6                       @anaconda-CentOS-201106060106.x86_64/6.0

bluez パッケージは yum からインストール可能です。

# yum install bluez

~ 略 ~

Transaction Summary
================================================================================
Install       7 Package(s)                                                     

Total download size: 1.1 M
Installed size: 3.2 M    

~ 略 ~

Installed:
  bluez.x86_64 0:4.66-1.el6

Dependency Installed:
  ...

Complete!

1.3. BlueZ の起動

BlueZ は "bluetooth" というサービス名で動いています。

残念ながら service コマンドからステータスを確認できないようなので、万が一動いていない場合は起動してください。

ステータス確認不可 (status オプションなし)

# service --status-all | grep bluetooth
使い方: /etc/init.d/bluetooth {start|stop}

サービス起動

# service bluetooth start
Bluetooth 装置を有効化中:

ついでに自動起動の設定も確認しておきます。

# chkconfig --list bluetooth
bluetooth       0:off   1:off   2:off   3:on    4:on    5:on    6:off

1.4. Bluetooth アダプタの認識

BlueZ が起動したら Bluetooth アダプタ (GH-BHDA42) を開いている USB ポートに差し込みます。

正しく認識したかどうかは "hciconfig" コマンドで確認可能です。

GH-BHDA42 未装着

# hciconfig -a

GH-BHDA42 装着後

# hciconfig -a
hci0:   Type: BR/EDR  Bus: USB
        BD Address: [BD アドレス]  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING PSCAN
        RX bytes:1030 acl:0 sco:0 events:38 errors:0
        TX bytes:1844 acl:0 sco:0 commands:38 errors:0
        Features: 0xff 0xff 0x8f 0xfe 0xdb 0xff 0x5b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
        Link policy: RSWITCH HOLD SNIFF PARK
        Link mode: SLAVE ACCEPT
        Name: '[ローカル名]'
        Class: 0x4a0104
        Service Classes: Networking, Capturing, Telephony
        Device Class: Computer, Desktop workstation
        HCI Version: 4.0 (0x6)  Revision: 0x1d86
        LMP Version: 4.0 (0x6)  Subversion: 0x1d86
        Manufacturer: Cambridge Silicon Radio (10)

「ローカル名」を変更したい場合は "name" オプションで指定します。

ローカル名の変更例

# hciconfig hci0 name [変更後のローカル名]

2. Apple Wireless Keyboard とのペアリング

2.1. bluetooth-wizard の起動

Bluetooth 機器とのペアリングは "bluetooth-wizard" を使用すると容易です。
"bluetooth-wizard" は GNOME Bluetooth パッケージに含まれています。

# rpm -qa gnome-bluetooth
gnome-bluetooth-2.28.6-8.el6.x86_64

(*) kdebluetooth というツールもありますが使ったことはありません。。。

bluetooth-wizard を起動します。

# bluetooth-wizard &

(*) root で起動していますが、一般ユーザでも問題なさそうです (未確認)

20130211_02

2.2. デバイス検索

Apple Wireless Keyboard の電源を入れてから、「はじめに」画面で「進む」ボタンを選択すると「デバイス選択」画面に遷移します。
デバイス一覧に検出された「Apple Wireless Keyboard」を選択し、「進む」ボタンを選択します。

20130211_03

2.3. デバイスの設定 (PIN コード入力)

「デバイスの設定」画面には PIN コード (6桁の数字) が表示されています。

20130211_04

Apple Wireless Keyboard で PIN コードを打ち込み、最後に Enter キーを押すとペアリングは完了です。

20130211_05

2.4. bluetooth-applet

"bluetooth-applet" を起動しておくと、Bluetooth アイコンをクリックすることで Apple Wireless Keyboard が接続していることを確認できます。
ここから "bluetooth-wizard" を起動することも可能です。

20130211_06

3. Apple Wireless Keyboard の使用感

3.1. CentOS (Linux) 上でのキーマップ

一度ペアリングしてしまえば、再起動後等も問題なく Apple Wireless Keyboard を使用可能です。

20130211_07

初期状態では

Control Control
Option Alt
Command 無効?
英数 無効?
かな 半角/全角
Delete BS (BackSpace)
Caps Lock 単独では無効 (Shift と同時押しで有効)

にマッピングされていました。

Eject キーも使えた (光学ドライブを開閉できた) ことには驚きました。

2013/2/12 追記
内容が正確ではなかったので、別途以下にまとめました。

@see 「Apple Wireless Keyboard のキーコード (CentOS 6.3)

3.2. 注意事項

BlueZ のサービスが起動する前は Apple Wireless Keyboard を使用できません。

これは、GRUB 上や boot 中は Bluetooth キーボードを利用できないということなので注意が必要です。

[ END ]

KDE 4 での日本語入力/キーボード設定 (Fedora 18)

RedHat 系 ディストリビューションKDE デスクトップ環境でインストールすると、どういうわけか毎回日本語入力の設定で悩みます。
今回インストールした Fedora 18 も例外ではありませんでした。

2度と繰り返さないための (正確には、次に忘れたとき用の) 備忘録です。

1. 言語

「KDE システム設定」を起動し、「アプリケーションの外観と振る舞い」-「ロケール」を選択します。

20130120_01

「国と言語」-「言語」タブの「優先言語」を「日本語」にします。

20130120_02

2. キーボード

「KDE システム設定」を起動し、「ハードウェア」-「入力デバイス」を選択します。

20130120_03

「キーボード」-「レイアウト」タブの「レイアウトを設定」にチェックを入れます。

「バリアント」を「日本語 (OADG 109A)」に変更すると、右上の「¥」キーで「\ (U+005C)」ではなく「¥ (U+00A5)」が入力できます。
この場合、「\ (U+005C)」は右下の「\ (ろ)」キーで入力可能です。

NOTE:

¥ (U+00A5)」 → 半角 円記号 (¥)
\ (U+005C)」  → 半角 バックスラッシュ (\)

20130120_04 20130120_05

「ハードウェア」タブの「キーボードモデル」は「106 キー PC」が選択できないので、「Generic | 標準 101 キー PC」のままとしておきます。

20130120_06

3. /etc/vconsole.conf

systemd 採用により、キーボードの設定ファイルが /etc/sysconfig/keyboard から /etc/vconsole.conf に変更となりました。

KEYMAP の値が「jp106」であることを確認します。

/etc/vconsole.conf

KEYMAP="jp106"

4. キーマップ

これらの設定を行った上での setxkbmap -print の結果です。

$ setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete+japan"        };
        xkb_symbols   { include "pc+jp(OADG109A)+inet(evdev)"   };
        xkb_geometry  { include "pc(pc101)"     };
};

xkb_geometry の値が「pc(pc101)」となっていますが、(善し悪しはともかく) そのまま放置しています。

5. 「ろ」キー問題

仮想マシン (KVM) の「キーマップ」項目が「ja」ではなく「Auto」となっている場合、右下の「ろ」キーが押せない (反応しない) ことがあります。

20130120_07

20130120_08

[ END ]