Fire TVにMoonlightを入れて物理キーボードを使ったら割と地獄だった話
結論から言うと
どうしようもなかった。USキーボードを使って、最終的にはキー配列をリマップして誤魔化した。
JISキーボード(日本語 109A)は使えない
Fire TVがUSキーボードにしか対応しておらず、更には恐らくサードパーティのIMEやキー配列の使用を許可していない。
GboardのAPKをインストールして起動することは出来た。しかしIMEとして有効化するための設定画面を開こうとしても反応が無い。
IMEの選択画面は開くことが出来たが、Gboardは有効化されていないので、これに切り換えることもできない。
ADBで接続してみたが……
Generic.klとGeneric.kcmを参照していることが分かったが、これをroot無しで置き換える方法が見つからず、手が出せなかった。
仕方ないのでUSキーボードを用意したが、Moonlight先の挙動が変
` を押すと @ が入手される。USキーボードをJISキーボードとして認識しているなら 全/半 として扱われるはず。これは一体……?
どうやら ` はJISキーボードの Shift+@ の位置にある記号のようで、 ` を押すとWindows側では Shift+@ の入力を受け取ってしまっている様子。
Windowsの設定をUSキーボードに切り換えると、今度は [ が入力された。これもUSキーボードの同じ位置にあるキーだ。
どうやら「USキーボードしか使えないFire TV」から「JISキーボードの動いているWindows」に接続すると、キーコードの再解釈が行われてしまうらしい。
Sunshine側にそれっぽいコンフィグがあった
Moonlight側には特に役立ちそうな設定項目は無かったが、PCのサーバーソフト側で以下のようなコンフィグが指定できた。
C:\Program Files\Sunshine\config\
always_send_scancodes = disabled
key_rightalt_to_key_win = enabled
これにより、Windows側をUSキーボードに切り換えれば、そのままの状態で使えるようになった(なお、日本語入力モードでは相変わらず ` が @ として認識されてしまう)
Fire TV版のMoonlight上でWinキーは効かないので、ついでに右Alt(AltGr)キーをWinキーとして扱う設定を有効化している。
発覚した新たな問題: 左右Altがマトモに使えない
Altキー、AltGr(代替Win)キーが問題なく動作していることを確認して、Alt+Tabをしてみると、なんか挙動が変。Win+Dに至っては機能すらしない。
詳しく調べてみると、AltキーやAltGrキー自体は問題なく効いている。……が、別のキーを同時押しした瞬間に解除されているようだ。修飾キーとは一体……
噂によると、Fire TV側がAltキーを使っているなんて話も。どうすることもできないのか……?
PowerToysのKeyboard Managerで誤魔化した
やたら押しやすい場所にあるApp/Menuキーが問題なく機能していたので、これをAltキーに置き換えてしまうことにした。逆にAltGrをAppキーにしても良いかも。
Shift+Capsなんて操作はしないので、同時に押しやすいということでコレをWinキーに。Shift+Caps+DでWin+D、Shift+Caps+SpaceでWin+Spaceとして問題なく動作した。
ついでに無駄に押しやすい位置にあるPageUp/Downも、Shift+PageUpでIME On、Shift+PageDownでIME Offという形で活用してみることにした。
↓入手したUSキーボード。現在在庫切れだが、似たようなキーボードは沢山Amazonに転がっている。
Discussion