F(x)tec Pro1のキーボードレイアウトをいじる

ここんとこずっと映画館に行けてないので最近やったゲームの話をするんですが、One Step From Edenは良かったですね。ロックマンエグゼのフォロワーというのはありそうでなかった。正直言ってエグゼはアクションゲームとカードゲームとRPGの良いとこ取りを狙って初手から中途半端になってしまったデザインだと勝手に思っていたので(やってみるとちゃんと面白いんだけど)、Slay the Spireと掛け合わせて戦闘システムを中心に削り込むと、なるほどこういう風にできるんだなあとしきりに感心してしまいました。原作リスペクト度のやたら高い音楽もいいし、大雑把なゲームバランスに耐えられる人にはおすすめです。

すみません、本題はロックマンでなく、このあいだ紹介したQWERTYキーボード端末F(x) tec Pro1のキーレイアウトを1個だけ変えた話をします。

成果物

github.com

Githubに上げました」で話が9割終わってしまう。Releasesにapkがあります。

説明

解説記事を参照してください。

余談など

Androidの物理キーボードレイアウトはrootを取らずに変更可能で、*.kcm なファイル群をapkとしてパックしインストールしてしまえば、パッケージ名に紐づけられたレイアウト定義として選択可能になります。大昔(Motorola Milestone 2あたりだからAndroid 2.3以前)はroot取ったりシステムファイルのアンロックと書き換えが必要だったりしたんですが。

このあたりは2~3年ほど先を行っているGemini PDAの先輩方が詳しい。

現在Pro1向けに公開されているキーボードレイアウトとしてはPlay StoreのFinQwertyやそのfork版でF(x) tec Pro1 USレイアウト専用のFx Qwertyなんかがあって、個人的には日本語入力を一撃で切り替えられるレイアウトがそろそろ欲しくなってきたのでSymに半角/全角・漢字キーを割り当てていこうと思いました。元々Pro1では記号パネルが開かなくて存在意義のよくわからないキーだったのでちょうどいいかと。

(改変元をFinQweryでなくFx Qwertyにしたのはレイアウトの種類が絞り込まれていて改造しやすそうだったのと、何よりキーバインドが多いわりに素直で出来がいいと思っているので‥‥)

ビルドは全然わかってないなりに公式手順通りにAndroid StudioSDKと適切な環境変数だけあればgradle動かして終わるだろうと思ってたらそんなことはなく*1Android Studioでプロジェクトとして読み込んでAPIを更新したりパッケージ名を変えたり、gradleの設定がリロードされないのに数時間詰まってcloneからやり直したりしていて、勘と思い付きで合っていたキーの設定よりもビルドの方が面倒でした。

まあ署名の作り方は分かったし、ゼロからではないにせよキーマップのまとめかたも大体わかったので、今後はPro1にしてもそれ以外の端末を入手するにしてもキー配置に向き合うのが少しだけ怖くなくなった気がします。よかったね。

*1:公式の手順としては、FinQweryはおそらく編集省力化のためにPythonスクリプトによるキー定義が同梱されていて、.kcmだけでなく.pyを変更してからgradleを蹴ってビルドする