こんばんは、たねやつです。 ついにこのときが来たかという感じで記事を書いている今でも興奮冷めやらぬという感じです!!
題名の通りVSCodeをchromebookでまともに使うことができるようになりました! いろんな先人たちの知恵をお借りして「なんか出来ちゃった」感はありますが、布教も兼ねて記事にしてみます。(´∀`)
(2019/04/24追記) Chrome OSなどのアップデートを重ねるうちにfcitxで日本語入力できなくなる可能性があります。Powerwashなどを行いまっさらな状態で手順を進めてみてもうまく行かない場合は、busterのリポジトリを追加したあとに以下のコマンドを実行して最新化、OSのバージョン更新をするとうまく行くかもしれないです。(私の場合は解決しましたが不確定要素が多く正しい解決法か不明です・・・)
$ sudo apt-get update $ sudo apt-get upgrade ... $sudo apt-get dist-upgrade
(2019/03/22追記) Verson 1.32のVSCodeがC101PA用に(arm64用に)ビルドされているパッケージが公開されているので追加しました!手順について変更点はありません。
手順
Linuxを使用可能にする
Chrome OS 69から正式版チャンネルでもLinux環境を導入することができます。詳しい手順などは他の方の記事などを参照してください。現在ではStableチャンネルの状態からほんの数クリックで有効化できるようになり、裏技感はだいぶなくなりましたね!
各種更新実行
導入が完了したら、「コンソール」というアプリ(>_
みたいなアイコン)を起動して各種Linuxのパッケージ更新を行います。通信環境やサーバーの状態によるかもしれませんが、20-30分ほどかかります。
以下のコマンドを実行して最新のパッケージリストを取得、更新を実行します。($
の入力は不要で、一行入力するたびにエンターキーを押してください。)
$ sudo apt-get update $ sudo apt-get -y upgrade
fcitx-mozcをインストールする
入力メソッドにはfcitx
を使用します。日本語入力システムにはmozc
を使用します。mozc
はGoogleが開発してGoogle日本語入力としても使用されています。というかGoogle日本語入力のOSS版だったかもともとのプロダクト名がmozcというだったような?
fcitxがいないと、Linux上で実行しているアプリで日本語入力ができなくなります。 最初に私がCrostiniでVSCodeをインストールしたときにはこいつに関してすっかり考慮していなかったため日本語入力が一切できないという状態で諦めていました。
ChromeOS上にも同じような入力メソッドフレームワークが動作しているので問題なく日本語入力できているのだと思いますが、それとは切り離されたLinux上の世界でも同じく必要なのだと思います。
fcitx
はPixelbookやamd64
という形式のCPUを積んでいるchromebookではそのままapt-get
というコマンドで導入できるのですが、あいにくC101PAのCPUはarm64
という形式です。arm64
用の入力メソッドの安定版はfcitx
もibus
も現在は存在してないです。
ですので、テスト版として公開されているDebian Buster
(Debian Stretchの次のバージョン)用のarm64
向けのfcitx
をインストールすることにします。
このページからdebファイルを取得してインストールすることもできますが、動作に必要なファイル(依存関係にあるファイル)も一緒にインストールする必要があるので、apt-get
からインストールできるようにします。
ちなみにテスト版と言いつつも次バージョンのDebian 10(Buster)では実装されるっぽいので、これもそのうち(testing)ではなくなると思います。正式版のリリースは2019年中頃だそうです。
Debian Buster(testing)用のリポジトリを追加
以下の内容を/etc/apt/sources.list
というファイルに追加します。
deb http://ftp.jaist.ac.jp/debian buster main
コマンドとしては、sudo vim /etc/apt/sources.list
で開いたファイルの末尾に上記の一行を追加する感じですが、、、vim
というLinuxのテキストエディタがあるのですがこれが初めて触る人にとっては拷問に等しい使い心地です。。。
以下の記事に目を通してファイルの開き方、文字入力の仕方、保存の仕方を理解しておかないとおそらく何もできないかと思いますorz
ですのでここはもうちょっと簡単な方法を取ります。以下のコマンドを実行してください!
$ sudo -s # echo "deb http://ftp.jaist.ac.jp/debian buster main" >> /etc/apt/sources.list # exit $ view /etc/apt/sources.list deb http://deb.debian.org/debian stretch main deb http://security.debian.org/debian-security stretch/updates main deb http://ftp.jaist.ac.jp/debian buster main
sudo -s
を実行すると、文字の色が変わり、文字を入力する前の部分が#
になっているのがわかると思います。この状態ではスーパーユーザー状態となりありとあらゆるコマンドを実行できます。Windowsでいう管理者権限で実行
と同じような感じです。exit
でもとの状態($
)に戻ります。
sources.list
というファイルへの書き込みはスーパーユーザー(rootユーザーとも)からしか許可されていませんのでこのように権限を昇格させています。
そこで実行しているecho ...
というコマンドは「文字列を表示させて、その文字列をsources.listの末尾に追加する」という感じです。これでテキストエディタを使わなくともファイルに文を追加できます。こういう動作がLinuxの面白いとこですよね。
注意すべき点として、必ず>>
と入力されていることを確認してからエンターキーを押してください。もし>
となっているともとからある内容がすべて消えてしまいますので注意してください。
view
というコマンドで指定したファイルの中身を見ることができます。これでちゃんと追記できているか確認できます。同じようにless
やcat
、tail
というコマンドでもファイルの中身を確認することができます。
ここに書いてある内容に従ってapt-get update
実行時にパッケージリストを取得して、apt-get install ....
でインストールすることができるようになります。
追記が完了したら再度sudo apt-get update
を実行して新しいパッケージリストを取得しましょう!(^o^)
ちょっとだけ時間がかかるかもしれません。。
多分の話なのですがこの状態でapt-get dist-upgrade
を実行するとDebian自体のバージョンが上がってしまうと思いますのでお気をつけて^^;
本当はibus-mozc
の方を導入したかったのですが、2回試して2回ともLinuxの内部ファイルを破壊 -> Powerwashしてしまいましたorz 逆に言えばChromebookだと端末の初期化とLinuxの有効化が超簡単なのでお勉強には最適かもしれませんね^^;
インストール実行
あとはapt-get install
を実行するだけです。以下のコマンドを参考にしてください。
$ sudo apt-get install -y fcitx-mozc
これまた10分ほど時間がかかるかもしれませんが、辛抱強く待ちましょう。。( ^^) _旦~~
導入が完了したら、以下のバージョン確認コマンドで一応確認しておきましょう。
$ fcitx -v fcitx version: 4.2.9.6
フォントを追加
入力メソッドと日本語用のモジュールも導入しましたが肝心の日本語用フォントがありません!ので追加します。他の方の記事をみてパッケージリストに追加されていることを知りました。
$ sudo apt-get install fonts-noto
これでNoto Sans CJK JP
とNoto Sans Mono CJK JP
が使えるようになります。テキストエディタには等幅フォントは必須ですよね。NotoフォントなのでChromebookとの統一感も出ます(´∀`)
Myrica
とかも試しては見たのですが、なぜか線が細すぎて見づらくなってしまい断念。独自のフォントを導入したい場合はotf
やttf
形式のフォントファイルを/usr/share/fonts/
内において再起動してあげると反映されます。
fcitxの設定(必須)
以下のコマンドでfcitxの設定を呼び出すことができます。
$ fcitx-configtool
(2019/03/22追記)
fcitx-configtool
起動時にfcitx
自体が起動していない場合、Input Method追加の画面で何も表示されなくなります。以下のコマンドを実行して起動してください。今後もよく使うコマンドなので手に馴染んでくるはずです!
$ fcitx-autostart
コマンド実行後に受付状態(user@machine $
)とならない場合にはエンターキーを押してください。
それではInput Methodを追加します。
- 左下の方の
+
ボタンを押して表示されたポップアップの、Only Show Current Language
のチェックボックスを外します。 - その次に
Search Input Method
をクリックして、mozc
と入力します。 - 上に表示されたmozcをクリックして追加完了です。
次にフォントを設定します。
- 画面上部の
Appearance
タブを選択します。 font
のところに表示されているフォント名をクリックします。(デフォルトに何が表示されているのかメモし忘れました。。)search font name
をクリックしてNoto Sans CJK JP
と入力します。- 表示されている
Noto Sans CJP JP Regular
を選択して完了。 Menu font
の方でも同じように設定する。
これで必要最低限の設定は完了です。お好みでGlobal Config
のTrigger Input Method
の項目で入力言語変換のショートカットキーを変更できます。私はChromeOS側との統一性を保つためにCtrl + Space
から変更していません。
Appearance
のところから変換候補ウィンドウのスキンを変更できるようなのですが何故か何を設定しても反映されず。
mozcの設定(必須ではない)
以下のコマンドでmozcの設定画面を起動することができます。ほぼ同じ画面をchrome OS用のGoogle日本語入力の言語設定からも呼び出すことができますね!
$ /usr/lib/mozc/mozc_tool --mode=config_dialog
私の場合は、日本語入力の場合でもスペースは絶対に半角にしたいのでこの画面から設定しました。Space input style
をhalfwidthにすると設定できます。これで全角半角のゆらぎを撲滅できますね(^o^)
VSCode(oss-code)をインストールする
本命のVSCodeのインストールです。以下のリンクからarm64用にビルドされたVSCodeのパッケージを取得できます。
見出しのarm64 > pre-built deb package
の下のlatest
にあるリンクをクリックするとdeb
ファイルという、Windowsでいうexeファイルを取得できます。そのファイルをLinux用のフォルダ(ペンギンマーク)の中に保存します。このフォルダ(というかディレクトリ)はコンソールを起動したときに一番最初にいるディレクトリと同じです。
ダウンロードが完了したら続けて以下のコマンドを実行します。コマンドのあとの#
以降はコメントですので、入力は不要です。
(2019/03/22追記)
より新しいバージョンでパッケージが公開されているのでそちらからファイルを取得することをおすすめします。
下の方にスクロールしていき、code-oss_1.32.0-xxxx_arm64.deb
とあるものをクリックしてLinux用のフォルダ(ペンギンマーク)の中に保存します。このフォルダ(というかディレクトリ)はコンソールを起動したときに一番最初にいるディレクトリと同じです。
保存が完了したら以下のコマンドを実行してインストールします。要再検証ですがChorme OS 74ではフォルダを表示してdeb
ファイルをクリックするとそのままインストールできました。(依存パッケージまでインストールしてくれるかどうかを確認できていません)
$ cd # ホームディレクトリに移動 $ sudo apt -y install ./[ダウンロードしたファイル名]
でOKです。ファイル名を入力するときは、先頭の数文字を入力してtab
キーを押すと自動で補完してくれます。
これも依存関係にあるファイルを取得するため数分時間がかかります。完了するとoss-code
という名前でChromeOSの方でアイコンが追加されているはずです。そのまま起動してもいいかもしれませんが、とりあえずこのへんでchromebookを一回再起動しておきましょう!
以下私の失敗談なのですが、apt
でインストールする代わりにdpkg -i
を使用して依存関係を解決できずにインストール失敗になりました。一度この状態になるとその依存関係が解決されるまでインストールが保留された状態になります。
依存関係を解決するためにはsudo apt --fix-broken install
を実行しました。このコマンドで依存関係ファイルのインストールと、oss-codeのインストールまで一発でした。
起動時に行うこと
ChromeOSおよびLinuxの起動時にはfcitxは自動では起動してくれませんので手動で起動する必要があります。以下のコマンドをターミナルで実行してください。
$ fcitx-autostart ... (INFO-3235 addon.c:151) Load Addon Config File:fcitx-notificationitem.conf (ERROR-3235 ime.c:432) fcitx-keyboard-cm-mmuock already exists (WARN-3235 xim.c:161) Please set XMODIFIERS.
エラーと環境変数に値がセットされていない的な警告が表示されていますがとりあえず動いてるので一旦放置します。面倒なので~/.bashrc
に以下の一行を追加しておきます。そうすることによってターミナル起動時に自動でコマンドを実行してくれます。
$ cd # ホームへ移動 $ echo "fcitx > /dev/null 2>&1" >> .bashrc
先ほどと同じくecho
コマンドで追記します。今度は.bashrc
というファイルはスーパーユーザー権限がなくても編集できるのでsudo
は行いません。これで起動時にfcitx > /dev/null 2>&1
が実行されます。>
以降の内容はコマンド実行時の出力内容をすべて闇に葬り去るという感じです。
(ちなみにArch Linuxのページでは.bashrc
に起動コマンドを書くことは推奨されていませんが、動けばいいの精神でここに追記しています。。)
VSCodeのエディタのフォント設定
再起動が完了したらアイコンから起動してみましょう。2-3秒ですんなりと立ち上がるはずです。この立ち上がりの速さもVSCodeの魅力ですよね!atomもこれぐらい早く起動するようになったのでしょうか?
このまま日本語入力をしても変な□□□が表示されるだけだだと思いますので、日本語フォントを指定してあげる必要があります。
画面右下の歯車マークを押してSettings
を選択するかCtrl + ,
で設定画面(GUI)を開くことができます。ちょっと前のバージョンまではデフォルトではjson
形式のファイルが開かれていたのですが、今はGUIで表示されるのですね。
4つ目ぐらいの項目にFont Family
とありますのでそこを修正します。もともと以下のようになっているのを、
'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'
↓
'Noto Sans Mono CJK JP', 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'
と変更します。等幅フォントが嫌いという方は'Noto Sans CJK JP'
としてください。テキストエディタとして使用するのであれば等幅フォントが断然おすすめです。
ついでにFont Size
も17
ぐらいに変更しておきましょう。デフォルトではC101PAには小さぎます(笑)
保存とかはなく即時変更が反映されますので完了したらタブを閉じましょう。
入力してみる
Ctrl + n
で新規ファイルを開き入力してみましょう。重要なことですが、VSCodeのウィンドウ選択する前にchromeなどからchromeOS側での入力モードを英数字に切り替えて置く必要があります。日本語入力の状態でVSCodeに文字を入力しようとすると、Ctrlがおされっぱなしの状態で文字入力されるようです。挙動が変だと感じた場合はまずはここを疑ってみてください。
英数字は問題なく最初から入力できるのですが、日本語入力状態にして文字を入力してみてください。どうでしょうか?
無事に日本語が入力・表示されていれば成功です!お疲れ様でした(^o^) そして超軽量・超電池持ちのいいテキストエディタ環境をゲットとなります(´∀`)
プログラミングも出先で書いて、コミットして家に戻ってから単体動作テストと割り切れば案外運用できるかもしれません。Apache
やNode.js
も頑張れば動かせるのかもしれません。
Extension Gallaryを有効にする
(上の方で紹介しているHeadmelted氏のところから取得したVSCodeの場合、以下の設定は不要で最初からエクステンションが使用できます。)
デフォルトの状態だと拡張機能の追加ができない状態なので設定ファイルに追記します。とりあえずエディタとして使えればOKという人は不要かもしれませんが、拡張機能を入れてこそのVSCodeと思いますので導入をおすすめします。
$ sudo vim /usr/share/code-oss/resources/app/product.json
でエディタ画面を開き、一番最後の}
の一行上に以下の内容を追加します。
"extensionsGallery": { "serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery", "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index", "itemUrl": "https://marketplace.visualstudio.com/items" }
ファイルの最後の方はこんな感じになります。
"commit": "", "date": "2018-08-18T07:31:30.111Z", "checksums": { ... }, "extensionsGallery": { "serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery", "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index", "itemUrl": "https://marketplace.visualstudio.com/items" } }
"extensionsGallery"
の上の},
が}
となってしまっている場合は、,
を追加してください。
vim
コマンドの基本的な使い方に関しては以下を参考にしてください。どうでしょうか?普通のWindowsのメモ帳が超親切に思えてきますよね(笑)
※HelloVim!の章までで入力モードの切り替え、保存方法などが書いてあります。(それ以降は今回は読む必要特になし)
なれてしまえば結構使いやすかったりしますが、私は全然なれません。。
使ってみた感じ
まだmarkdownでこの記事を作成するぐらいしか行っていませんが、Windows版と遜色なく使えています。
↓キー押しっぱなしでスクロールすると数ミリ秒カクつくこともありますが許容範囲という感じです。 あとはC101PAの画面がちっちゃいから分割表示が微妙という半ばとばっちりのようなつかいにくさぐらいしか感じませんね(笑)
突然変換できなくなった場合
fcitx
の設定ファイルを弄っているときなんかによく発生するのですが、Ctrl + space
で入力メソッドの変更が効かなくなることがあります。そんなときにはfcitxを再起動すればいいのですが再起動用のコマンドとかが見つからないのでいつもkill
コマンドを実行してしまっています。。(笑)
以下の方法で再起動はできるのですがなにかいい方法はないでしょうか?
$ pgrep fcitx # fcitxのPIDを調べる 3235 # これが親プロセス(多分) 3246 # 子プロセス(多分) $ kill 3235 $ fcitx-autostart # 起動
最後に
Chromebookはたいへん気に入っていたのですが、使い慣れたエディタを使えることによってますます便利になりました!
CrostiniもChromeOS正式版で使えるようになったので裏技感は一切なくなって人にも勧めやすくなりました(笑) これを気に周りのChromebookers(C101PAers?)にVSCodeを布教していけたらな、と思います(´∀`)
ご不明点、わかりにくい点や間違っている点があればぜひコメントお願いいたしますm(__)m
大いに参考にした記事
大変感謝です。。(^^)