kbd-tst.py は、単純なキーボード テスト プログラムです。すべてのキーの機能をテストし、次のようなグラフィカル (テキスト端末では ASCII セミグラフィックのみ) フィードバックをユーザーに提供します。
外部依存関係のない、シンプルでユーザーフレンドリーなキーボードテスト ()標準システムユーティリティのみを使用) ...
このようなユーティリティを使用せずに、たとえばテキスト エディターを使用するだけでキーボードをテストする方法があります。この場合、どのキーがテスト済みかを覚えておき、テストされていないキーを見逃さないようにする必要があります。また、kbd-test を使用すると、視覚的なフィードバックが画面上にライブ表示されるため、すべてが簡単になります。
典型的なものをいくつか示します。
最小限の実装にもかかわらず、次の要件があります。
注: xinput の依存関係により、kbd-tst は Xorg を備えた Linux のようなシステムでのみ実行できます。
kbd-tst 実装全体は「xinput テスト」を中心としています。 Xinput はサブプロセスとして実行され、出力イベントは解析され、追加の情報と統計情報を含む画面上のキーボード レイアウトとして視覚化されます。ビジュアル部分は、ANSI エスケープ シーケンスを使用して実装され、テキスト端末のカーソルの位置と色を制御します。キーボード レイアウトは、「apple.lay」や「at101.lay」などの外部 ASCII レイアウト (*.lay) ファイルから提供されます。
kbd-tst が機能するには、何らかの方法で次のように指定する必要があります。
使用方法のヘルプを表示するには、標準の「-h」または「--help」パラメータを提供します。
= Keyboard Test Program version 2017.7.28 = (c) 2017 by Robert P =
Usage: kbd-tst.py [id] [layout] [-h|--help]
kbd-tst.py [-h|--help] [layout] [id]
-h ... shows this usage help and quits
--help ... shows this usage help and quits
id ... optional keyboard device id as shown in 'xinput list' output (default user assisted autodetection)
layout ... optional keyboard ASCII layout file [*.lay] (default the first file in kbd-tst dir)
Notes:
* parameters are optional
* not providing device id will initiate a user assisted autodetection sequence requiring physical disconneting
and reconecting the keyboard under test (KUT)
* not providing the layout file is usefull if there is only single layout file in kbd-tst directory
* all unrecognized keys from layout file are shown as errors and counted as [ missing_keycodes ]
* all parameters can be supplied in arbitrary order
* in case of multiple specification the last one wins,
for example in sequence of parameters 'id1 layout1 layout2 id2' id2/layout2 pair wins
* test ends when all successfully recognized keys from layout file are tested [ to_go = 0 ]
* to end test prematurely just type phrase 'quit' (without the quotes)
Known issues:
- keys ike apple keyb VOL+/VOL-/MUTE/EJECT do not generate xinput events and therefore cannot be tested right now
- if more than one device id is found by autodetection sequence only the first one is used, which is some cases
might be incorrect. In this case provide the correct device id as a parameter (id can be found by trial and error
from 'xinput list' and verified by 'xinput test id' to show 'key press xx' and 'key release xx' events)
[ xinput double entries related bug: https://bugs.launchpad.net/ubuntu/+source/hal/+bug/277946 ]
テスト手順は次の手順で構成されます。
xinput ID の動的な性質とホットプラグのサポートにより、KUT (テスト対象の keyboatd) の正しいデバイス ID を見つける必要があります。これはテスト手順の中で最も重要であり、場合によっては最も難しい部分でもあります。
幸いなことに、ユーザー支援の自動検出モダリティが組み込まれています。 KUT (テスト対象のキーボード) がまだ接続されていない場合は、KUT を接続する必要があります。すでにKUTが接続されている場合は再接続が必要です。自動検出機能は、KUT が接続されている間システムを監視し、xinput ID を自動的に識別します。ただし、場合によっては、HAL によって 2 つのデバイスが作成され、自動検出で選択できなくなります。次に、最初のものが自動検出によって選択されます。これが正しくない場合は、コマンド ライン パラメーターとして xinput ID を手動で指定する必要があります。
> kbd-tst.py 12
レイアウト ファイルは、物理キーボード レイアウトを単純な ASCII アートで視覚的に表現したものです。各キーは角かっこで表され、内側のキー ラベルはスペースで囲まれています。たとえば、番号 1 のキーは [ 1 ] として表され、視覚的にはキーキャップのように見えます。このレイアウト ファイルはロードされ、解析され (解析エラーがあれば表示されます)、画面上の視覚的なフィードバックにも使用されます。詳細については、提供されているレイアウト ファイル (apple.lay、at101.lay) を確認してください。
ロードする必要なレイアウト ファイルの名前をパラメータとして指定する必要があります。
> kbd-tst.py at101.lay
レイアウト ファイル パラメータが指定されていない場合は、ディレクトリ内の最初のレイアウト ファイルが取得されます。これは、ディレクトリ内にファイルが 1 つしかない場合に便利です。
レイアウト ファイル内のボタンの凡例は、Layout クラスの rev_xmodmap 辞書によって翻訳可能である必要があります。これにより、短いボタン ラベルを使用して ASCII キーボード レイアウトを適切に設計できるようになります。レイアウト ファイルのボタン ラベルに rev_xmodmap ディクショナリにエントリがない場合、エラー メッセージが表示されます。テストは続行されますが、すべてのキーをテストすることはできません。したがって、そのような実行は (黄色/オレンジ色の) 警告で終了します (レイアウトのロードとテスト レポートに関する警告を示す以下のスクリーンショットを参照してください)。
独自の特定のレイアウト ファイルを自由にレイアウト ディレクトリに提供してください。
テストの最後に、概要を含む 1 行のレポートが生成されます。
次のファイル:
お役に立てば幸いです...
バージョン 2017.07.27 - 2017 年の最初の GitHub リリース
キーワード: キーボード、テスト、kbdtst、レイアウト、kbd-tst、Python、xinput、xmodmap