Apple Keyboard

提供: ArchWiki
2015年1月11日 (日) 14:25時点におけるKusakata (トーク | 投稿記録)による版 (1版 をインポートしました)
ナビゲーションに移動 検索に移動

詳細

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

ノート: カーネルモジュールの設定ファイルを使って設定を永続的にすることができます。これを使うには、ファイルを mkinitcpio.conf の FILES に追加して起動時にカーネルモジュールが自動的にロードされるようにしてください。
ヒント: 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/parametershid/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 から keyfuzzAUR をインストールすることで解決できます。

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 のキーコードです。AURgetscancodesAUR を使って特定のキーのスキャンコードを、/usr/include/linux/input.h からキーコードを確認できます。

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

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

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

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

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