Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
キーボード入力のソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
キーボード入力
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:キーボード設定]] [[de:Hotkeys]] [[en:Keyboard input]] [[pt:Keyboard input]] [[ru:Keyboard input]] {{Related articles start}} {{Related|特別なキーボードキー}} {{Related|入力リマップユーティリティ}} {{Related articles end}} キーマッピングを変更する前に、キーを押して記号が入力される過程を知っておく必要があります: # キーボードがコンピュータに[[Wikipedia:ja:スキャンコード|スキャンコード]]を送信する。 # Linux カーネルがスキャンコードを '''キーコード''' にマッピングする。[[スキャンコードをキーコードにマップ]] を見てください。 # [[Wikipedia:ja:キー配列|キーボードレイアウト]]によりキーコードが記号あるいは '''キーシム''' にマッピングされる (どの[[Wikipedia:ja:修飾キー|修飾キー]]が押されているかに依存します)。 #* [[Linux コンソール]]の場合は [[コンソールでのキーボード設定]] を見てください。 #* [[Xorg]] と [[Wayland]] の場合は [[Xorg でのキーボード設定]] を見てください。 ほとんどのキーにはすでに ''キーコード'' が割り当てられています (少なくとも ''スキャンコード'' は割り当てられています)。''スキャンコード'' が存在しないキーはカーネルによって認識されません。ゲーミングキーボードに追加されているキーなどで''スキャンコード''がないことがあります。 Xorg では、特定の''キーシム'' (例: {{ic|XF86AudioPlay}}, {{ic|XF86AudioRaiseVolume}} など) をアクションにマップすることができます (例: 外部アプリケーションの起動)。詳しくは [[キーボードショートカット#Xorg]] を見て下さい。 Linux コンソールでは、特定の''キーシム'' (例: {{ic|F1}} から {{ic|F246}}) を特定のアクションにマップすることができます (例: 他のコンソールへの切り替えや特定の文字列の打ち込みなど)。詳しくは [[コンソールでのキーボード設定#カスタムキーマップの作成]] を見て下さい。 == スキャンコードの確認 == === showkey を使う === ''スキャンコード''を取得するときは {{man|1|showkey}} ユーティリティを使うのが一般的です。''showkey'' はキーが押されるまで待機し、10秒たってもキーが押されなかった場合、終了します。''showkey'' を使用するには[[Wikipedia:ja:仮想コンソール|仮想コンソール]]上で実行させる必要があり、グラフィカル環境やネットワーク接続を介してログインした場合は使用できません。次のコマンドを実行してください: # showkey --scancodes コマンドを実行した後にキーボードのキーを押してみて下さい。''スキャンコード''が出力されます。 === evtest を使う === USB キーボードの場合、''showkey'' ではなく {{Pkg|evtest}} パッケージに入っている {{man|1|evtest}} を使う必要があります [https://web.archive.org/web/20210620050100/https://askbot.fedoraproject.org/en/question/46201/how-to-map-scancodes-to-keycodes/]: {{hc|# 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 ------------ }} {{Tip|興味のあるデバイスがどのイベント番号かわからない場合、パラメータなしで {{ic|evtest}} を実行することで、イベント番号とともにデバイスの一覧を表示します。そして、必要な番号を入力できます。}} {{ic|MSC_SCAN}} の "value" フィールドを使って下さい。上記の例の場合、NumLock のスキャンコードは 70053 でキーコードは 69 です。 === dmesg を使う === {{Note|この方法は未知のキーを確認するだけです。}} 調べたいキーを押して [[dmesg]] コマンドの出力を確認することでキーの''スキャンコード''を取得できます。例えば、以下のように表示された場合: Unknown key pressed (translated set 2, code 0xa0 on isa0060/serio0 必要な''スキャンコード''は {{ic|0xa0}} です。 == キーコードを確認する == Linux のキーコードは {{ic|/usr/include/linux/input-event-codes.h}} で定義されています ({{ic|KEY_}} 変数を見てください)。 === コンソールでキーコードを確認する === [[仮想コンソール]]の''キーコード''は {{man|1|showkey}} ユーティリティを使って確認できます。''showkey'' はキーが押されるのを待機して、10秒間何もないと終了します。10秒間放置する以外に終了する方法はありません。''showkey'' は仮想コンソールから実行する必要があります。グラフィカル環境から実行してはいけません。次のコマンドを実行して何かキーボードのキーを押して見て下さい: # showkey --keycodes コマンドを実行した後にキーボードのキーを押してみて下さい。''スキャンコード''が出力されます。 === Xorg でキーコードを確認する === {{Note|Xorg の ''キーコード'' は Linux の ''キーコード'' と比べて 8 ビットシフトされています。[https://gitlab.freedesktop.org/xorg/driver/xf86-input-evdev/-/blob/master/src/evdev.c]}} [[Xorg]] によって使用される''キーコード''は {{man|1|xev}} という名前のユーティリティで判別できます ({{Pkg|xorg-xev}} パッケージに入っています)。もちろん ''xev'' を使用するには、コンソールではなくグラフィカル環境から実行する必要があります。 次のコマンドで ''xev'' を起動して肝心の部分だけを表示できます: {{hc|$ 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 }} [[Xbindkeys#キーコードの確認|Xbindkeys]] は ''xev'' のラッパで、''キーコード''を報告します。 キーを押してもターミナルに何も表示されない場合、キーに''スキャンコード''が設定されていないか''スキャンコード''が''キーコード''にマッピングされていない、あるいは他のプロセスがキーの押下をキャプチャしています。X サーバーを使用しているプロセスがキーの押下を取得してしまっているようなときは、クリーンな X セッションから ''xev'' を実行してみてください: $ xinit /usr/bin/xterm -- :1 == VIA 互換キーボードの設定 == [https://www.caniusevia.com/ VIA] は、VIA と互換性のあるキーボードでキーを直接再マッピングするプログラムです。互換性のあるキーボードを持っている場合、キーボードがブラウザから認識されるようにし、キーボードをオンラインにするために、''hidraw'' ドライバを通してアクセスされるデバイスのパーミッションを変更するカスタムの [[udev]] ルールを追加する必要があります。 {{Note|この方法はセキュリティ上のリスクがあるかもしれません。}} 以下の [[udev ルール]]を[[作成]]してください: {{hc|/etc/udev/rules.d/99-via.rules|2=KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0666", TAG+="uaccess", TAG+="udev-acl"}} このルールを適用するには、以下のようにして ''udev'' を再ロードする必要があります: # udevadm control --reload == 参照 == * [https://kbd-project.org/ kbd-project] - showkeys ユーティリティの公式ページ * [https://git.sr.ht/~sircmpwn/wev wev] - xorg の xev に似た wayland イベントビューア * [[interception-tools]] - キーボード入力マッピングの挙動の制御とカスタマイズを行うユーティリティのセット * [https://github.com/kmonad/kmonad kmonad] - キーの再バインドと再マッピングを行う高度なデーモン * [https://github.com/snyball/Hawck Hawck] - キー再バインドを行うもう一つのデーモン * [https://github.com/rvaiya/keyd keyd] - シンプルなキー再バインドデーモン * [https://get.vial.today/manual/linux-udev.html#device-specific-udev-rules Vial] - VIA のスタンドアローンなプログラム {{TranslationStatus|Keyboard input|2023-08-11|785182}}
このページで使用されているテンプレート:
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Man
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
テンプレート:Tip
(
ソースを閲覧
)
テンプレート:TranslationStatus
(
ソースを閲覧
)
キーボード入力
に戻る。
検索
検索
キーボード入力のソースを表示
話題を追加