Apple Keyboard (日本語) - ArchWiki

# Apple Keyboard (日本語)

## 詳細

背景資料については次のページを見て下さい: https://help.ubuntu.com/community/AppleKeyboard

Note: カーネルモジュールの設定ファイルを使って設定を永続的にすることができます。これを使うには、ファイルを mkinitcpio.conf の FILES に追加して起動時にカーネルモジュールが自動的にロードされるようにしてください。
Tip: sudo を使ってシステムディレクトリに書き込みをしたい場合、シェルのリダイレクトを使用することはできません。以下のように `tee` を使って下さい:

    $ echo 0 | sudo tee /sys/module/hid_apple/parameters/iso_layout

## Numlock が有効

numlock が有効になってしまうと物理キーと 7,8,9,u,i,o,j,k,l と周りのキーしか動作しなくなり数字が出力されるようになります。これを修正するには `Fn`+`F6` を二度押して下さい。

## ファンクションキーが動作しない

`F<num>` キーが動作しない場合、キーボードのカーネルドライバーがメディアキーを使用することをデフォルトにしているのが原因で、`F<num>` キーを動作させるには `Fn` キーを使う必要があります。この挙動を変更するには、ドライバーの設定を変更してください。root で以下を実行:

    # echo 2 > /sys/module/hid_apple/parameters/fnmode

ファイルが存在しないと表示される場合は、カーネルが古いので代わりに以下を実行してください:

    # echo 2 > /sys/module/hid/parameters/pb_fnmode

設定を永続的にするには `/etc/modprobe.d/hid_apple.conf` にオプションを記述してください:

    /etc/modprobe.d/hid_apple.conf

    options hid_apple fnmode=2

### 上記の設定が無線キーボードで動作しない場合

`hid_apple/parameters` や `hid/parameters/pb_fnmode` が最近の Apple Bluetooth キーボードモデルとカーネル 3.4 では見つからないことがあります。

まず、キーボードを確認してください。root で次を実行 (`hidd` は公式リポジトリの bluez パッケージに含まれています):

    # hidd --show

以下のような表示がされます:

    40:CA:EC:32:85:AB Apple Wireless Keyboard [05ac:0255] connected

So with the vendor (05ac) and device (0255) ID it's easier to find out if the current kernel has support for it. Actually, the above device is listed in the linux kernel 3.4. If you check `drivers/hid/hid-ids.h` you should see the following line:

    #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI  0x0255

But support for the Function Key is missing.

In order to fix it rebuild your kernel from abs with the following patch: http://pastebin.com/CvFJz3Fn

This bug is already reported upstream https://bugzilla.kernel.org/show_bug.cgi?id=43135 and part of the vanilla kernel since 3.5

## < と > が § と ½ に入れ替わる

< と > が § と ½ キーに入れ替わる場合、グラフィカル環境で次のコマンドを実行してください:

    $ setxkbmap -option apple:badmap

ログイン時に自動的に設定させるようにするには `~/.bashrc` ファイルに上のコマンドを記述します。

システム全体で変更を適用させるには以下のように `/etc/X11/xorg.conf.d/10-keymap.conf` を作成 (または編集) します:

    Section "InputClass"
        Identifier "keyboard catchall"
        MatchIsKeyboard "true"
        Driver "evdev"
        Option "XkbOptions" "apple:badmap"
    EndSection

上記の方法で上手く行かない場合、以下の2行を `~/.Xmodmap` ファイルに追加してください:

    keycode  49 = less greater less greater bar brokenbar
    keycode  94 = section degree section degree notsign notsign

("ù" と "/" が変わっている) カナダマルチリンガルレイアウトを使っている場合、以下を使って下さい:

    keycode  94 = slash backslash slash backslash bar brokenbar
    keycode  49 = ugrave Ugrave ugrave Ugrave notsign notsign

そして `xmodmap ~/.Xmodmap` を実行します。上記のコマンドも `~/.bashrc` に記述することができます。

## < と > が ^ と ° に入れ替わる

