ChromebookがCrostini（Linuxサポート）対応したので、Markdown環境と開発環境を作りたい（Share With Linuxに関して追記）

# はじめに

手持ちのChromebookがCrostini（Linuxサポート）対応したので、いろいろやったことをまとめたものです。

### 追記

- 2018/11/07 Dropboxに関して追記
- 2019/01/17 Share with Linux (Linuxと共有)に関して追記


## 目的

Chromebookは比較的安価で入手できるので、気軽に外に持ち出して、メモ書き、ちょっとしたデモや発表をやりたい。具体的には以下の通りです。

- Boostnoteをインストールして、Dropboxでファイルを共有して、Markdown環境を作りたい
- VS CodeやPycharmをインストールして、Pythonの開発環境を作りたい

Markdownに関しては、Chromebookで動くAndroidアプリでどうにかなるのでは？と思われるかもしれませんが、スマホ最適化されたアプリをChromebookでは使い辛く、またすべてのアプリがChromebookで使えるとは限らない（アーキテクチャごとのビルドなど）ので、Crostiniで頑張ります。



## 環境

今回使用するChromebookは、[ASUS Chromebook C223NA \(C223NA\-GJ0018\)](https://jp.store.asus.com/store/asusjp/ja_JP/pd/productID.5228949300/ASUS-Chromebook-C223NA-C223NAGJ0018) （バージョン: 69.0.3497.120（Official Build） 64 ビット）です。私が購入した三台目のChromebookであり、安価でありながら、11インチディスプレイ、ストレージが32GB、そしてUSB Type-Cの充電。名機の予感。

# Boostnoteのインストール


ChromebookでMarkdownアプリといえば[StackEdit](https://stackedit.io/)というのがあります。先日４日間ほど開催されたカンファレンスではずっとこれでメモを取ってました。しかしながら、私はMarkdownファイルの作成と管理をやりたいので、このアプリは十分ではありませんでした。

Crostini対応したので、Boostnoteを選びました。[公式サイト](https://boostnote.io/)からdebファイルをLinuxファイルへダウンロード。Chromebookのファイルアプリで右クリックでインストールか、コマンドでインストールができます。

```
$ sudo dpkg -i boostnote_0.11.10_amd64.deb
```

インストールすると、Chromebookのアプリ一覧にBoostnoteアイコンが追加されます。アイコンをクリックで起動できる。次にデータ同期用にDropboxをインストールします（私はDropboxを使用してるので、他のサービスを利用してるはそのサービスのLinuxインストールを別途参考してください）。


# Dropboxのインストール

ChromebookでのDropboxマウントは、アプリ [File System for Dropbox](https://chrome.google.com/webstore/detail/file-system-for-dropbox/hlffpaajmfllggclnjppbblobdhokjhe) で簡単にできますが、CrostiniからChromebookのストレージにアクセスはできないため、CrostiniにDropboxをインストールする必要があります。

基本的に公式サイト [インストール \- Dropbox](https://www.dropbox.com/ja/install-linux) を参考にdebファイルをダウンロードしてすすめるとよいですが、 ```This is usually because of a permissions error. ``` で怒られます。以下のようにして不足分をインストールします。

```
$ sudo apt install libxslt1-dev
```

ブラウザが開いてログインすると完了して、```~/Dropbox``` が作成されて同期が始まります。一般にChomebookはストレージが少ない、またChromebook側で既にマウントしてると、ファイルが二重に同期さてしまうので、同期するファイルを選択します。私はBoostnoteのファイル以外は不要だったので、Photosファイルをはじめほとんどのフォルダを同期除外しました。コマンドの詳細は [こちら](https://www.dropbox.com/ja/help/desktop-web/linux-commands#commands) を参考してください。

```
$ dropbox exclude add ~/Dropbox/Photos/
```

また、```.profile``` などにDropboxの開始コマンドを書いておきます。```autostart```コマンドがUbuntu専用なので、ターミナル起動で開始コマンドを呼び出すようにしました。

```
dropbox start
```

## 追記（2018/11/07）

この記事を投稿した翌日11/7にDropboxのLinux版クライアントのシステム要件変更が行われ、CrostiniではDropboxは動かなくなりました（ちょうどChromeOS 70のアップデートタイミングだったのでOSを疑いましたが、Dropbox側でした）．
>Dropbox を Ext4 ドライブに移動してください 

別手段は模索中ですが、ChromeOS 71もしくは72からCrostiniからChromebook側のアプリにアクセスできるようになるらしい（[Project Crostini gets new features, fixes in Chrome OS 71 Dev Channel – About Chromebooks](https://www.aboutchromebooks.com/news/project-crostini-linux-apps-new-features-fixes-in-chrome-os-71-dev-channel/)）ので，これを利用するほうがよさそうです。ちなみに私のC223NAをbetaチャンネルに変更して71に変更しましたが、"Share with Linux"は表示されませんでした（なぜか設定の方にはそれっぽいのがあるが）。

## 追記（2019/01/17） Share With Linux（Linuxと共有）

私のChromebookが ```バージョン: 72.0.3626.49（Official Build）beta （64 ビット）``` になったので，Share With Linux（Linuxと共有）を試してみました．始める前に，どうやらちゃんとした対応は73から?になったみたいです（[Chromebook file sharing with Linux feature pushed back to Chrome OS 73 – About Chromebooks](https://www.aboutchromebooks.com/news/sharing-files-on-a-chromebook-with-linux-feature-pushed-back-to-chrome-os-73/)）が，動きました（なにか不具合があるかもしれませんが）．

### Share With Linux（Linuxと共有）を始める

Chromeで ```chrome://flags/#crostini-files``` を開き，Crostini Filesを有効にします．
![Screenshot 2019-01-17 at 23.45.59.png](https://qiita-image-store.s3.amazonaws.com/0/24345/817b8cd2-9fb2-18e7-fc03-f42312c008e7.png)
ファイルのDownloadsにて，共有したいフォルダ（例ではshared）を右クリックで ```Linuxと共有``` を選べば共有できます．仮にそのファルダにはテキストファイルを入れています．
![Screenshot 2019-01-17 at 23.49.02.png](https://qiita-image-store.s3.amazonaws.com/0/24345/85b1b700-36ac-7562-44c4-ddb71bfac746.png)
ターミナルにて ```/mnt/chromeos/MyFiles/Downloads/{共有したファイル名}``` のパスでアクセスできます．フォルダ内のテキストファイルも見ることができました．
![Screenshot 2019-01-17 at 23.51.23.png](https://qiita-image-store.s3.amazonaws.com/0/24345/b1b34ed4-aa4b-7fff-ba05-840299c89bb8.png)
共有を止める場合は設定の ```Linux``` から共有を削除します（共有が消えるだけでフォルダーやファイルは消えません）．
![Screenshot 2019-01-17 at 23.52.56.png](https://qiita-image-store.s3.amazonaws.com/0/24345/3bb9ac2d-b1ad-b90e-cf03-720427ce7ead.png)

### 目的に使えるか？

結論から言うと難しいです．マウントしているDropboxフォルダーを共有したいのですが，いまできるのはDownloadsのみでした．ぐぬぬ，最高のMarkdown環境ができると思ったのだが．．．


# 日本語環境

これで準備は終わったと思えましたが、日本語入力環境が駄目でした。Crostiniのターミナルでは問題ないのですが、アプリ上では一部日本語が豆腐になる、日本語入力をしても入力できなく、さらにBSキーやReturnキーが動作しないなど。これらに関して、こちらのサイト [ChromeOSのLinux\(Crostini\)で日本語入力\(自動起動対応\)](https://www.axon.jp/entry/2018/10/18/201812) を参考にしました。

まず日本語フォントをインストールする

```
$ curl -OL https://github.com/adobe-fonts/source-han-code-jp/archive/2.011R.tar.gz
$ tar zxf 2.011R.tar.gz
$ sudo cp ./source-han-code-jp-2.011R/OTF/* /usr/local/share/fonts
$ sudo fc-cache -fv
```

Mozcをインストールする

```
$ sudo apt-get install fcitx-mozc
```

ファイル ```/etc/systemd/user/cros-garcon.service.d/cros-garcon-override.conf```  に環境変数の設定する。

```
Environment="GTK_IM_MODULE=fcitx"
Environment="QT_IM_MODULE=fcitx"
Environment="XMODIFIERS=@im=fcitx"
```

```.profile``` などに自動起動の設定を用意します。これでターミナルを起動するたびに fcitx が起動します．

```
fcitx > /dev/null 2>&1
/usr/bin/fcitx-autostart
```

fcitxを起動後，Input Method設定にて

```
$ fcitx-configtool
```

Mozcを追加する

![Screenshot 2018-11-04 at 14.26.14.png](https://qiita-image-store.s3.amazonaws.com/0/24345/212e88d9-5b10-f0e9-11e8-0ff6163f6052.png)

また、Input MethodのTriggerに全角半角ボタンを割り当てると、入力切換が「ctrl+space」と「かな英数ボタン」で行えます。

![Screenshot 2018-11-04 at 14.24.50.png](https://qiita-image-store.s3.amazonaws.com/0/24345/6e477120-5d57-e8ae-0ec9-f1bc8f40d5e2.png)

これでLinuxアプリでも日本語入力が行えるようになりました。

# VS Codeのインストール

こちらはコマンドで完了です。

```
sudo apt-get update
curl -L https://go.microsoft.com/fwlink/?LinkID=760868 > code.deb
sudo apt-get install ./code.deb
```

# Pycharmのインストール

公式サイトからダウンロードして、```{pycharmのディレクトリ}/bin/pycharm.sh``` をターミナルで入力して起動できます。なお、CrostiniでのPythonは2系のpythonと、3系のpython3が既にインストールされています。さらっと触った感じでは、ガッツリ開発は無理。素直に、Google Colabなどを使ったほうが良い（知ってた）。


# まとめ

Chromebook起動後にターミナルを起動しないとDropboxと日本語入力が動作しないですが、目的を達成できました。

## 最後に

それMacBookでできるよ、安いのなら中古のノートパソコン買ってUbuntu入れなよは禁句です。