kbd-tst.py 是一個簡單的鍵盤測試程式。它測試所有按鍵的功能,向使用者提供圖形(好吧,文字終端中只有 ASCII 半圖形)回饋,例如:
簡單且使用者友好的鍵盤測試,無需外部依賴項()僅使用標準系統實用程式)...
有一種方法可以在沒有任何此類實用程式的情況下測試鍵盤,例如僅使用文字編輯器即可。在這種情況下,您必須記住哪些按鍵已經過測試,並且不要錯過任何未測試的鍵。透過 kbd-test 在螢幕上即時顯示視覺回饋,一切都變得更加容易。
以下是一些典型的:
儘管實現簡約,但仍存在以下要求:
注意:由於 xinput 依賴性,kbd-tst 只能在具有 Xorg 的類別 Linux 系統上運行
整個 kbd-tst 實作以“xinput test”為中心。 Xinput 作為子進程執行,輸出事件被解析並視覺化為螢幕鍵盤佈局,並帶有附加資訊和統計資料。視覺部分是使用 ANSI 轉義序列來控製文字終端遊標位置和顏色來實現的。鍵盤佈局由外部 ASCII 佈局 (*.lay) 檔案提供,例如「apple.lay」或「at101.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 創建了兩個設備,這使得自動檢測無法選擇。然後透過自動檢測選擇第一個。如果這不是正確的,您必須手動提供 xinput id 作為命令列參數:
> kbd-tst.py 12
佈局檔案是實體鍵盤佈局的簡單 ASCII 藝術視覺表示。每個按鍵都以方括號表示,裡面的按鍵標籤用空格括起來,例如:數字為 1 的按鍵表示為 [ 1 ],視覺上看起來像鍵帽。該佈局檔案被載入、解析(如果有的話,會顯示解析錯誤),然後也用於螢幕上的視覺回饋。檢查提供的佈局文件以了解詳細資訊(apple.lay、at101.lay)
必須將要載入的所需佈局檔案的名稱指定為參數:
> kbd-tst.py at101.lay
如果沒有提供佈局檔案參數,則採用目錄中的第一個佈局檔案。如果目錄中只有單一文件,這很有用。
佈局檔案中的按鈕圖例必須可以透過佈局類別中的 rev_xmodmap 字典進行翻譯。這允許使用較短的按鈕標籤來正確設計 ASCII 鍵盤佈局。如果佈局檔案中的按鈕標籤在 rev_xmodmap 字典中沒有條目,則會顯示錯誤訊息。測試將繼續,但無法測試所有按鍵。因此,此類執行將以(黃色/橙色)警告結束(請參見下面的螢幕截圖,其中包含有關佈局載入和測試報告的警告)。
請隨意將您自己的特定佈局文件貢獻到佈局目錄中...
測試結束時會產生摘要的單行報告:
以下文件:
希望它有幫助...
版本 2017.07.27 - 2017 年首次 GitHub 發布
關鍵字:鍵盤、測試、kbdtst、佈局、kbd-tst、python、xinput、xmodmap