自由なスマートフォン "PinePhone Pro"を日本語で使いやすくする

## 必要なハードウェア
- PinePhone Pro本体
- microSDカード
- PC

#### あると嬉しいもの
- 保護ガラスカバー
PinePhoneのディスプレイは素の状態だと指紋つきまくり&全く滑らないのでゴミです
- USBドック
これがあるとディスプレイ・キーボード・マウスを接続してPCとして使えます
- SIMカード
スマートフォンとして使うなら


## OSの選定
PinePhoneには多様なOSがインストールできます。この中で私がおすすめするのは**Mobian Phosh**です。
主な理由としては
- 日本語入力メソッドがある
- インストーラが使え、フルディスク暗号化も簡単
- 安定していてバグが少ない

他のOSを使った感想は以下です。

#### Manjaro Plasma
Plasmaはバグが異常に多いです。画面ロックから復帰できないのは当たり前。日本語入力もできません。
ただ、アプリケーションの動作は速かったのが印象的です。

#### Arch 
インストーラがないので、フルディスク暗号化が難しいです。

#### PostmarketOS
インストーラがあり、様々なデスクトップ環境が使用できます。動作も軽く一番成熟しているかなと思いますが、日本語入力メソッドが無いです。
テク諏さんは自分でリポジトリを作ってFcitx5+Mozcを使用しているらしいですが、面倒でしょう？
現状このOSだけで使えるデスクトップ環境のGNOME Mobileは非常に良かったです。

結果、フルディスク暗号化と日本語入力を両立しているのがMobian Phoshだけだったということです。
ということで、Mobian Phoshをインストールしていきましょう。


## ブートローダをSPIにフラッシュ
MobianはTow-Bootというブートローダが必須で、これをPinePhone ProのSPIにフラッシュする必要があります。
Tow-BootをSPIにフラッシュすることで、デュアルブート(内蔵eMMCとSDカード)が簡単になります。
私のPinePhoneは既にフラッシュ済みなので画像が出せませんが、手順を説明します。

#### 1. ダウンロード
Tow-Bootイメージをダウンロードします。
[GitHubのリリース]("https://github.com/Tow-Boot/Tow-Boot/releases")

#### 2. SDカードにフラッシュ
イメージを展開し、SDカードにddなどでフラッシュします。

#### 3. Tow-Bootインストーラの起動
PinePhoneの電源を切り、SDカードを挿入します。
REボタンを押し続けながら電源を投入すると、Tow-Bootのインストーラが起動するはずです。
これは販売時期や入っているブートローダによって変わると思うので、各自調べてみてください。音量の-とREを同時押ししながら電源投入を行う必要があるという投稿も見かけました。

#### 4. Tow-BootをSPIにフラッシュ
Start InstallationからSPIにフラッシュを選択すれば自動でインストールされます。

#### 5. Tow-Bootの使い方
これでTow-BootがPinePhone Proにインストールされました。
電源起動時にバイブレーションしたあと、何もしなければeMMCからの起動、音量-キーを押し続けるとSDカードから起動、音量+キーを押し続けるとUSBでeMMCにアクセスできるモードと選べるようになります。

## Mobianのインストール
Mobianのサイトからイメージをダウンロード・インストールします。
WeeklyリリースとStableリリースがありますが、今回はStableを使用します。

