chromebookのUSBにunityを入れる


Acer C720/2は内蔵SSDが16GBしかないので、ubuntuとの共存にはディスク容量が心許ない。
USBメモリ32GBを常時挿しっぱなしにし、そちらにcroutonを使ってUnityを入れる手順をまとめておく。
この手順は、croutonをまだ使っていない、初期化したchromebookから行った手順である。
初期化については、[こちらの記事](http://qiita.com/yasuki/items/f6a8a350087517b0069b)を参照のこと。
すでにcroutonを使ってインストールしている場合は、/mnt/stateful_partition/crouton/chrootsを消すなりする必要がある。chrootsディレクトリを単純にUSB領域へコピーして、リンクをはってもうまくいかない。

## USBの用意

システムを入れるUSBは、3.0対応にする。
また、USBを挿しっぱなしにするには、でっぱりがないほうがいい。[PQIのi-mini](http://www.amazon.co.jp/dp/B00B997DYW)にした。

## USBのフォーマットとラベル付け

chromeOSでUSBメモリのフォーマットとラベル付けをしておく。
ラベルは、`/media/removable/<LABEL>`にマウントされることになる。
以下のコマンドの例では、`USB_UNITY`とラベル付けをしている。

```
umount /dev/sdb1
mkfs -t ext4 -L USB_UNITY /dev/sdb1
```

メモリを挿し直すと、`/media/removable/USB_UNITY`にマウントされるはずである。

## USBへのリンク

croutonは、chroots領域を作成し、そこにubuntuをインストールする。
その領域をUSBメモリへリンクする。

### 内蔵SSDにcroutonのディレクトリ作成

```
sudo mkdir /mnt/stateful_partition/crouton
```

### USBメモリにchrootsディレクトリ作成

```
sudo mkdir /media/removable/USB_UNITY/chroots
```

### 上2つのディレクトリのリンク作成

```
sudo ln -s /media/removable/USB_UNITY/chroots /mnt/stateful_partition/crouton/chroots
```

## Unityのインストール

### croutonのダウンロード

chromeを開いて`https://goo.gl/fd3zc`にアクセス。downloadディレクトリにcroutonスクリプトが保存される。


### Unityのインストール

```
sudo sh -e ~/Downloads/crouton -r trusty -t unity,keyboard,audio,extension,chrome
```

unityではくxfce4を使いたいときは、上記`-t`オプションの`unity`を`xfce4`に変えればよい。
また、14.04LTS以外のubuntuであれば、`trusty`を別の名前にする。`sudo sh ~/Downloads/crouton -t list`で選択可能なものが調べられる。

### Unityの起動

```
sudo startunity
```

`ctrl+alt+2`でchromeOSのconsoleを出し、`ctrl+alt+3`でXに映ると、Unityがあがっている。
chromeOSに戻るには、`ctrl+alt+1`

## Ubuntuアプリケーションの追加
unityだけでは、いろいろ使いにくいので、いくつかアプリケーションを追加する。

```
sudo apt-get update
sudo apt-get install software-center
sudo apt-get instqll language-selector-gnome
sudo apt-get install gnome-terminal
sudo apt-get install git
````

chromeは、`/opt/google/google-chrome`で起動できる。

### vimのtinyからのupgrade

```
sudo apt-get install vim-gui-common
sudo apt-get install vim-runtime
sudo update-alternatives --config vi
```

### neoBundleの導入
```
mkdir -p ~/.vim/bundle
git clone https://github.com/Shougo/neobundle.vim  ~/.vim/bundle/neobundle.vim
```

## Unityの日本語化

[ubuntu Japanese Team](https://www.ubuntulinux.jp/japanese)の手順どおり以下のパッケージを追加する。

```
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/trusty.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ubuntu-defaults-ja
````

```
echo 'export LANG=ja_JP.UTF-8' >> /etc/profile
echo 'export LANGUAGE="ja_JP:ja"' >> /etc/profile
```


## キーボードを日本語レイアウトにする

```
setxkbmap -layout jp
```


## searchキーをctrlキーにする。
ubuntuではsearchキーは使わないので、左ctrlキーとして使う。
xmodmapで、keycodeのバインドを変更する。
X11のキーバインドについては、[bearmini's blog](http://bearmini.hatenablog.com/entry/2013/07/12/161637)が勉強になる。

### keycodeを調べる
`xev`を実行し、searchキーを押すと、keycodeが表示される。
また、本当の左ctrlキーのkeycodeも調べておく。

* search key=133 (0x85)
* ctrl_L key=37 (0x25)

### keymapファイルを作る
日本語レイアウトにしてからmapファイルを出力する。

```
setxkbmap -layout jp
xmodmap -pke > ~/.xmodmaprc
```

### keymapファイルを編集する

#### ファイルの先頭行に以下を追記し、本来の左ctrlキーをmodifierから外す。
```
remove control = Control_L
```

#### それぞれのkeycodeの行の役割を以下のように変更する。
```
keycode 37 = Overlay1_Enable NoSymbol Overlay1_Enable
keycode 133 = Control_L NoSymbol Control_L
```

#### ファイルの末尾に以下を追記し、左ctrlを再びmodifierに登録する。
```
add control = Control_L
```

#### 変更の反映
```
xmodmap ~/.xmodmaprc
```

## .bashrcの編集

searchキーのctrlキー化のコマンド(xmodmap)を、`~/.bashrc`に書いておく。

## Dropboxの導入

chromeアプリのDropboxは、現在のところただweb画面を開くだけなので、ubuntu側にLinux版のアプリをインストールして、ファイル同期を行う。
ubuntuを起動しておかないと同期しないが、運用上問題ないだろ`う。

chromeOS上のhomeディレクトリからのDropbox上ファイルパスと、ubuntu上のhomeからのDropbox上のファイルパスが同じになるように、シンボリックリンクを張る。
また、Dropboxのファイル領域もUSBメモリ上に退避させる。
croutonでは、両OSのhomeにあるDownloadsディレクトリは共有されているが、そこにDropboxディレクトリを作るのはいやだったので、下記の図のようなリンク構成とした。
![dir_link_structure_2.jpg](https://qiita-image-store.s3.amazonaws.com/0/51828/78bc3a1f-dc53-d09b-c50f-6868ce4f31ee.jpeg)


これで、`~/Dropbox/filename`で、どちらのOSからでもファイル指定が行うことができる。