🤖

Fire TVにMoonlightを入れて物理キーボードを使ったら割と地獄だった話

2025/03/09に公開

結論から言うと

どうしようもなかった。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\

sunshine.conf
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に転がっている。

https://www.amazon.co.jp/dp/B0D5Y9SGRW

GitHubで編集を提案

Discussion