いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

chromebook (ASUS C101PA) の Linux で 日本語設定とVSCode のセットアップメモ

概要

相変わらず chromebook (ASUS Chromebook Flip C101PA) を愛用しています。

chromebook関連については以前に以下のようなメモをアップしていました。

devlights.hatenablog.com

devlights.hatenablog.com

このときは、Linux側で日本語打てなくても「Gitpodあるし、まあいいや」って思っていたのですが、やっぱり VSCode くらいインストールしておこうかなって思いまして、やってみました。いろいろ面倒だったので、忘れないうちにここにメモしておきます。

開発環境のセットアップとかは上の記事を参照ください。

前提

私の環境は以下です。

$ uname -a
Linux penguin 4.19.113-08528-g5803a1c7e9f9 #1 SMP PREEMPT Thu Apr 2 15:16:47 PDT 2020 aarch64 GNU/Linux

$ arch
aarch64

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

LANGを変更

当然ながら、LANGがen_US.UTF-8になっているので、まずはロケールの変更

ja_JP.UTF-8のロケールは存在していないので作ります。

$ echo $LANG
en_US.UTF-8

$ sudo dpkg-reconfigure locales
# ja_JP.UTF-8 を探して、チェックつけてOK選択

$ export LANG=ja_JP.UTF-8
# ついでに、.bashrc にも追加しておく

日本語入力できるようにする (fcitx-anthy, fcitx-mozc)

chromebook linux 日本語 とかで検索すると、大抵 fcitx-mozcが出てきますが、ARM64版がないみたいなので、C101PAでは fcitx-anthy を使いました。

まずは、インストール。結構いっぱいインストールされます。(数百MBくらい)ストレージの空き容量に注意。

$ sudo apt install fcitx-anthy
$

(追記) Debian (buster) からは apt から arm64 の fcitx-mozc がインストール可能になっています。なので、以下でもオッケイ。

$ sudo apt install fcitx-mozc

その後、立ち上げておきます。

$ fcitx-autostart
Fcitx is running correctly.

で、設定ツールを起動

$ fcitx-configtool
$

こんな感じに設定。入力メソッド切り替えキーなどはお好みで変更します。

f:id:gsf_zero1:20200729001540p:plain

これでOK。最後に、自動起動するように以下の調整をします。

$ sudo vim /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"

その後、

$ vim ~/.sommelierrc

でファイルを開いて、以下を追加。

/usr/bin/fcitx-autostart

これでオッケイ。Linuxコンテナを再起動します。

再起動の仕方は以下を参照。

devlights.hatenablog.com

ターミナルアプリでも日本語入力可能にする

上記の fcitx-xxx を入れただけだと、ターミナルアプリ上ではまだ日本語入力できません。

FEPを入れる必要があります。もし、ターミナル上でも日本語を入力できるようにする場合は以下を参照ください。

devlights.hatenablog.com

フォント の インストール

とりあえず、Noto フォント入れておく。fonts-noto で入れると、いろいろ入って容量大きいので、CJKのみインストールしました。

$ sudo apt install fonts-noto-cjk

後述している VSCode をインストールしたら、設定のフォントのところで 'Noto Sans Mono CJK JP' を指定する。

VSCode の インストール

(後日談)VSCode の ARM64版が本家でリリースされるようになりました。

devlights.hatenablog.com





次は、VSCode のインストール。これもまたARM64版はないので、有志の方々がビルドして配布してくださっているものを利用します。

code.headmelted.com

ここから、ARM64版のdebファイルをダウンロードして、あとは「ファイル」アプリからダブルクリックしたらインストール完了!、、、なのですが、ここで、上記の headmelted さんがリリースしてくれている現在(2020-07-24)の最新版 1.44 をインストールすると 拡張機能 がエラーが出て、インストールすることが出来ませんでした。(cannot read property "templateData" of null みたいなエラーメッセージが出る)

