「特別なキーボードキー」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(カテゴリの修正)
(TranslationStatus)
 
(同じ利用者による、間の2版が非表示)
1行目: 1行目:
 
[[Category:キーボード設定]]
 
[[Category:キーボード設定]]
  +
[[de:Hotkeys]]
 
[[en:Extra keyboard keys]]
 
[[en:Extra keyboard keys]]
 
[[ru:Extra keyboard keys]]
 
[[ru:Extra keyboard keys]]
  +
この記事では、あなたが [[キーボード入力]] の記事を読んだことを想定しています。
[[zh-hans:Extra keyboard keys]]
 
{{Related articles start}}
 
{{Related|Xorg での特別なキーボードキー}}
 
{{Related|コンソールでの特別なキーボードキー}}
 
{{Related|Xorg でのキーボード設定}}
 
{{Related|コンソールでのキーボード設定}}
 
{{Related|スキャンコードをキーコードにマップ}}
 
{{Related|Xmodmap}}
 
{{Related articles end}}
 
多くのキーボードには何らかの''特別なキー''が付いており (''ホットキー''や''マルチメディアキー''とも呼ばれる)、アプリケーションを起動したり特殊な文字を打ち込むのに使われます (標準的なキーマップには含まれていない機能)。[[udev]] は様々なキーボードに関する巨大なデータベースを持っているため、基本的なキーボードは何も設定せずとも問題なく動作します。最近発売されたばかり、または非常にレアなハードウェアを使っている場合に、マッピングを手動で調整する必要がでてきます。
 
   
  +
多くのキーボードにはいくつかの ''特殊キー'' (''ホットキー'' とも ''マルチメディアキー'' とも呼ばれます) が存在します。それらは、アプリケーションの実行や (標準的な国際キーマップには含まれていない) 特殊文字の入力を行うことを想定しています。[[udev]] は様々なキーボードに関する巨大なデータベースを持っているため、基本的なキーボードは何も設定せずとも問題なく動作します。最近発売されたばかり、または非常にレアなハードウェアを使っている場合に、マッピングを手動で調整する必要がでてきます。
キーマッピングを変更する前に、そのキーがシステムでどう認識されているのか知らなくてはなりません。いくつかの段階に分かれています:
 
 
* [[Wikipedia:ja:スキャンコード|スキャンコード]]は最下層のキー識別番号で、キーボードがコンピュータに送信する値になります。
 
* '''キーコード'''は2番目のキー識別子で、''キーコード''は機能に対応しています。
 
