「Apple Keyboard」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(同期)
40行目: 40行目:
 
40:CA:EC:32:85:AB Apple Wireless Keyboard [05ac:0255] connected
 
40:CA:EC:32:85:AB Apple Wireless Keyboard [05ac:0255] connected
   
  +
ベンダー ID (05ac) とデバイス ID (0255) から、カーネルがキーボードをサポートしているかどうか簡単に確認できます。実際、Linux カーネル 3.4 では上記のデバイスがサポートされています。{{ic|drivers/hid/hid-ids.h}} の中に以下の行が確認できます:
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 {{ic|drivers/hid/hid-ids.h}} you should see the following line:
 
 
 
 
#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI 0x0255
 
#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI 0x0255
   
  +
ただしファンクションキーのサポートはありません。
But support for the Function Key is missing.
 
   
  +
この問題を修正するには以下のパッチを使って [[abs]] からカーネルを再ビルドしてください (Linux カーネル 3.5 からパッチはマージされています): http://pastebin.com/CvFJz3Fn
In order to fix it rebuild your kernel from [[abs]] with the following patch:
 
http://pastebin.com/CvFJz3Fn
 
   
  +
バグはすでに上流に報告済みです: https://bugzilla.kernel.org/show_bug.cgi?id=43135
This bug is already reported upstream
 
https://bugzilla.kernel.org/show_bug.cgi?id=43135
 
and part of the vanilla kernel since 3.5
 
   
 
==< と > が § と ½ に入れ替わる==
 
==< と > が § と ½ に入れ替わる==
82行目: 78行目:
 
そして {{Ic|xmodmap ~/.Xmodmap}} を実行します。上記のコマンドも {{ic|~/.bashrc}} に記述することができます。
 
そして {{Ic|xmodmap ~/.Xmodmap}} を実行します。上記のコマンドも {{ic|~/.bashrc}} に記述することができます。
   
==< と > が ^ と ° に入れ替わる==
+
==< と > が ^ と ° (あるいは @ と #) に入れ替わる==
  +
ドイツ語レイアウトでは、アクセント記号 ({{ic|^}}) とデグリー記号 ({{ic|°}}) が小なり記号 ({{ic|<}}) と大なり記号 ({{ic|>}}) に入れ替わっています。フランス語レイアウトでは、{{ic|@}} と {{ic|#}} が入れ替わっています。
With German layout, circumflex/degree symbol and 'smaller than'/'bigger than' are exchanged.
 
   
'''The new way:'''
+
'''新しい方法:'''
   
  +
まず、新しい方法を試してみてください (root で実行する必要があります):
First, try if the new method works for you (you have to be root)
 
 
# echo 0 > /sys/module/hid_apple/parameters/iso_layout
 
# echo 0 > /sys/module/hid_apple/parameters/iso_layout
To make the changes permanent add the following line to {{ic|/etc/modprobe.d/hid_apple.conf}}:
+
変更を永続化させるには {{ic|/etc/modprobe.d/hid_apple.conf}} に以下の行を記述:
 
options hid_apple iso_layout=0
 
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'
 
$ 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 " 49" >> ~/.Xmodmap
 
$ xmodmap -pke | grep " 94" >> ~/.Xmodmap
 
$ xmodmap -pke | grep " 94" >> ~/.Xmodmap

2016年8月15日 (月) 14:42時点における版

詳細

背景資料については次のページを見て下さい: 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 

ベンダー ID (05ac) とデバイス ID (0255) から、カーネルがキーボードをサポートしているかどうか簡単に確認できます。実際、Linux カーネル 3.4 では上記のデバイスがサポートされています。drivers/hid/hid-ids.h の中に以下の行が確認できます:

#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI  0x0255

ただしファンクションキーのサポートはありません。

この問題を修正するには以下のパッチを使って abs からカーネルを再ビルドしてください (Linux カーネル 3.5 からパッチはマージされています): http://pastebin.com/CvFJz3Fn

バグはすでに上流に報告済みです: https://bugzilla.kernel.org/show_bug.cgi?id=43135

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

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

$ 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 に記述することができます。

< と > が ^ と ° (あるいは @ と #) に入れ替わる

ドイツ語レイアウトでは、アクセント記号 (^) とデグリー記号 (°) が小なり記号 (<) と大なり記号 (>) に入れ替わっています。フランス語レイアウトでは、@# が入れ替わっています。

新しい方法:

まず、新しい方法を試してみてください (root で実行する必要があります):

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

変更を永続化させるには /etc/modprobe.d/hid_apple.conf に以下の行を記述:

options hid_apple iso_layout=0

古い方法:

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

キーを押してみて問題ないようでしたら、以下を実行することで変更を永続化できます:

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

` と ~ キーで < と > が出力される

US レイアウトでは、バッククォートキーとチルダキーは小なりと大なりを出力します。

まず、(root で) 以下の方法が使えないか試して下さい:

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

変更を永続化させるには以下の行を /etc/modprobe.d/hid_apple.conf に追加:

options hid_apple iso_layout=0

メディアキー

デフォルトで evdev ドライバーはメディアキーについて適当なキーシムにマッピングされたキーコードを生成します。コンソールウィンドウで xev を実行してメディアキーを押したときのコンソール出力を見ることで確認できます。

メディアキーを使用するには、適当なアクションをメディアキーに割り当てる必要があります。詳しくは Xorg での特別なキーボードキーを参照してください。

メディアキーが適当なキーコードを生成しないときは、~/.Xmodmap ファイルを作成・編集して以下の行を記述してください:

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

そして xmodmap ~/.Xmodmap を実行してください。このコマンドを ~/.bashrc ファイルに追加することでログイン時に自動的に実行させることができます。

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 キーがデフォルトになりません。