「Apple Keyboard」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(1版 をインポートしました)
6行目: 6行目:
 
{{Note|[[カーネルモジュール]]の設定ファイルを使って設定を永続的にすることができます。これを使うには、ファイルを [[mkinitcpio|mkinitcpio.conf]] の FILES に追加して起動時にカーネルモジュールが自動的にロードされるようにしてください。}}
 
{{Note|[[カーネルモジュール]]の設定ファイルを使って設定を永続的にすることができます。これを使うには、ファイルを [[mkinitcpio|mkinitcpio.conf]] の FILES に追加して起動時にカーネルモジュールが自動的にロードされるようにしてください。}}
   
{{Tip|[[sudo|sudo]] を使ってシステムディレクトリに書き込みをしたい場合、シェルのリダイレクトを使用することはできません。以下のように {{ic|tee}} を使って下さい:
+
{{Tip|[[sudo]] を使ってシステムディレクトリに書き込みをしたい場合、シェルのリダイレクトを使用することはできません。以下のように {{ic|tee}} を使って下さい:
 
$ echo 0 | sudo tee /sys/module/hid_apple/parameters/iso_layout
 
$ echo 0 | sudo tee /sys/module/hid_apple/parameters/iso_layout
 
}}
 
}}
98行目: 98行目:
 
$ 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行目: 126行目:
   
 
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]] で動作するゲームでスクリーンショットを撮影するなど) が使えません。どちらの問題も [[Arch User Repository]] から {{AUR|keyfuzz}} をインストールすることで解決できます。
   
 
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 (0x070068) は {{ic|F13}} のスキャンコードで、99 は {{ic|PrintScreen}}/{{ic|SysRq}} のキーコードです。[[AUR]] の {{AUR|getscancodes}} を使って特定のキーのスキャンコードを、{{ic|/usr/include/linux/input.h}} からキーコードを確認できます。
   
 
古いバージョンの Apple アルミニウムキーボードではデバイスパスが多少異なっているため、必要に応じて調整してください。コマンドを {{ic|/etc/rc.local}} に記述することで変更を永続化できます。
 
古いバージョンの Apple アルミニウムキーボードではデバイスパスが多少異なっているため、必要に応じて調整してください。コマンドを {{ic|/etc/rc.local}} に記述することで変更を永続化できます。
132行目: 140行目:
 
==Apple Keyboard を通常のキーボードと同じように扱う==
 
==Apple Keyboard を通常のキーボードと同じように扱う==
   
Apple キーボードを ({{ic|Meta}} の左側に {{ic|Alt}} がある) 標準の英語レイアウトキーボードのように使いたい場合、[[AUR|AUR]] の {{AUR|un-apple-keyboard}} パッケージを使用することができます。現在はアルミニウムの USB モデルでしか動作しません。このパッケージは以下のことを行います:
+
Apple キーボードを ({{ic|Meta}} の左側に {{ic|Alt}} がある) 標準の英語レイアウトキーボードのように使いたい場合、[[AUR]] の {{AUR|un-apple-keyboard}} パッケージを使用することができます。現在はアルミニウムの USB モデルでしか動作しません。このパッケージは以下のことを行います:
   
 
*{{ic|/etc/modprobe.d/hid_apple.conf}} ファイルを追加してデフォルトで {{ic|F}} キーを有効化。
 
*{{ic|/etc/modprobe.d/hid_apple.conf}} ファイルを追加してデフォルトで {{ic|F}} キーを有効化。
 
*keyfuzz を使って {{ic|F13-15}} を {{ic|PrintScreen}}/{{ic|SysRq}}, {{ic|Scroll Lock}}, {{ic|Pause}} にマッピングする。
 
*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}}) の並びを入れ替える。
 
*{{ic|/etc/modprobe.d/hid_apple.conf}} を使用して他のキーボードと同じように {{ic|Alt}} と {{ic|Meta}} ({{ic|Command}}) の並びを入れ替える。
*[[udev|udev]] ルールを使って、キーボードを接続したときに自動的に変更を適用する。
+
*[[udev]] ルールを使って、キーボードを接続したときに自動的に変更を適用する。
   
 
[[mkinitcpio|mkinitcpio.conf]] の FILES に {{ic|/etc/modprobe.d/hid_apple.conf}} を追加する必要があります。追加しないと Apple Keyboard を接続してコンピューターを起動した時に、F キーがデフォルトになりません。
 
[[mkinitcpio|mkinitcpio.conf]] の FILES に {{ic|/etc/modprobe.d/hid_apple.conf}} を追加する必要があります。追加しないと Apple Keyboard を接続してコンピューターを起動した時に、F キーがデフォルトになりません。

2015年11月3日 (火) 14:26時点における版

詳細

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

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

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