Astro Slide 5Gの設定

# Astro Slide 5Gとは

Astro Slide 5Gです。

Astro Slide 5Gとは英国Planet Computersによる、QWERTY物理キーボード付きAndroidです。この記事を執筆している段階ではまだ一般販売というより、クラウドファウンディングに対する返礼を届けている途中なのかなという認識です。

https://www.indiegogo.com/projects/astro-slide-5g-transformer#/

2020年3月開始されたクラウドファンディングにその日の内に申し込んで、3年近く経ってようやく届きました。長かった。

# SKK

macOSでもWindowsでも日本語入力にはSKKを愛用しています。
emacsではddskkを使っています。

せっかく両手でタッチタイプできる端末を入手したのにSKKを使わないなんてもったいないです。という訳でSKK for Androidをインストールしました。
http://ray-mizuki.la.coocan.jp/software/skk_jp.html

# Jota+

せっかく両手でタッチタイプできる端末を入手したのでテキストエディタは必須です。
Android上でのテキストエディタとしてはJota+を愛用しているので、これをインストールしました。
https://play.google.com/store/apps/details?id=jp.sblo.pandora.jota.plus&hl=ja&gl=US&pli=1

Jota+のPRO-KEYとDrive ConnectorV2もインストールしています。PRO-KEYは有料ですが、買い切りかつそれほど高くないので助かります。(Unihertz Titan Slimでも使っています。)

ただ、SKK for Androidを日本語入力IMEとして利用する場合には、SKKでよく利用するControl-JがJota+での操作に悪影響を与えます。Jota+の設定→ショートカット→Jを「割り当て無し」に設定することで、この悪影響を回避しています。

![jota.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50555/69b1e202-a0fe-3869-cc7f-8fc95d7a4277.jpeg)

# TIC-80

せっかく両手でタッチタイプできる端末を入手したのでコードも書きたいです。TIC-80は、8ビットパソコンを彷彿させるような小さくて制限されたゲームの開発環境です。Windows, macOS, Linuxなどのバイナリも用意されていて、ソースコードも公開されています。(個人的にはpomera DM-200上のLinux上でもビルドして動かしたりしていました。)
https://tic80.com/

Androidにも移植されています。(昔はPlay Storeにもあった気がするのですが、今は見当たらないですね。) F-Droidにもありますが、公式のダウンロードページにapkファイルがあります。
https://tic80.com/create
https://github.com/nesbox/TIC-80/releases

TIC-80は基本的に無料で問題なくゲームを作ることもできますし、他の人の作ったゲームを遊ぶこともできます。なお、10 USDでPROバージョンを購入することもできて、ちょっとだけ便利になります。自分も寄付の気持も込めて購入しました。

![tic80_code.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50555/35b75724-3c2d-fc25-a866-7dcc363e4553.jpeg)

コードエディタの写真です。言語はRubyです。他にもLua, JavaScriptなど使えます。詳細は公式ページを参照して下さい。

![tic80_sprite.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50555/7fd35472-6d48-325f-3469-5d4fc1b868d1.jpeg)

こちらはスプライトエディタの写真です。さすがにスプライトを指(タッチパネル)で描くのはしんどいので、USB-C接続の無線マウスを繋いでみました。

# Termux

タッチタイプできる端末はコマンド入力できてこそ、色々開発できてこそです。Linux環境とそのターミナルにはTermuxを選びました。
https://termux.dev/en/

Termuxは公式サイトからもダウンロードできますが、今回はF-Droidからダウンロードしました。
https://f-droid.org/en/packages/com.termux/

なお、Play Storeにもありますが、こちらは更新が止まって古くなってしまっています。

![termux.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50555/01a6a59f-3ae8-f055-c273-739ae74371ed.jpeg)


## Termux自身の設定

Termux自身の設定項目は大体以下のようなところです。

### termux-setup-storage

Termuxのターミナルにて `termux-setup-storage` を実行すると、 `~/storage` からAndroidのダウンロードフォルダに読み書きできるようになります。
ファイルのやりとりに使えます。
https://wiki.termux.com/wiki/Termux-setup-storage

### フォント

Termuxの中で `~/.termux/font.ttf` に好きなTTFファイルを置くことで、ターミナルのフォントを変更できます。フォントファイルは上記のtermux-storage-storageを経由するなどして持って来ることができます。

フォントサイズはピンチイン・ピンチアウトで変更できます。

### 色

Termux:Stylingをインストールすることで画面長押しで現れるメニューの「Style」から配色を変更できるようになります。
`~/.termux/colors.properties` を編集することでより細かく設定できます。
https://f-droid.org/ja/packages/com.termux.styling/

### ESCキー対策

Astro SlideのESCキーはAndroidのバック(◁)キーに割り当てられているように見えます。よって、Termuxを使っているときにうっかりESCキーを押すとTermuxを終了してホーム画面に戻ってしまいます。これはEmacsを使うにしてもViを使うにしてもかなりストレスになります。

`~/.termux/termux.properties` に `#back-key=escape` という行が含まれていますが、これをコメントアウトして `back-key=escape` とすることで、ESCキーを押してもTermuxが終了せずにESCキーのイベント発生として扱われるようになります。
バック(◁)キーもESCキーとして扱われるようになりますが、特に問題ではないでしょう。

### それ以外

画面の左外側から画面内へのフリックで、種々設定が可能なパネルが現れます。`~/.termux/termux.properties` の編集でも種々設定変更できるようです。

## rclone

他の開発環境(WindowsやmacOS上のものも含む)とのコードやらメモの同期にはGoogle Driveを用いています。以前は<a href="http://hitoriblog.com/?p=52226">ひとりぶろぐさんの記事</a>を参考にDropbox経由で同期をしていたのですが、無料でのDropbox同期対象が3端末に制限されるように使いにくくなってしまいました。Google Driveにはこういった制限はありません。

rcloneのインストール自身は `pkg install rclone` で可能です。Google Driveで使うための設定は以下にあります。(client_idとclient_secretの設定のところだけちょっと面倒です。) なお、自分はマウント以降は試していません
https://dev.classmethod.jp/articles/mounted-google-drive-using-rclone/

Google Driveとローカルストレージの双方向同期にはrcloneのbisyncコマンドを利用できます。bisyncコマンドはまたベータ機能ということなので心して利用すべしです。
https://rclone.org/bisync/

Google Driveをgdriveという名前で設定し、Google Drive内の `dir_a` というディレクトリ以下をローカルストレージの `~/dir_b` というディレクトリに同期する場合には、以下のように行えば良いでしょう。


1. `rclone bisync gdrice:dir_a ~/dir_b -v --resync --dry-run`
にてコピーされる内容を確認する。(dry runなので実際にはまだコピーされない)

2. `rclone bisync gdrice:dir_a ~/dir_b -v --resync`
にて実際にコピーする。また、オプション `--resync` によって `~/.cache/rclone/bisync` に同期情報が格納されるとのことです。

ここまでが準備です。日常の同期時には以下のコマンドを実行します。オプション `--resync` の有無によって同期の挙動が異なる点には注意して下さい。詳細はドキュメントを参照して下さい。

3. `rclone bisync gdrice:dir_a ~/dir_b -v`

このコマンドをシェルスクリプト化して簡単に実行できるようにしても良いでしょうし、(私はやってませんが)cronで定期的に動かすのも良いでしょう。

## その他

EmacsとかGNU ScreenとかRubyとかGCCとかGitとかpkgでインストールするだけなので省略。