Apple Keyboard
目次
詳細
背景資料については次のページを見て下さい: https://help.ubuntu.com/community/AppleKeyboard
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 から 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
のキーコードです。AUR の getscancodesAUR を使って特定のキーのスキャンコードを、/usr/include/linux/input.h
からキーコードを確認できます。
古いバージョンの Apple アルミニウムキーボードではデバイスパスが多少異なっているため、必要に応じて調整してください。コマンドを /etc/rc.local
に記述することで変更を永続化できます。
Apple Keyboard を通常のキーボードと同じように扱う
Apple キーボードを (Meta
の左側に Alt
がある) 標準の英語レイアウトキーボードのように使いたい場合、AUR の un-apple-keyboardAUR パッケージを使用することができます。現在はアルミニウムの 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 キーがデフォルトになりません。