「Apple Keyboard」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(Created page with "Category:キーボード en:Apple Keyboard == 詳細 == 背景資料については次のページを見て下さい: https://help.ubuntu.com/community/AppleKeyb...")
 
(英語版と同期. 古い記述残した.)
 
(2人の利用者による、間の9版が非表示)
1行目: 1行目:
 
[[Category:キーボード]]
 
[[Category:キーボード]]
 
[[en:Apple Keyboard]]
 
[[en:Apple Keyboard]]
  +
{{Related articles start}}
== 詳細 ==
 
  +
{{Related|特別なキーボードキー}}
背景資料については次のページを見て下さい: https://help.ubuntu.com/community/AppleKeyboard
 
  +
{{Related articles end}}
  +
一部の Apple 製のキーボードではキーが変わっていたり動作しなかったりすることがあります。この記事ではキーボードにあわせて適切な動作をするように設定を変更する方法を説明します。
   
  +
==Numlock が有効==
{{Note|[[カーネルモジュール]]の設定ファイルを使って設定を永続的にすることができます。これを使うには、ファイルを [[mkinitcpio|mkinitcpio.conf]] の FILES に追加して起動時にカーネルモジュールが自動的にロードされるようにしてください。}}
 
   
  +
Numlock が有効になってしまうと物理キーと {{ic|7}}, {{ic|8}}, {{ic|9}}, {{ic|u}}, {{ic|i}}, {{ic|o}}, {{ic|j}}, {{ic|k}}, {{ic|l}} と周りのキーしか動作しなくなり数字が出力されるようになります。これを修正するには {{ic|Fn}}+{{ic|F6}} を二度押して下さい。
{{Tip|[[sudo|sudo]] を使ってシステムディレクトリに書き込みをしたい場合、シェルのリダイレクトを使用することはできません。以下のように {{ic|tee}} を使って下さい:
 
$ echo 0 | sudo tee /sys/module/hid_apple/parameters/iso_layout
 
}}
 
   
  +
もしくは、[[xmodmap]] を使って手動でキーコードを設定することで Numlock を使わないようにできます:
==Numlock が有効==
 
   
  +
keycode 90 = KP_0 KP_0 KP_0 KP_0 KP_0 KP_0
numlock が有効になってしまうと物理キーと 7,8,9,u,i,o,j,k,l と周りのキーしか動作しなくなり数字が出力されるようになります。これを修正するには {{ic|Fn}}+{{ic|F6}} を二度押して下さい。
 
  +
keycode 87 = KP_1 KP_1 KP_1 KP_1 KP_1 KP_1
  +
keycode 88 = KP_2 KP_2 KP_2 KP_2 KP_2 KP_2
  +
keycode 89 = KP_3 KP_3 KP_3 KP_3 KP_3 KP_3
  +
keycode 83 = KP_4 KP_4 KP_4 KP_4 KP_4 KP_4
  +
keycode 84 = KP_5 KP_5 KP_5 KP_5 KP_5 KP_5
  +
keycode 85 = KP_6 KP_6 KP_6 KP_6 KP_6 KP_6
  +
keycode 79 = KP_7 KP_7 KP_7 KP_7 KP_7 KP_7
  +
keycode 80 = KP_8 KP_8 KP_8 KP_8 KP_8 KP_8
  +
keycode 81 = KP_9 KP_9 KP_9 KP_9 KP_9 KP_9
   
 
==ファンクションキーが動作しない==
 
==ファンクションキーが動作しない==
29行目: 38行目:
 
options hid_apple fnmode=2
 
options hid_apple fnmode=2
 
</nowiki>}}
 
</nowiki>}}
  +
  +