#### 1. ダウンロード
Mobianインストーラをダウンロードします。最新のStableインストーラを選んでください。
[公式サイト](https://images.mobian.org/pinephonepro/)
![01_selectimage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/6c3ced07-4452-028a-c9e3-8b6d8b8b4133.png)

#### 2. SDカードにフラッシュ
Tow-Bootのインストーラは用済みなので、ダウンロードしたイメージをddなどを使用してフラッシュします。

#### 3. Mobianインストーラの起動
PinePhoneの電源を切り、SDカードを挿入します。今度はREボタンを押さなくていいので、カバーをつけても構いません。
電源を投入後に一度バイブレーションするので、音量の-を押し続けてください。LEDがシアンに点灯し、Mobianインストーラが立ち上がります。もし失敗してしまった場合は何度かやり直してみてください。

#### 4. インストール先の決定
インストーラが立ち上がるとこのような画面になります。
![02_mobiansetup1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/3c94c4ea-3819-e32a-7c9a-ae2a98e56f09.jpeg)

インストール先を選べます。普通はeMMCにインストールします。
![20240809_203635.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/8040e5c7-ffd0-f118-ed7b-d247ea93a537.jpeg)


#### 5. その他インストールの設定
画面ロック解除に使用するPINを要求されます。
これはユーザのパスワードにもなります。sudoを使うときなどもこのPINを使います。
![20240809_203647.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/d6b46d1d-8e76-0932-fcd1-c1e0573740c1.jpeg)


ファイルシステムの種類をext4とbtrfsから選べます。私は新しいbtrfsにしていますが、ここはどっちでも良いでしょう。
![20240809_203727.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/0e28b8c6-73e0-a205-3af8-51f133bf2859.jpeg)


フルディスク暗号化の設定をします。これが欲しくてMobianを選んでいるのでenableとします。
![20240809_203735.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/dae31388-d877-3517-3918-d394ebcc4cb0.jpeg)


パスフレーズを入れます。ここでは上の列に数字が出てきていませんが、起動時に出てくるキーボードには数字の列もあるので入れていても不便にはなりません。
![20240809_203832.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/799be691-081a-5ec2-64a0-9f92a6db0fdf.jpeg)

#### 6. インストール開始
これで準備完了です。
Installボタンを押すとインストールが開始され、再起動します。
![20240809_203843.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/b1837941-25dc-7962-bb6d-0e9bf2d8faba.jpeg)
![20240809_205404.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/03e042e6-7d54-4d6d-5eaf-42f3d9d6092d.jpeg)



## GUI説明/重要アプリケーション
これでMobianが起動しました。画面は見れば説明がなくてもわかると思いますが、重要なところだけ説明します。
操作しているとウザいバイブレーションが気になるかと思いますが、これは後で消します。


#### 設定パネル&通知
画面を上からスワイプすると表示されます。
各種アイコンはタップでON/OFFを切り替えられます。長押しすると設定画面に飛びます。
下部には通知が表示されます。
![Screenshot from 2024-08-09 23-23-52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/fde1ac55-325e-aa43-9424-204605ed1475.png)

#### 下部ナビゲーションバー(?)
下からスワイプすることでアプリケーション一覧へ移行できます。
右下のボタンを押すとソフトウェアキーボードを出したり消したりできます。
![Screenshot from 2024-08-09 23-28-53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/aff1e86c-6d62-017d-4840-630fc8ec2865.png)![Screenshot from 2024-08-09 23-27-31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/a61ed0bf-6faf-c9e2-b960-828f8e2cac33.png)

#### アプリケーション一覧
アルファベット順にインストールされているアプリケーションが並んでいます。
長押しをすることで上部固定が可能です。
下部の切り替えボタンを押すことでモバイルに最適化されていないアプリケーションも表示できます。
この場合だとVimやVirt-managerが該当します。
![Screenshot from 2024-08-09 23-23-11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/d6267e22-1202-8f9f-f211-b9b56387a497.png)

#### スクリーンキーボード
球体マークをタップすると、キーボードの種類を選ぶことができます。基本的には常にTerminalでOKです。
CtrlキーとAltキーはタップすると同時押しモードとなります。">_"ボタンでファンクションやタブ、"123"ボタンで数字と記号入力ができます。
Keyboard Settingsは押しても何も起きません。
![Screenshot from 2024-08-09 23-47-01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/645798e2-ccb9-f453-c842-e4df333cc12b.png)

#### Mobile Settings
モバイル用に様々な設定ができます。特に重要なのはCompositorで、画面に収まらないアプリケーションをスケールダウンしてくれます。
![image_2024-08-09_23-57-36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/914a231d-5388-7d19-5d4d-4e08aafd9191.png)
![Screenshot from 2024-08-09 12-53-28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/c4c4849f-a6d9-3bdd-c405-5d512ed01de6.png)

#### ソフトウェアストア
パッケージをインストールできます。ただ万能ではないので、aptコマンドでないとインストールできないソフトウェアも多いです。
左下の表示がAdaptiveなどであればスマホでも崩れずに表示される目安です。Dektop onlyだと画面がはみ出たり操作しづらかったりします。
![Screenshot from 2024-08-09 22-23-16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/0976385f-1376-9ffe-e0e6-02e5bff9ab01.png)


## ネットワーク設定
これは人によるので割愛します。4GでもWi-Fiでもいいのでネットワークに接続してください。

## 日本語入力
ここからカスタマイズしていきます。その前にGNOME Tweaksというアプリケーションが必要なので、ストアからインストールします。
![Screenshot from 2024-08-09 13-07-08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/8f49ae25-e1c9-3a82-2f47-09e865ad055f.png)


Tweaksをインストールしたらターミナルを開き、fcitx5-mozcをインストールします。

`sudo apt update` `sudo apt upgrade`
`sudo apt install fcitx5-mozc`

終わったら、`~/.profile`に設定を書きます。末尾に以下を追加してください。
```
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
```
![Screenshot from 2024-08-09 13-04-40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/7cd67f51-8005-15f2-04a0-f5708d4b4b19.png)

アプリケーション一覧にFcitx5 Configtoolが追加されているので開きます。おそらく画面からはみ出ているので、Mobile Settingsを使ってスケールダウンしてください。
Current input methodにMozcを追加します。追加ができたらApplyで設定を確定します。
![Screenshot from 2024-08-09 13-09-39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/a860383c-91a2-c2e3-93ff-a47375196504.png)

GNOME Tweaksを使って、OS起動時にFcitx5が立ち上がるようにします。
![Screenshot from 2024-08-09 13-07-46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/f4f973b7-099d-5251-70b1-a3bfa083d4ae.png)


PinePhone Proを再起動後、キーボードでCtrl+Spaceを入力すると入力メソッドが切り替わり、日本語入力できるようになります。


##### 注意点!
これを行うことで、キーボードが自動でポップアップしなくなります。
弊害としてアプリケーション一覧のSearchが使えなくなったり、パスワードを求めるウィンドウが出てきたときに入力できなくなったりします。
その際はクリップボードにPINをコピーしておき、長押しで貼り付けしましょう。


## 余計なバイブレーションの無効化
Mobian Phoshでは通知のモードを3つのうちから選べるのですが、Silent以外だと何をしてもバイブレーションして非常に野暮ったいです。
そこで私はfeedbackdのコンフィグをいじって一部無効化しています。
/usr/share/feedbackd/themes/pine64,pinephone-pro.jsonを編集し、不必要だと思うコンフィグを消します。以下に例を出しておきます。
```
{
  "name" : "$device",
  "parent-name": "default",
  "profiles" : [
    {
      "name" : "quiet",
      "feedbacks" : [
        {
          "event-name"   : "alarm-clock-elapsed",
          "type"         : "VibraPeriodic",
          "magnitude"    : 32767,
          "duration"     : 10000,
          "fade-in-time" : 10000,
          "fade-in-level": 4096
        },
        {
          "event-name" : "message-new-instant",
          "type"       : "VibraRumble",
          "duration"   : 750
        },
        {
          "event-name" : "message-new-sms",
          "type"       : "VibraRumble",
          "duration"   : 1250,
          "count"      : 2,
          "pause"      : 250
        },
        {
          "event-name" : "message-sent-instant",
          "type"       : "VibraRumble",
          "duration"   : 250
        },
        {
          "event-name" : "timeout-completed",
          "type"       : "VibraRumble",
          "duration"   : 500
        }
      ]
    }
  ]
}
```

失敗してjsonの形を崩してしまうと文鎮化するので慎重に行ってください。文鎮化した場合はPinePhone Proの起動時に音量の+を押し続けることでemmcにUSBで接続できるモードになるので、USBでPCに接続してファイルを直します。

出来上がったらMobile Settingsを開き、FeedbackのPer Application settingsを調整します。
![Screenshot from 2024-08-09 12-54-28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/10ca5299-a9de-f605-9a09-89d177c071e8.png)

再起動後、バイブレーションが普通のスマホレベルに落ち着きます。


## ブラウザ・アラーム等、日常的に使うソフトウェア
デフォルトで入っているブラウザはFirefox ESRとGNOME Webです。
どちらもスマホだと使いづらいのでFlathub版のAngelfishをインストールします。Debianリポジトリ版はメニューのアイコンが表示されないなど不具合がありました。
アラームはClocksというソフトに内蔵されていますが、サスペンド状態だと鳴らなくなってしまうので他のソフトをインストールします。

#### 準備:FlatpakのインストールとFlathubのリポジトリ有効化
これは[公式のマニュアル](https://flathub.org/ja/setup/Debian)通りに進めるのがいいです。

インストールできたら、ストアの選択肢にFlathubが出るようになります。
![Screenshot from 2024-08-09 22-22-15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/cd2ffbe3-760f-f8b3-d64c-9a54dd34f07a.png)

### Angelfish
モバイルに最適化されたブラウザです。Flathub版をインストールしましょう。初回起動時に広告ブロックの定義ファイルをダウンロードするか聞かれます。
![Screenshot from 2024-08-09 22-24-57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/eefe13b6-775a-1b52-4aef-a8a400af1d20.png)


### Wake Mobile
アラームです。
PinePhone Proは省電力化のために不使用の際はサスペンドします。サスペンド中は"電源キー"、"USB充電開始"、"着信"、"SMS受信"以外で電源が入ることがなく、通常のアラームが使えません。
Wake Mobileはサスペンド中でも電源が入り、アラームを鳴らしてくれます。(もしかしたらモデムの更新が必要かもしれない…)

ストアに表示されないので`sudo apt install wake-mobile`でインストールします。
![Screenshot from 2024-08-09 13-16-48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/3c6b0c64-9047-b475-aaf8-5b307fe317f7.png)

### GNOME Screenshot
スクリーンショットを撮るためのアプリケーションです。
![Screenshot from 2024-08-09 13-05-32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3857576/c11a8304-2dea-5dba-e46a-cdf1d748c0c4.png)

## 終わり
これでとりあえずは使えるレベルまで持っていけたと思います
ただ私が忘れているだけで他にやったことはたくさんあると思うので、自分の使いやすいようにカスタマイズしてみてください。

何かあればX: v34103080 かDiscord: lv34 にメッセージをください。