With German layout, circumflex/degree symbol and 'smaller than'/'bigger than' are exchanged.

The new way:

First, try if the new method works for you (you have to be root)

    # echo 0 > /sys/module/hid_apple/parameters/iso_layout

To make the changes permanent add the following line to `/etc/modprobe.d/hid_apple.conf`:

    options hid_apple iso_layout=0

To fix this the old way, do the following:

    $ xmodmap -e 'keycode 49 = less greater less greater bar brokenbar bar' -e 'keycode 94 = dead_circumflex degree dead_circumflex degree U2032 U2033 U2032'

Now try your keys. When it works, you may want the change permanently. So execute this:

    $ xmodmap -pke | grep " 49" >> ~/.Xmodmap
    $ xmodmap -pke | grep " 94" >> ~/.Xmodmap

## メディアキー

The evdev driver should produce keycodes that map to the appropriate keysyms for your media keys by default. You can confirm that by running `xev` in a console window and watching the console output as you press your media keys.

For these keys to have any effect, you will have to assign actions to them. Refer to Extra keyboard keys in Xorg for more about that.

If you have confirmed that your media keys are not producing the correct keycodes, create or edit the `~/.Xmodmap` file so that it includes these lines:

    keycode 160 = XF86AudioMute
    keycode 176 = XF86AudioRaiseVolume
    keycode 174 = XF86AudioLowerVolume

    keycode 144 = XF86AudioPrev
    keycode 162 = XF86AudioPlay
    keycode 153 = XF86AudioNext

    keycode 101 = XF86MonBrightnessDown
    keycode 212 = XF86MonBrightnessUp

    keycode 204 = XF86Eject

and then run `xmodmap ~/.Xmodmap`. Place that command in the `~/.bashrc` file to have it run automatically when you log in.

## PrintScreen と SysRq

Apple Keyboard には `PrintScreen`/`SysRq` キーの代わりに `F13` キーがあります。このため Alt+SysRq シーケンスと、`PrintScreen` を使用するアプリケーションのアクション (Wine で動作するゲームでスクリーンショットを撮影するなど) が使えません。どちらの問題も Arch User Repository から keyfuzz をインストールすることで解決できます。

keyfuzz をインストールしたら、次のコマンドを実行してください:

    echo "458856 99" | /usr/sbin/keyfuzz -s -d /dev/input/by-id/usb-Apple__Inc_Apple_keyboard-event-kbd

458856 (0x070068) は `F13` のスキャンコードで、99 は `PrintScreen`/`SysRq` のキーコードです。AUR の getscancodes を使って特定のキーのスキャンコードを、`/usr/include/linux/input.h` からキーコードを確認できます。

古いバージョンの Apple アルミニウムキーボードではデバイスパスが多少異なっているため、必要に応じて調整してください。コマンドを `/etc/rc.local` に記述することで変更を永続化できます。

## Apple Keyboard を通常のキーボードと同じように扱う

Apple キーボードを (`Meta` の左側に `Alt` がある) 標準の英語レイアウトキーボードのように使いたい場合、AUR の un-apple-keyboard パッケージを使用することができます。現在はアルミニウムの USB モデルでしか動作しません。このパッケージは以下のことを行います:

- `/etc/modprobe.d/hid_apple.conf` ファイルを追加してデフォルトで `F` キーを有効化。
- keyfuzz を使って `F13-15` を `PrintScreen`/`SysRq`, `Scroll Lock`, `Pause` にマッピングする。
- `/etc/modprobe.d/hid_apple.conf` を使用して他のキーボードと同じように `Alt` と `Meta` (`Command`) の並びを入れ替える。
- udev ルールを使って、キーボードを接続したときに自動的に変更を適用する。

mkinitcpio.conf の FILES に `/etc/modprobe.d/hid_apple.conf` を追加する必要があります。追加しないと Apple Keyboard を接続してコンピューターを起動した時に、F キーがデフォルトになりません。

Category:

- Keyboards (日本語)