なので、一つ前の 1.42 をダウンロードして、インストールします。

インストールが完了すると、こんな風にアイコンが出来ます

f:id:gsf_zero1:20200724024011p:plain

あとはクリックしたら起動してくれます。使い方は当然同じなので、好きな拡張機能とかを入れたりできます。

f:id:gsf_zero1:20200724024317p:plain

f:id:gsf_zero1:20200724024403p:plain

日本語入力の設定は済ませてあるので、ちゃんと入力できます。

あと、ターミナルから

$ code-oss

とやっても起動できます。

フォントの設定は、とりあえず等幅にしたいので、Noto Sans Mono CJK JP を設定。

code-ossのapt-line追加で出る公開鍵エラーを解消

最後に、vscode (code-oss) をインストールすると headmelted のapt-line が追加されます。

こんな感じ。

$ ls /etc/apt/sources.list.d/
cros.list  headmelted_vscode.list

で、この子が追加されたことで、apt update すると以下のように公開鍵が無いってエラーになります。

$ sudo apt update
無視:1 https://storage.googleapis.com/cros-packages/83 buster InRelease                                                             
ヒット:2 https://deb.debian.org/debian buster InRelease                                                                             
ヒット:3 https://deb.debian.org/debian-security buster/updates InRelease       
ヒット:4 https://storage.googleapis.com/cros-packages/83 buster Release        
取得:5 https://packagecloud.io/headmelted/codebuilds/debian stretch InRelease [23.4 kB]
エラー:5 https://packagecloud.io/headmelted/codebuilds/debian stretch InRelease
  公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 0CC3FD642696BFC8
パッケージリストを読み込んでいます... 完了
W: GPG エラー: https://packagecloud.io/headmelted/codebuilds/debian stretch InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 0CC3FD642696BFC8
E: リポジトリ https://packagecloud.io/headmelted/codebuilds/debian stretch InRelease は署名されていません。
N: このようなリポジトリから更新を安全に行うことができないので、デフォルトでは更新が無効になっています。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください

なので、上記の場合はこの 0CC3FD642696BFC8 ってキーを追加します。(NO_PUBKEYって出てる部分の後ろ)

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0CC3FD642696BFC8
Executing: /tmp/apt-key-gpghome.9Td8K16B9o/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 0CC3FD642696BFC8
公開鍵"https://packagecloud.io/headmelted/code-oss (https://packagecloud.io/docs#gpg_signing) <support@packagecloud.io>"をインポートしました
gpg:           処理数の合計: 1
gpg:             インポート: 1

これでオケ。再度 apt update をしてみます。

$ sudo apt update
ヒット:1 https://deb.debian.org/debian buster InRelease
ヒット:2 https://deb.debian.org/debian-security buster/updates InRelease       
無視:3 https://storage.googleapis.com/cros-packages/83 buster InRelease        
ヒット:4 https://storage.googleapis.com/cros-packages/83 buster Release        
取得:5 https://packagecloud.io/headmelted/codebuilds/debian stretch InRelease [23.4 kB]
取得:7 https://packagecloud.io/headmelted/codebuilds/debian stretch/main arm64 Packages [5,001 B]
28.4 kB を 6秒 で取得しました (4,699 B/s)                                                                                           
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています       
状態情報を読み取っています... 完了

エラーにならずに実行できました。

補足: code-oss を 1.45 にバージョンアップした

本日(2020-07-28)、apt update したら、code-ossの最新版がupgradableで出てきたのでアップデートしてみました。

バージョンは、1.45

上記に記載している通り、私の環境では 1.44 入れると拡張機能がちゃんと動いてくれませんでしたが

1.45 は大丈夫でした。アップデートも apt にお任せで問題なくオッケイ。

f:id:gsf_zero1:20200728192422p:plain

参考情報

wazalabo.com

qiita.com

code.headmelted.com

qiita.com


過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com