Honai's Blog

Surface Pro 4にUbuntuを入れたときの初期設定

2019/04/11

Surface Pro 4 に Ubuntu を入れたときの初期設定

前提

  • Microsoft Surface Pro 4 に Windows とは別に Ubuntu をインストール完了した状態 (Ubuntu のインストールについては解説していません)
  • 完全に自分のためのメモです
  • 記事上のコマンドでは本来必要な sudo を省略している箇所があります

タッチパネルとペンを使えるようにする

残念ながら Surface は MS 独自のハードウェアなので、ペンやタッチパネルがデフォルトでは使えません。が、オープンソースで Linux カーネルのパッチが開発されています。ありがたく使わせてもらいましょう。Surface シリーズにほとんど対応してるみたいです。コンパイルできれば Ubuntu 以外にも使えるとか。 (※ 2019 年 4 月現在 カメラは使えないみたいです。)

GitHub - jakeday/linux-surface: Linux Kernel for Surface Devices

このページの、Instruction のコマンドをそのまま入力するだけです。公式 flavor 以外の Ubuntu 系 (Elementary OS など) を使うときは、ベースとなる Ubuntu のバージョン判定がうまく行かないことがあるので、 setup.sh を適宜書き換えます。

再起動したら使えるようになってるはずです。ハードウェアやドライバー、カーネルのことは全然わかりませんが、このプロジェクトに Contribute している人たちはすごいな〜といつも思います。

余談

詳しくは調べていませんが、以前は Ubuntu のデフォルトのドライバーではタイプカバーすら認識せず、わざわざ外付け USB キーボート・マウスを挿して Ubuntu のインストールをしていた時代があったそうです (ググるとそういう手順を解説したサイトが出てきます)。

今ではタイプカバーはもちろん、Wi-Fi/Bluetooth/ファンクションキー/音量キー などほとんどが最初から認識されるようになっていますね。ありがたいものです。

Git を最新バージョンに

よく使うし、なんとなく最新を入れたいですよね (?)

Download for Linux and Unix - Git

$ add-apt-repository ppa:git-core/ppa
$ apt update
$ apt install git

VS Code を入れる

公式サイト から.deb をダウンロードして apt install 。特に何もしなくても apt upgrade で更新されるようになります。「Ubuntu ソフトウェア」からも入れれるみたいです。

Node と npm を入れる

最近はフロントエンドの勉強をしているので必須になってきました。

いつもこのサイトを見てやっています。

ただ n stable だと LTS じゃなく最新版が入るので、自分は NodeJS 公式サイトで LTS バージョンを確認して、それを指定して入れます。

$ apt install nodejs npm
$ npm install --global n
$ n <LTS Version>
$ node --version

いったん n package をインストールしたら元の node と npm のパッケージは必要なくなるので消します (なんだか不思議な感じ)。

$ apt purge nodejs npm

npm も最新版にしておきましょう。

$ npm install --global npm@latest
$ npm --version

[おまけ] Spotify の高解像度対応

Premium 会員なので Ubuntu でもしっかり聴きたいのです。

Sootify は「Ubuntu ソフトウェア」からインストールできるのですが、起動すると、拡大率が 1 のままで表示が小さすぎることがわかると思います。起動コマンドに --force-device-scale-factor=2 を追加すると見やすくなります。アプリランチャーから Spotify を起動したときにこのオプションが適用されるようにする方法を解説します。

Spotify は Snap でインストールされるので、アプリランチャーのショートカットの実体は /var/lib/snapd/desktop/applications/ にあります。自分の環境では spotify_spotify.desktop というファイル名でした。これを root 権限で編集します。

[Desktop Entry]
X-SnapInstanceName=spotify
(...略)
Exec=sotify --force-device-scale-factor=2
(...略)

こんな感じです。

注意 (私も勘違いしていました) --force-device-scale-factor=2 は Spotify 独自の起動オプションなので、他のアプリでも使えるわけではありません……。Linux 向けではまだまだ HiDPI に対応できていないアプリも多いようですね。

まとめ

Windows で cmd や powershell、サードパーティのターミナルなどで頑張ることはできますが、やっぱり bash でやるのがいろいろとやりやすいですよね。WSL という手もありますが、apt や npm での操作など、やはり目に見えて遅いです。

Surface には Windows しか入れちゃダメなんて決まりはないですものね。Surface + Ubuntu で快適な開発者ライフを送りたいものです。