モチベーション
業務ではmacOSを利用していますが、自宅での趣味プログラミングは開発する内容によりUbuntuを利用することが多々あります。
現在使用しているUbuntuはノートPCにインストールして使用していますが、メーカー側でサポートされていないOSのため以下のようなハードウェアに関連する問題がよく発生します。
- TouchPad、Wi-Fi、Bluetooth、カメラなどの周辺機器がうまく動作しない
- 特にTouchPadの
カーソル飛んでく問題
はつらい
- 特にTouchPadの
- バッテリーの減りが早い
- Suspend/Resumeがうまく動作しない
それでもソフトウェアの設定変更で対応できることも多いので現在でも愛用していますが、タブレット的に使うにはさらに難度が上がり、そもそも対応できないこともあります。
つまり、ハードウェア部分がサポートされたメーカー純正のLinuxノートPCが欲しいのです。
もちろんメーカー純正のLinuxノートPCは存在しますが選択肢は少なく、2in1などは見たことがありません(情報お待ちしております)。
そこで最近、ハイスペックな構成も選択でき、Linuxコンテナが起動できるChromebookであれば、上記の問題をクリアできそうなので検証をしたいと思います。
前提
- Chrome OSの情報
- Version: 72
- Channel: dev
-
Project Crostini
を利用 - OSSのChromium OSではなく、この記事では
Project Crostini
がサポートしているChromebookを利用しています
開発機にするため確認したこと
それでは開発機とするために、個人的に必要な要素を検証していきます!!
LinuxコンテナのOSは?
日本語入力はできるのか?
一応できます!
日本語入力の設定はChrome OS側とLinuxコンテナ側、それぞれで設定が必要です。
Chrome OS
Mozcが入っているため、入力方法の設定
でGoogle日本語入力に切り替えるだけです。
ただし、Google日本語入力のひらがな
と直接入力
を切り替えるショートカットが見当たりません。
一部の記事ではAlt+Shift
で切り替えられていますが、自分の環境では切り替えできなかったので、英語のキーボードも追加しCtrl+Space
で日本語と英語を切り替えています。
Linuxコンテナ
Linuxコンテナの場合は、日本語入力をするためのソフトや設定が必要です。
以下の記事を参考にfcitx-mozc
をインストールしfcitx-configtool
で設定すれば動作します。
自動起動の設定も記事の通りの設定で問題なく動作しました。感謝です!
設定画面では入力メソッドのショートカットなどが変更できます。
ただし、自分の環境では以下の現象が発生し、動作が安定しません。
- 日本語の変換中にフリーズが発生し、そのままChrome OSごとシャットダウン
- 変換ウィンドウが表示されなくなる
- 入力自体ができなくなる
上記の不安定な動作に加え、アプリケーションによっては変換ウィンドウが残念な位置になります。
標準のTerminalは十分に使えるのか?
普段iTermやgnome-terminalを使用しているので、それらと変わらない操作感を得られるか検証しました。
Chrome OSで用意されているTerminalは、Shif+Ctrl+p
でプロファイルの変更ができます。
変更できる内容はAppearanceやKeyboardの設定変更が可能です。
自分としてはコピー&ペーストなどのショートカットを、いつも使っているコンソールアプリと同じキーにしたかったのですが設定がなかったので、今回はgnome-terminalをインストールして使うことにしました。
そのほかにも地味な制限があり、インストールしたフォントが標準のTerminalでは読み込めないようです。
promptやtmuxをpowerline系の表示にしている方、Rictyなどのいつも使っている日本語フォントがある場合は標準ではないターミナルを使った方が良さそうです。
エディターやIDEは使えるのか?
私が普段使っているエディターやIDEは以下になります。
- Vim
- Emacs
- Visual Studio Code
- IntelliJ IDEA Ultimate
(日本語入力部分を除けば)アプリケーション自体の動作は問題ありませんでした。
データ共有はできるのか?
Chrome OSとLinuxコンテナのデータ共有は、Crostiniの場合特別な設定は不要です。
Chrome OSのファイラーからLinuxコンテナのホームディレクトリが参照できるので、このインタフェースからデータの受け渡しが可能です。
Dockerは動作するのか?
動作します!
以下の記事を参考にLinuxコンテナの設定変更をします。
またインストール方法によりますが、Dockerの公式ドキュメントの手順でインストールした場合、systemdのcontainer.service設定にあるExecStartPre
を修正する必要があります。
詳細は以下の記事を参照ください。
18.09: containerd depends on overlay · Issue #475 · docker/for-linux
キーバインドは変更できるのか?
Chrome OS側で以下のキーが変更できます。
*使用しているデバイスによって変わりそうな気がします。
上記の他は変更できないため、カスタマイズが必要な場合はIMEを自作する必要があります。
公式のサンプルや増井先生のIMEが公開されているのでそちらを参考にどうぞ。
個人的にはMozcの挙動を保ちつつ、キーバインドだけを変えたかったのでMozcをカスタマイズビルドしてみました。
インストールもでき、入力メソッドとして認識はしましたが動作していません……現在も調査中です。
キーバインドの変更方法は他にもありそうなので、簡単な方法が見つかれば検証していきたいと思います。
クリップボードの共有
Chrome OSとLinuxコンテナ間のクリップボードは、PRIMARYセクションは共有されず、CLIPBOARDセクションは共有されます。
通常のコピー&ペーストであれば問題なく動作します。
最後に、結局Chrome OSを開発機にできたのか?
まだ開発機として使えてないです!!
キーバインドが変更できないとやる気が湧いてこないので絶賛改善中です。
逆に「キーバインドは変えません」派の方は、十分に開発ができるのではないでしょうか。