初期 RAM ディスクで上記の変更を適用したい場合、[[Mkinitcpio#設定|mkinitcpio]] の設定 (通常は {{ic|/etc/mkinitcpio.conf}}) で、{{ic|HOOKS}} 変数に {{ic|modconf}} を指定するか {{ic|FILES}} 変数で {{ic|/etc/modprobe.d/hid_apple.conf}} を指定してください。変更を反映するには[[Mkinitcpio#イメージ作成とアクティベーション|イメージの再生成]]が必要です。
   
 
===上記の設定が無線キーボードで動作しない場合===
 
===上記の設定が無線キーボードで動作しない場合===
34行目: 45行目:
 
{{ic|hid_apple/parameters}} や {{ic|hid/parameters/pb_fnmode}} が最近の Apple Bluetooth キーボードモデルとカーネル 3.4 では見つからないことがあります。
 
{{ic|hid_apple/parameters}} や {{ic|hid/parameters/pb_fnmode}} が最近の Apple Bluetooth キーボードモデルとカーネル 3.4 では見つからないことがあります。
   
まず、キーボードを確認してください。root で次を実行 ({{ic|hidd}} は[[公式リポジトリ]]の {{Pkg|bluez}} パッケージに含まれています):
+
まず、キーボードを確認してください。root で次を実行 ({{ic|hidd}} は {{Pkg|bluez}} パッケージに含まれています):
 
# hidd --show
 
# hidd --show
   
40行目: 51行目:
 
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 からパッチはマージされています): https://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
 
  +
=== Cmd と Alt/AltGr を入れ替える ===
and part of the vanilla kernel since 3.5
 
  +
  +
左の {{ic|Alt}} および {{ic|Cmd}} キーを、右の {{ic|Alt}}/{{ic|AltGr}} および {{ic|Cmd}} キーとともに、入れ替えます。
  +
  +
起動している状態で仮に入れ替える方法 (ただちに反映されます):
  +
  +
# echo "1" > /sys/module/hid_apple/parameters/swap_opt_cmd
  +
  +
再起動後、永続的に反映される方法:
  +
  +
{{hc|/etc/modprobe.d/hid_apple.conf|2=
  +
options hid_apple swap_opt_cmd=1
  +
}}
  +
  +
そのあと[[Mkinitcpio#イメージ作成とアクティベーション|イメージの再生成]]をしてください。
   
 
==< と > が § と ½ に入れ替わる==
 
==< と > が § と ½ に入れ替わる==
82行目: 105行目:
 
そして {{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
  +
  +
==` と ~ キーで < と > が出力される==
  +
US レイアウトでは、バッククォートキーとチルダキーは小なりと大なりを出力します。
  +
  +
まず、(root で) 以下の方法が使えないか試して下さい:
  +
# echo 0 > /sys/module/hid_apple/parameters/iso_layout
  +
変更を永続化させるには以下の行を {{ic|/etc/modprobe.d/hid_apple.conf}} に追加:
  +
options hid_apple iso_layout=0
   
 
==メディアキー==
 
==メディアキー==
   
  +
デフォルトで evdev ドライバーはメディアキーについて適当なキーシムにマッピングされたキーコードを生成します。コンソールウィンドウで {{Ic|xev}} を実行してメディアキーを押したときのコンソール出力を見ることで確認できます。
The evdev driver should produce keycodes that map to the appropriate keysyms for your media keys by default. You can confirm that by running {{Ic|xev}} in a console window and watching the console output as you press your media keys.
 
   
  +
メディアキーを使用するには、適当なアクションをメディアキーに割り当てる必要があります。詳しくは [[Xorg での特別なキーボードキー]]を参照してください。
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.
 
   
  +
メディアキーが適当なキーコードを生成しないときは、{{ic|~/.Xmodmap}} ファイルを作成・編集して以下の行を記述してください:
If you have confirmed that your media keys are ''not'' producing the correct keycodes, create or edit the {{ic|~/.Xmodmap}} file so that it includes these lines:
 
 
{{bc|1=keycode 160 = XF86AudioMute
 
{{bc|1=keycode 160 = XF86AudioMute
 
keycode 176 = XF86AudioRaiseVolume
 
keycode 176 = XF86AudioRaiseVolume
118行目: 149行目:
   
 
keycode 204 = XF86Eject}}
 
keycode 204 = XF86Eject}}
and then run {{Ic|xmodmap ~/.Xmodmap}}. Place that command in the {{ic|~/.bashrc}} file to have it run automatically when you log in.
+
そして {{Ic|xmodmap ~/.Xmodmap}} を実行してください。このコマンドを {{ic|~/.bashrc}} ファイルに追加することでログイン時に自動的に実行させることができます。
   
 
==PrintScreen と SysRq==
 
==PrintScreen と SysRq==
   
Apple Keyboard には {{ic|PrintScreen}}/{{ic|SysRq}} キーの代わりに {{ic|F13}} キーがあります。このため [[Keyboard shortcuts#Kernel|Alt+SysRq シーケンス]]と、{{ic|PrintScreen}} を使用するアプリケーションのアクション ([[Wine|Wine]] で動作するゲームでスクリーンショットを撮影するなど) が使えません。どちらの問題も [[Arch User Repository|Arch User Repository]] から {{AUR|keyfuzz}} をインストールすることで解決できます
+
Apple Keyboard には {{ic|PrintScreen}}/{{ic|SysRq}} キーの代わりに {{ic|F13}} キーがあります。このため [[キーボードショートカット#カーネル|Alt+SysRq シーケンス]]と、{{ic|PrintScreen}} を使用するアプリケーションのアクション ([[Wine]] で動作するゲームでスクリーンショットを撮影するなど) が使えません。
   
  +
{{ic|.xinitrc}} に {{ic|setxkbmap -option "apple:alupckeys"}} を追加することで解決できます。{{ic|PrintScreen}}/{{ic|SysRq}} を {{ic|F13}} に、{{ic|Scroll lock}} を {{ic|F14}} に、{{ic|Pause}} を {{ic|F15}} にマッピングします。
keyfuzz をインストールしたら、次のコマンドを実行してください:
 
  +
  +
もしくは [[Arch User Repository]] から {{AUR|keyfuzz}} をインストールすることで解決できます。keyfuzz をインストールしたら、次のコマンドを実行してください:
 
echo "458856 99" | /usr/sbin/keyfuzz -s -d /dev/input/by-id/usb-Apple__Inc_Apple_keyboard-event-kbd
 
echo "458856 99" | /usr/sbin/keyfuzz -s -d /dev/input/by-id/usb-Apple__Inc_Apple_keyboard-event-kbd
458856 (0x070068) は {{ic|F13}} のスキャンコードで、99 は {{ic|PrintScreen}}/{{ic|SysRq}} のキーコードです。[[AUR|AUR]] の {{AUR|getscancodes}} を使って特定のキーのスキャンコードを、{{ic|/usr/include/linux/input.h}} からキーコードを確認できます。
 
   
  +
458856 (0x0'''70068''') は {{ic|F13}} のスキャンコードで、{{ic|99}} は {{ic|PrintScreen}}/{{ic|SysRq}} のキーコードです。{{ic|/usr/include/linux/input.h}} からキーコードを確認できます。特定のキーのスキャンコードを確認する方法は[[特別なキーボードキー#スキャンコード]]を見てください。
古いバージョンの Apple アルミニウムキーボードではデバイスパスが多少異なっているため、必要に応じて調整してください。コマンドを {{ic|/etc/rc.local}} に記述することで変更を永続化できます。
 
  +
  +
[[スキャンコードをキーコードにマップ]]も見てください。
   
 
==Apple Keyboard を通常のキーボードと同じように扱う==
 
==Apple Keyboard を通常のキーボードと同じように扱う==
   
  +
2つの方法が存在します。カスタマイズしたいことにあわせて選択してください。
Apple キーボードを ({{ic|Meta}} の左側に {{ic|Alt}} がある) 標準の英語レイアウトキーボードのように使いたい場合、[[AUR|AUR]] の {{AUR|un-apple-keyboard}} パッケージを使用することができます。現在はアルミニウムの USB モデルでしか動作しません。このパッケージは以下のことを行います:
 
  +
  +
=== hid-apple のパッチを使う ===
  +
  +
オリジナルの {{ic|hid-apple}} モジュールにはキーボードをカスタマイズするオプションがありません (例: {{ic|Fn}} キーと左の {{ic|Ctrl}} キーを交換したり、{{ic|Super}} キーの左側に {{ic|Alt}} キーを持ってくるなど)。モジュールに機能を追加する [https://github.com/free5lot/hid-apple-patched パッチ] が存在します。パッチは {{AUR|hid-apple-patched-git-dkms}} パッケージで[[インストール]]できます。
  +
  +
カーネルモジュールのパッチに加えて、パッケージには {{ic|/etc/modprobe.d/hid_apple_pclayout.conf}} 設定ファイルも含まれており、デフォルトで以下のレイアウトが有効になります:
  +
  +
* 最上段のキーは通常のファンクションキーとなり、Fn キーを押したときだけメディアキーになります。[[#ファンクションキーが動作しない]]を参照。
  +
* 左下の4つのキーは {{ic|Ctrl}}, {{ic|Fn}}, {{ic|Super}}, {{ic|Alt}} となります。
  +
* {{ic|Super}} と右側の {{ic|Alt}} キーが入れ替わります。
  +
* {{ic|Ejectcd}} キーがある場合、{{ic|Delete}} キーとして認識するようになります ({{ic|1=ejectcd_as_delete=1}} オプション)。
  +
  +
設定オプションと設定ファイルについて詳しくは https://github.com/free5lot/hid-apple-patched#configuration を参照してください。
  +
  +
{{Note|設定ファイルを ''initramfs'' に追加しないと起動後に自動的に機能しません。追加する方法は [[Mkinitcpio#BINARIES と FILES]] や [[Mkinitcpio#HOOKS]] (必要なフックの名前は {{ic|modconf}}) を見てください。}}
  +
  +
インストールしても変更はすぐにはカーネルには適用されません。システムを再起動すれば効果が反映されます。
  +
  +
=== un-apple-keyboard を使う ===
  +
  +
カスタマイズは必要なく手動でモジュールをコンパイルしたり [[DKMS]] を使いたくない場合、{{AUR|un-apple-keyboard}} パッケージを使用することができます。このパッケージは以下のことを行います:
  +
  +
* キーボードが通常の ISO キーボードのように認識されます ({{ic|<}} と {{ic|>}} が {{ic|Left Shift}} キーの右側にあるように動作します)。
  +
* ファンクションキーはデフォルトで無効になります。ファンクションキーを使うには {{ic|Fn}} キーも押す必要があります。デフォルトでは {{ic|F1}} から {{ic|F12}} キーにこの挙動が適用されます。
  +
* {{ic|Alt}} と {{ic|Meta}} ({{ic|Command}}) を入れ替える。
  +
* {{ic|F13}} を {{ic|SYSRQ}} に、{{ic|F14}} を {{ic|Scroll Lock}} に、{{ic|F15}} を {{ic|Pause}} にマッピングする。
  +
  +
最初の3つはデフォルトのカーネルモジュール {{ic|hid-apple}} を使用して実現し、最後の1つは {{AUR|keyfuzz}} にマッピングして実現します。
  +
  +
=== 再起動せずに挙動を変更する ===
  +
{{Warning|キーボードとタッチパッド以外に入力デバイスがない場合、以下のコマンドの実行が失敗してコンピュータに入力ができなくなる可能性があるので注意してください。}}
  +
  +
再起動せずにカーネルモジュールをリロードするには {{ic|# rmmod hid_apple && modprobe hid_apple}} を実行してください。
  +
  +
== Magic Keyboard が接続できない ==
  +
  +
GNOME 3 の設定の Bluetooth メニューなどのツールで Magic Keyboard をシステムに接続できない場合、[[Blueman]] をインストールして接続してみてください。それでも接続に失敗する場合、bluetoothctl と hcitool が使用できることを確認してください。
   
  +
== 参照 ==
*{{ic|/etc/modprobe.d/hid_apple.conf}} ファイルを追加してデフォルトで {{ic|F}} キーを有効化。
 
*keyfuzz を使って {{ic|F13-15}} を {{ic|PrintScreen}}/{{ic|SysRq}}, {{ic|Scroll Lock}}, {{ic|Pause}} にマッピングする。
 
*{{ic|/etc/modprobe.d/hid_apple.conf}} を使用して他のキーボードと同じように {{ic|Alt}} と {{ic|Meta}} ({{ic|Command}}) の並びを入れ替える。
 
*[[udev|udev]] ルールを使って、キーボードを接続したときに自動的に変更を適用する。
 
   
  +
* https://help.ubuntu.com/community/AppleKeyboard
[[mkinitcpio|mkinitcpio.conf]] の FILES に {{ic|/etc/modprobe.d/hid_apple.conf}} を追加する必要があります。追加しないと Apple Keyboard を接続してコンピューターを起動した時に、F キーがデフォルトになりません。
 
  +
* https://github.com/hlechner/xmodmap-aluminium-pt-br
  +
* https://github.com/free5lot/hid-apple-patched

2019年5月3日 (金) 15:56時点における最新版

関連記事

一部の Apple 製のキーボードではキーが変わっていたり動作しなかったりすることがあります。この記事ではキーボードにあわせて適切な動作をするように設定を変更する方法を説明します。

Numlock が有効

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

もしくは、xmodmap を使って手動でキーコードを設定することで Numlock を使わないようにできます:

keycode  90 = KP_0 KP_0 KP_0 KP_0 KP_0 KP_0
keycode  87 = KP_1 KP_1 KP_1 KP_1 KP_1 KP_1
keycode  88 = KP_2 KP_2 KP_2 KP_2 KP_2 KP_2
keycode  89 = KP_3 KP_3 KP_3 KP_3 KP_3 KP_3
keycode  83 = KP_4 KP_4 KP_4 KP_4 KP_4 KP_4
keycode  84 = KP_5 KP_5 KP_5 KP_5 KP_5 KP_5
keycode  85 = KP_6 KP_6 KP_6 KP_6 KP_6 KP_6
keycode  79 = KP_7 KP_7 KP_7 KP_7 KP_7 KP_7
keycode  80 = KP_8 KP_8 KP_8 KP_8 KP_8 KP_8
keycode  81 = KP_9 KP_9 KP_9 KP_9 KP_9 KP_9

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

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

初期 RAM ディスクで上記の変更を適用したい場合、mkinitcpio の設定 (通常は /etc/mkinitcpio.conf) で、HOOKS 変数に modconf を指定するか FILES 変数で /etc/modprobe.d/hid_apple.conf を指定してください。変更を反映するにはイメージの再生成が必要です。

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

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

まず、キーボードを確認してください。root で次を実行 (hiddbluez パッケージに含まれています):

# 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 からパッチはマージされています): https://pastebin.com/CvFJz3Fn

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

Cmd と Alt/AltGr を入れ替える

左の Alt および Cmd キーを、右の Alt/AltGr および Cmd キーとともに、入れ替えます。

起動している状態で仮に入れ替える方法 (ただちに反映されます):

# echo "1" > /sys/module/hid_apple/parameters/swap_opt_cmd

再起動後、永続的に反映される方法:

/etc/modprobe.d/hid_apple.conf
options hid_apple swap_opt_cmd=1

そのあとイメージの再生成をしてください。

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

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

$ 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 で動作するゲームでスクリーンショットを撮影するなど) が使えません。

.xinitrcsetxkbmap -option "apple:alupckeys" を追加することで解決できます。PrintScreen/SysRqF13 に、Scroll lockF14 に、PauseF15 にマッピングします。

もしくは 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 のスキャンコードで、99PrintScreen/SysRq のキーコードです。/usr/include/linux/input.h からキーコードを確認できます。特定のキーのスキャンコードを確認する方法は特別なキーボードキー#スキャンコードを見てください。

スキャンコードをキーコードにマップも見てください。

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

2つの方法が存在します。カスタマイズしたいことにあわせて選択してください。

hid-apple のパッチを使う

オリジナルの hid-apple モジュールにはキーボードをカスタマイズするオプションがありません (例: Fn キーと左の Ctrl キーを交換したり、Super キーの左側に Alt キーを持ってくるなど)。モジュールに機能を追加する パッチ が存在します。パッチは hid-apple-patched-git-dkmsAUR パッケージでインストールできます。

カーネルモジュールのパッチに加えて、パッケージには /etc/modprobe.d/hid_apple_pclayout.conf 設定ファイルも含まれており、デフォルトで以下のレイアウトが有効になります:

  • 最上段のキーは通常のファンクションキーとなり、Fn キーを押したときだけメディアキーになります。#ファンクションキーが動作しないを参照。
  • 左下の4つのキーは Ctrl, Fn, Super, Alt となります。
  • Super と右側の Alt キーが入れ替わります。
  • Ejectcd キーがある場合、Delete キーとして認識するようになります (ejectcd_as_delete=1 オプション)。

設定オプションと設定ファイルについて詳しくは https://github.com/free5lot/hid-apple-patched#configuration を参照してください。

ノート: 設定ファイルを initramfs に追加しないと起動後に自動的に機能しません。追加する方法は Mkinitcpio#BINARIES と FILESMkinitcpio#HOOKS (必要なフックの名前は modconf) を見てください。

インストールしても変更はすぐにはカーネルには適用されません。システムを再起動すれば効果が反映されます。

un-apple-keyboard を使う

カスタマイズは必要なく手動でモジュールをコンパイルしたり DKMS を使いたくない場合、un-apple-keyboardAUR パッケージを使用することができます。このパッケージは以下のことを行います:

  • キーボードが通常の ISO キーボードのように認識されます (<>Left Shift キーの右側にあるように動作します)。
  • ファンクションキーはデフォルトで無効になります。ファンクションキーを使うには Fn キーも押す必要があります。デフォルトでは F1 から F12 キーにこの挙動が適用されます。
  • AltMeta (Command) を入れ替える。
  • F13SYSRQ に、F14Scroll Lock に、F15Pause にマッピングする。

最初の3つはデフォルトのカーネルモジュール hid-apple を使用して実現し、最後の1つは keyfuzzAUR にマッピングして実現します。

再起動せずに挙動を変更する

警告: キーボードとタッチパッド以外に入力デバイスがない場合、以下のコマンドの実行が失敗してコンピュータに入力ができなくなる可能性があるので注意してください。

再起動せずにカーネルモジュールをリロードするには # rmmod hid_apple && modprobe hid_apple を実行してください。

Magic Keyboard が接続できない

GNOME 3 の設定の Bluetooth メニューなどのツールで Magic Keyboard をシステムに接続できない場合、Blueman をインストールして接続してみてください。それでも接続に失敗する場合、bluetoothctl と hcitool が使用できることを確認してください。

参照