キーボード入力ができるようになるか
前回で T-Deck PlusにCircuitPythonを入れたわけですが、LCDにREPLが表示されるものの、搭載キーボードからの入力でできないという状況。
keypad API はサポートされているので、頑張れば実現できそうであるが、Adafruitとしては自社ボードではないので、キーボードサポートは優先順位がかなり低いであろう。
tdeck_repl
同じように、キーボードサポートを待望している人はいるようで、PyDOSの入力処理を参考に、キーボード入力部分を作成したものがありました。
T-Deck Plus を USB ケーブルで繋いで電源を入れた後、PC上で次の操作を行う。
$ git clone https://github.com/RetiredWizard/tdeck_repl
$ cd tdeck_repl
$ cp tdeck_repl.py <CIRCUIYPYフォルダのパス>/lib
$ cp code.py <CIRCUIYPYフォルダのパス>
$ cp virtcode.py <CIRCUIYPYフォルダのパス>
リセットボタンを押して、CircuitPython を再起動する。
REPL のプロンプトが =>>
に変わっていて、T-Deck のキーボードから入力が可能になっている。左右のカーソル移動や入力履歴をたどるのはトラックボールから行える。
キーボード上に無い文字についてはマルチキー入力で可能になっている。
マルチキー入力 | 入力文字 |
---|---|
_- | = |
(+ | [ |
+) | ] |
(- | < |
-) | > |
_# | ^ |
_/ | \ |
-/ | % |
_! | & |
この tdeck_repl を抜けるには exit
を実行する。通常の REPL 表示に戻る。
使ってみた感想
キーボード入力ができるようになるのは、非常にありがたい。
しかし、入力処理は独自の input() 関数で実現されているため、REPL 操作のすべてがサポートされているわけではない。たとえば TAB による補完や、Ctrl キー操作、ペーストモードが使えない。
cardputerあたりの実装を見てみると、キー入力を直接 REPL に伝える方法はありそうである。いずれできるようにしてみたい。