* '''キーシム'''は3番目のキー識別子で、''シンボル''に対応しています。キーシムは Shift キーなどの[[Wikipedia:ja:修飾キー|修飾キー]]が押されているかどうかによって変わります。
 
 
''スキャンコード''は''キーコード''にマップされており、''キーコード''は使用しているキーボードレイアウトにあわせて''キーシム''にマップされています。ほとんどのキーには''キーコード''が割り当てられているはずです。そして、''キーコード''がなくとも''スキャンコード''は存在するでしょう。''スキャンコード''が存在しないキーはカーネルによって認識されていません。ゲーミングキーボードに追加されているキーなどで''スキャンコード''がないことがあります。
 
 
Xorg では、特定の''キーシム'' (例: {{ic|XF86AudioPlay}}, {{ic|XF86AudioRaiseVolume}} など) をアクションにマップすることができます (例: アプリケーションの起動)。詳しくは [[Xorg での特別なキーボードキー#キーシムをアクションにマップ]] を見て下さい。
 
 
Linux コンソールでは、特定の''キーシム'' (例: {{ic|F1}} から {{ic|F246}}) を特定のアクションにマップすることができます (例: 他のコンソールへの切り替えや特定の文字列の打ち込みなど)。詳しくは[[コンソールでの特別なキーボードキー]]を見て下さい。
 
 
== キーコードの確認 ==
 
 
=== スキャンコード ===
 
 
==== showkey を使う ====
 
 
''スキャンコード''を取得するときは ''showkey'' ユーティリティを使うのが一般的です。''showkey'' はキーが押されるまで待機し、10秒たってもキーが押されなかった場合、終了します。''showkey'' を使用するには[[Wikipedia:ja:仮想コンソール|仮想端末]]上で実行させる必要があり、グラフィカル環境やネットワーク接続を介してログインした場合は使用できません。次のコマンドを実行してください:
 
 
# showkey --scancodes
 
 
コマンドを実行した後にキーボードのキーを押してみて下さい。''スキャンコード''が出力されます。
 
 
==== evtest を使う ====
 
 
USB キーボードの場合、''showkey'' ではなく {{Pkg|evtest}} パッケージに入っている ''evtest'' を使う必要があります [https://ask.fedoraproject.org/en/question/46201/how-to-map-scancodes-to-keycodes/]:
 
 
# evtest /dev/input/event12
 
...
 
Event: time 1434666536.001123, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70053
 
Event: time 1434666536.001123, type 1 (EV_KEY), code 69 (KEY_NUMLOCK), value 0
 
Event: time 1434666536.001123, -------------- EV_SYN ------------
 
 
{{ic|MSC_SCAN}} の "value" フィールドを使って下さい。上記の例の場合、NumLock のスキャンコードは 70053 でキーコードは 69 です。
 
 
==== dmesg を使う ====
 
 
{{Note|この方法では全てのキーの''スキャンコード''を確認することはできません。未知のキーだけを確認できます。}}
 
 
調べたいキーを押して {{ic|dmesg}} コマンドの出力を確認することでキーの''スキャンコード''を取得できます。例えば、以下のように表示された場合:
 
 
Unknown key pressed (translated set 2, code 0xa0 on isa0060/serio0
 
 
必要な''スキャンコード''は {{ic|0xa0}} です。
 
 
=== キーコード ===
 
 
{{Warning|Linux コンソールと Xorg で''キーコード''は異なっています。適切なツールを使って確認するようにしてください。}}
 
 
==== コンソール ====
 
 
[[Wikipedia:ja:仮想コンソール|仮想端末]]の''キーコード''は ''showkey'' ユーティリティを使って確認できます。''showkey'' はキーが押されるのを待機して、10秒間何もないと終了します。10秒間放置する以外に終了する方法はありません。''showkey'' は仮想端末から実行する必要があります。グラフィカル環境から実行してはいけません。次のコマンドを実行して何かキーボードのキーを押して見て下さい:
 
 
# showkey --keycodes
 
 
''キーコード''が画面に出力されるはずです。
 
 
==== Xorg ====
 
 
[[Xorg]] によって使用される''キーコード''は ''xev'' という名前のユーティリティで判別できます ({{Pkg|xorg-xev}} パッケージに入っています)。もちろん ''xev'' を使用するには、コンソールではなくグラフィカル環境から実行する必要があります。
 
 
次のコマンドで ''xev'' を起動して肝心の部分だけを表示できます:
 
 
$ xev | awk -F'[ )]+' '/^KeyPress/ { a[NR+2] } NR in a { printf "%-3s %s\n", $5, $8 }'
 
 
出力例:
 
 
38 a
 
55 v
 
54 c
 
50 Shift_L
 
133 Super_L
 
135 Menu
 
 
キーを押してもターミナルに何も表示されない場合、キーに''スキャンコード''が設定されていないか''スキャンコード''が''キーコード''にマッピングされていない、あるいは他のプロセスがキーの押下をキャプチャしています。X サーバーを使用しているプロセスがキーの押下を取得してしまっているようなときは、新しい X セッションから ''xev'' を実行してみてください:
 
 
$ xinit /usr/bin/xterm -- :1
 
 
== スキャンコードをキーコードにマッピング ==
 
 
次の記事を参照してください: [[スキャンコードをキーコードにマップ]]。
 
 
== キーコードをキーシムにマッピング ==
 
 
=== コンソール ===
 
 
次の記事を参照してください: [[コンソールでの特別なキーボードキー]]。
 
 
=== Xorg ===
 
 
次の記事を参照してください: [[xmodmap]]。
 
   
 
== ノートパソコン ==
 
== ノートパソコン ==
   
=== Apple MacBook ===
+
=== Apple MacBooks ===
   
MacBook に関する情報は [[Apple Keyboard]] の記事を読んください
+
必要な情報はすべて [[Apple Keyboard]] の専用記事で見られます
   
 
=== Asus M シリーズ ===
 
=== Asus M シリーズ ===
   
Asus マシンの光学センサーやマルチメディアキーを制御するには、次のコマンドを実行してください:
+
Asus の光学センサーやマルチメディアキーを制御するには、次のコマンドを使用してください:
   
 
# echo 1 > /sys/devices/platform/asus_laptop/ls_switch
 
# echo 1 > /sys/devices/platform/asus_laptop/ls_switch
   
起動時に上記コマンドを実行させるには [[Systemd#一時ファイル|Systemd tmpfile]] を作成:
+
起動時に上記コマンドを実行させるには [[systemd-tmpfiles|Systemd tmpfile]] を作成してください:
  +
 
{{hc|/etc/tmpfiles.d/local.conf|
 
{{hc|/etc/tmpfiles.d/local.conf|
 
w /sys/devices/platform/asus_laptop/ls_switch - - - - 1
 
w /sys/devices/platform/asus_laptop/ls_switch - - - - 1
125行目: 27行目:
 
{{Note|他の機種の Asus ノートパソコンでも使えることがあります。}}
 
{{Note|他の機種の Asus ノートパソコンでも使えることがあります。}}
   
=== Asus N56VJ ===
+
=== Asus N56VJ (おそらく他のものも) ===
  +
  +
特殊キーが動作しない場合、次のコマンドで asus-nb-wmi カーネルモジュールをロードしてみてください:
   
特殊キーが動作しない場合、次のコマンドで {{ic|asus-nb-wmi}} カーネルモジュールをロードしてみてください:
 
 
# modprobe asus-nb-wmi
 
# modprobe asus-nb-wmi
   
それから xev をもう一度確認してください。{{ic|1=acpi_osi="!Windows 2012"}} ブートオプションを使っている場合、xev で変な結果が表示されることがあるので、使わないようにしてください。モジュールをロードすることで問題が解決する場合、[[カーネルモジュール]]の記事に書かれているようにして、起動時にモジュールをロードするようにしてください。
+
それから xev をもう一度確認してください。acpi_osi="!Windows 2012" ブートオプションを使っている場合、xev で変な結果が表示されることがあるので、使わないようにしてください。モジュールをロードすることで問題が解決する場合、[[カーネルモジュール#systemd により自動モジュールロード]] に書かれているようにして、起動時にモジュールをロードするようにしてください。
   
=== Lenovo T460p ===
+
=== Lenovo T460p (おそらく他のものも) ===
始めの状態では {{ic|/dev/input}} インターフェイスからでもバックライトキー (F5, F6) が使えません。解決するには、ブートパラメータに以下のオプションを追加してみてください:
 
   
  +
始めの状態では {{ic|/dev/input}} インターフェイスからでもバックライトキー (F5, F6) が使えません。解決するには、[[バックライト#カーネルコマンドラインオプション]] の指示に従ってください。
{{hc|/etc/default/grub|
 
2=GRUB_CMDLINE_LINUX_DEFAULT="... video.use_native_backlight=1 ..."
 
}}
 
   
 
== ゲーミングキーボード ==
 
== ゲーミングキーボード ==
143行目: 43行目:
 
ゲーミングキーボードに搭載されている特殊な機能が Linux でおかしな挙動を引き起こすことがあります。
 
ゲーミングキーボードに搭載されている特殊な機能が Linux でおかしな挙動を引き起こすことがあります。
   
===Cooler Master CM Storm QuickFire TK===
+
=== Cooler Master CM Storm QuickFire TK ===
   
N キーロールオーバーと Win-Lock キーが Linux で問題を起こします。
+
このキーボードの N キーロールオーバーと Win-Lock キーが Linux で問題を起こします。
   
N キーロールオーバーはファンクションキーに干渉することがあります [https://bbs.archlinux.org/viewtopic.php?id=170877]。N キーロールオーバーを無効化するには、FN ロックキー (右 Ctrl の横にあるキー) を押し続けてライトが点いたら、Escape を押しながら 6 を押すことで 6 キーロールオーバーに切り替わります。FN ロックキーを押すと Fn ロックが無効になります。
+
N キーロールオーバーは[https://bbs.archlinux.org/viewtopic.php?id=170877 ファンクションキーに問題を引き起こす]場合があります。N キーロールオーバーを無効化するには、FN ロックキー (右 Ctrl の横にあるキー) を押し続けてライトが点いたら、Escape を押しながら 6 を押すことで 6 キーロールオーバーに切り替わります。FN ロックキーを押すと Fn ロックが無効になります。
   
 
Win-Lock キーは Super (Windows) キーを完全に無効化します。FN ロックキーと F12 を同時に押すことで Win-Lock のオンオフを切り替えられます。
 
Win-Lock キーは Super (Windows) キーを完全に無効化します。FN ロックキーと F12 を同時に押すことで Win-Lock のオンオフを切り替えられます。
   
===Corsair K シリーズ ===
+
=== Corsair K シリーズキーボード ===
  +
このキーボードにはキーボードの右上 NumLock と CapsLock の間に、Super (Windows) キーを無効化する winlock ボタンがあります。 [https://github.com/ckb-next/ckb-next CKB] ドライバーを利用すると、winlock 機構を完全に無効化できます。しかし既定では、winlock ボタンをもう一度押すと Super (Windows) キーが有効になります。
 
  +
このキーボードにはキーボードの右上 NumLock と CapsLock の間に、Super (Windows) キーを無効化する winlock ボタンがあります。CKB ドライバーを利用すると、winlock 機構を完全に無効化できます。しかし既定では、winlock ボタンをもう一度押すと Super (Windows) キーが有効になります。
  +
  +
このキーボードシリーズには、Super (Windows) キーを無効化する winlock ボタンがあります。このボタンは右上 NumLock と CapsLock の間にあります。CKB を使用することで、winlock 機構を完全に無効化できます。しかし、デフォルトの状態では、winlock ボタンをもう一度押すと、Super (Windows) キーが有効になります。
   
 
=== Logitech G シリーズ G710 と 710+ ===
 
=== Logitech G シリーズ G710 と 710+ ===
   
6個のプログラマブル G キーが搭載されたキーボードです。使用するには {{aur|sidewinderd}} をインストールして {{ic|sidewinderd.service}} を[[起動]]する必要があります。[[Logitech ゲーミングキーボード]]も参照
+
このキーボード上には6個のプログラマブル G キーが1列に並んいます。Logitech の意図たとおりに使用するには{{aur|sidewinderd}} をインストールして {{ic|sidewinderd.service}} を[[起動]]する必要があります。
  +
  +
=== Logitech G613 ===
  +
  +
このキーボード上には6個のプログラマブル G キーが1列に並んでいます。Logitech の意図したとおりに使用するには、{{Pkg|solaar}} をインストールする必要があります。''solaar'' を使って、G キーの機能を流用したり、リマップしたりできるようになります。
  +
  +
== 非標準的なキーボード ==
  +
  +
=== Royal Kludge RK61 とおそらく他の Apple キーボード ===
  +
  +
一部の Apple キーボード (Royal Kludge RK61 を含む) では、ファンクション {{ic|F1}}–{{ic|F12}} キーが mac のメディアキーにデフォルトで割り当てられています。{{ic|Fn Lock}} が使用できない場合、デフォルトの Apple キーボードの挙動を変更しない限り、この挙動しか利用できません。これを改善するには、キーボードが Apple キーボードとして認識されていることを以下のコマンドで確認してください:
  +
  +
# lsusb | grep "Apple.*Keyboard"
  +
  +
Apple キーボードが見つかった場合、[[Apple Keyboard#ファンクションキーが動作しない]] に進んでください。
   
 
== 参照 ==
 
== 参照 ==
   
* [http://wiki.linuxquestions.org/wiki/Configuring_keyboards#Enabling_Keyboard_Multimedia_Keys Enabling Keyboard Multimedia Keys] - LinuxQuestions wiki のガイド
+
* [[LQWiki:Configuring keyboards#Enabling Keyboard Multimedia Keys]]
  +
  +
{{TranslationStatus|Extra keyboard keys|2022-09-20|747563}}

2022年9月20日 (火) 16:50時点における最新版

この記事では、あなたが キーボード入力 の記事を読んだことを想定しています。

多くのキーボードにはいくつかの 特殊キー (ホットキー とも マルチメディアキー とも呼ばれます) が存在します。それらは、アプリケーションの実行や (標準的な国際キーマップには含まれていない) 特殊文字の入力を行うことを想定しています。udev は様々なキーボードに関する巨大なデータベースを持っているため、基本的なキーボードは何も設定せずとも問題なく動作します。最近発売されたばかり、または非常にレアなハードウェアを使っている場合に、マッピングを手動で調整する必要がでてきます。

ノートパソコン

Apple MacBooks

必要な情報はすべて Apple Keyboard の専用記事で見られます。

Asus M シリーズ

Asus 機の光学センサーやマルチメディアキーを制御するには、次のコマンドを使用してください:

# echo 1 > /sys/devices/platform/asus_laptop/ls_switch

起動時に上記コマンドを実行させるには Systemd tmpfile を作成してください:

/etc/tmpfiles.d/local.conf
w /sys/devices/platform/asus_laptop/ls_switch - - - - 1
ノート: 他の機種の Asus ノートパソコンでも使えることがあります。

Asus N56VJ (おそらく他のものも)

特殊キーが動作しない場合、次のコマンドで asus-nb-wmi カーネルモジュールをロードしてみてください:

# modprobe asus-nb-wmi

それから xev をもう一度確認してください。acpi_osi="!Windows 2012" ブートオプションを使っている場合、xev で変な結果が表示されることがあるので、使わないようにしてください。モジュールをロードすることで問題が解決する場合、カーネルモジュール#systemd により自動モジュールロード に書かれているようにして、起動時にモジュールをロードするようにしてください。

Lenovo T460p (おそらく他のものも)

始めの状態では /dev/input インターフェイスからでもバックライトキー (F5, F6) が使えません。解決するには、バックライト#カーネルコマンドラインオプション の指示に従ってください。

ゲーミングキーボード

ゲーミングキーボードに搭載されている特殊な機能が Linux でおかしな挙動を引き起こすことがあります。

Cooler Master CM Storm QuickFire TK

このキーボードの N キーロールオーバーと Win-Lock キーが Linux で問題を起こします。

N キーロールオーバーはファンクションキーに問題を引き起こす場合があります。N キーロールオーバーを無効化するには、FN ロックキー (右 Ctrl の横にあるキー) を押し続けてライトが点いたら、Escape を押しながら 6 を押すことで 6 キーロールオーバーに切り替わります。FN ロックキーを押すと Fn ロックが無効になります。

Win-Lock キーは Super (Windows) キーを完全に無効化します。FN ロックキーと F12 を同時に押すことで Win-Lock のオンオフを切り替えられます。

Corsair K シリーズキーボード

このキーボードにはキーボードの右上 NumLock と CapsLock の間に、Super (Windows) キーを無効化する winlock ボタンがあります。CKB ドライバーを利用すると、winlock 機構を完全に無効化できます。しかし既定では、winlock ボタンをもう一度押すと Super (Windows) キーが有効になります。

このキーボードシリーズには、Super (Windows) キーを無効化する winlock ボタンがあります。このボタンは右上 NumLock と CapsLock の間にあります。CKB を使用することで、winlock 機構を完全に無効化できます。しかし、デフォルトの状態では、winlock ボタンをもう一度押すと、Super (Windows) キーが有効になります。

Logitech G シリーズ G710 と 710+

このキーボード上には6個のプログラマブル G キーが1列に並んでいます。Logitech の意図したとおりに使用するには、sidewinderdAUR をインストールして sidewinderd.service起動する必要があります。

Logitech G613

このキーボード上には6個のプログラマブル G キーが1列に並んでいます。Logitech の意図したとおりに使用するには、solaar をインストールする必要があります。solaar を使って、G キーの機能を流用したり、リマップしたりできるようになります。

非標準的なキーボード

Royal Kludge RK61 とおそらく他の Apple キーボード

一部の Apple キーボード (Royal Kludge RK61 を含む) では、ファンクション F1F12 キーが mac のメディアキーにデフォルトで割り当てられています。Fn Lock が使用できない場合、デフォルトの Apple キーボードの挙動を変更しない限り、この挙動しか利用できません。これを改善するには、キーボードが Apple キーボードとして認識されていることを以下のコマンドで確認してください:

# lsusb | grep "Apple.*Keyboard"  

Apple キーボードが見つかった場合、Apple Keyboard#ファンクションキーが動作しない に進んでください。

参照

翻訳ステータス: このページは en:Extra keyboard keys の翻訳バージョンです。最後の翻訳日は 2022-09-20 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。