解決有問題的鍵盤/破解輸入流?
當我
oun
快速鍵入鍵序列時,鍵序列oun<F12>
由我的鍵盤發出。(更新:實際上,您必須按住序列中的每個鍵才能觸發問題。如果在按 ‘u’ 之前釋放 ‘o’,則不會觸發問題)。
我在使用Google瀏覽器輸入網站時首先註意到了這個問題,並註意到開發者控制台會在輸入時隨機彈出。
<F12>
直到我輸入 vim 並突然出現在我的文本中時,我才弄清楚具體細節。幾分鐘的實驗產生了以下結果:
- 這是 100% 可重複的,每次
- 它由鍵序列“oun”專門觸發
- 在您按下第三個鍵時,必須仍然按下第一個鍵。在按下下一個鍵之前釋放每個鍵不會觸發問題(這就是為什麼只有在快速鍵入時才會遇到問題)。
作為開發人員,這似乎是一個需要解決的直截了當的問題(如果您按順序看到這四個輸入,則放棄第四個)。但是,我不知道從哪裡開始:Linux 上有哪些低級輸入流過濾可用,或者如何破解設備驅動程序等。
我的問題是,我將在哪裡實施這樣的改變?在核心中?是否有接受過濾器的鍵盤輸入處理機制?
額外細節:
這是在 HP ProBook 4530s(2011 年的商務筆記型電腦)上。我在 Windows 7 主機上的 VirtualBox VM 中執行 Debian 8。我還沒有啟動 Knoppix 來驗證問題在 100% 純 Linux 環境中仍然存在,但我非常有信心這是在作業系統級別以下發生的問題。
其他人在 2012 年用全新的 4530 報告了完全相同的問題(相同的鍵序列):http ://www.tomsguide.com/forum/75276-35-keys-activate-typing-help
更新:
我使用 Knoppix 引導 4530 並執行 xev 以確認這是一個硬體問題。這是輸出的摘錄,您可以在其中看到
oun<F12>
序列:https ://gist.github.com/cellularmitosis/018d822e5ccc5c1a64e6更新 2:
好吧,我很幸運,BIOS 更新足以解決問題。請參閱http://h20564.www2.hp.com/hpsc/swd/public/detail?sp4ts.oid=5060881&swItemId=ob_146941_1&swEnvOid=4059
我接受了 Dmitry 的回答,因為如果 BIOS 更新沒有解決問題,我接下來會嘗試這樣做。
GitHub 上有一個名為inputty的項目,它可以完成您想要實現的目標 - 它從真實的 HID 設備讀取 evdev 事件並創建 uinput 設備來模擬虛擬 HID 硬體。例如,這是一個qml 腳本,它添加了一個虛擬鍵盤,它在真實鍵盤上的
x
按鍵之後輸出額外的按鍵。f
你應該能夠用它來實現你的算法,或者
F12
如果你可以不用它就放棄它。