使用 USB 數位鍵盤進行類似電話的輸入?

使用 USB 數位鍵盤進行類似電話的輸入?

我有這樣的USB數字鍵盤:

在此輸入影像描述

我需要在這個鍵盤上寫字元(A到Z),所以我的想法是像在舊手機上一樣使用它:

在此輸入影像描述

如果我按 1x 2,它會寫入 A、2x 2 - B、4x 9 - Z 等。

有可能做到嗎?如何?使用udev?

答案1

我沒有完整的答案,但這裡有一些可能有幫助的事情。

如果您的鍵盤連接到具有基於 Gnome 或 KDE 的 GUI 桌面的計算機,自動鍵可以用來將按鍵變成熱鍵,幾乎可以做任何你能想到的事情。由於鍵盤上的按鍵可能與常規鍵盤上的相應按鍵沒有區別,因此您所做的任何操作也會影響它們。

從終端運行xev並按鍵盤上的每個鍵以查看生成的鍵碼。它們可能與普通鍵盤相同,但如果不是,您可以使用這些代碼來區分兩者。

如果您使用的是沒有 GUI 的嵌入式系統(甚至是伺服器),則上述內容將無法運作。

我不太熟悉 Linux 設備,但是貼文可能會提供您有關如何將鍵盤輸入直接處理到腳本或程式中的線索。一旦將按鍵輸入到腳本中,您就可以做任何您喜歡的事情來回應它們。

由於這是一個腳本/程序,因此您必須找到一種方法將其輸出發送到所需的目的地。

我想到的第一個方法是使用管道。如果輸出僅發送到一個程序,那麼這將起作用。

如果解決方案需要更通用一點,命名管道可能會起作用。我還沒有使用這些,所以我對如何使用串行連接到不同程式的相同命名管道有點粗略。

答案2

解決方案是使用多重壓力機輸入法。

在應用程式中需要手動設定多按輸入法。如果您希望預設使用多重按鍵,則需要建立/.xinputrc包含以下內容的檔案:

GTK_IM_MODULE=multipress
QT_IM_MODULE=multipress

相關內容