Dell XPS 13 (7390)にElementaryOS(Hera)をいれたときの記録

- Dell XPS のWindows機にElemantaryOSを入れたデュアルブートまでの手順
- 一通りの環境を構築

しばらく動かしてセットアップし直すときのための記録
※OSを入れる前にバックアップとテストフライをしておくと良いと思います

### 環境
ハードウェア情報

```sh:terminal
sudo dmidecode --type system | egrep 'Manufacturer|Product'
>	Manufacturer: Dell Inc.
>	Product Name: XPS 13 7390
```

インストールしたElementaryOS

```sh:terminal
lsb_release -a
> Distributor ID: elementary
> Description:    elementary OS 5.1 Hera
> Release:        5.1
> Codename:       hera
```

baseになっているubuntu (対応表については[wiki](https://en.wikipedia.org/wiki/Elementary_OS#Summary_table)を参照)

```sh:terminal
lsb_release -ua
> Distributor ID: Ubuntu
> Description:    Ubuntu 18.04.3 LTS
> Release:        18.04
> Codename:       bionic
```

# デュアルブートまで

## Windows 10からvolumeを譲ってもらう

ElementaryOSを入れるためのスペースを確保して、デュアルブートできるようにする
[Dual boot Windows 10 and Ubuntu on Dell XPS 13](https://infra.engineer/miscellaneous/3-how-to-dual-boot-windows-10-and-ubuntu-on-dell-xps-13)

## インストールメディア作成
1. https://elementary.io/ から`.iso`ファイルをダウンロード
2. https://www.balena.io/etcher/ からお手元の環境に合わせてインストールメディアを構築するアプリをダウンロード
3. 16GB以上の適当なUSBを利用してインストールメディアを作成


あとはUSBをPCにセットしてぽちぽちしてOSをインストール

# デュアルブート後

まずは、

```sh:terminal
sudo apt update
sudo apt dist-upgrade
```

テストフライのときもそうだったが、wifiを認識せずネットにつなげれない問題があった

修正するにしてもネット接続が必要なので今回はスマホにUSB接続してネットに接続
Bluetooth接続も試したが謙虚なPCなのか「私はスピーカーです」と勘違いして、スマホのポチポチ音がPCからむなしく響いた(後日修正予定)

同じ状況でコネクタも無ければ、お手元の環境で修正したisoイメージをつくってインストールメティアを用意するのもいいと思う

## Wifiを使えるようにする

こちらの投稿を参考に修正
[Unable to get wifi adapter working - clean 19.04 install - network unclaimed
](https://askubuntu.com/questions/1156167/unable-to-get-wifi-adapter-working-clean-19-04-install-network-unclaimed#answer-1156246)

## 日本語入力とホットキー

```sh:terminal
sudo apt install fcitx-mozc
im-config # GUIのメニューがたちあがるのでfcitxを使うように変更
fcitx-configtool # MozcとKeyboard-japaneseを追加、ついでに右Altで英字入力・左Altで日本語入力になるようにホットキーを選択
```

## Caps LockをCtrlに変更する
System Settings > Keyboard > English(US) layout
Caps Lockの振る舞いをCtrlに変更
ついでにWindows keyをアプリケーションメニューの呼び出しに変更

## Chrome
[公式](https://www.google.com/chrome/?brand=CHBD&gclid=Cj0KCQiAmsrxBRDaARIsANyiD1qTwpeCtMbYHUDqBOgPWUBvdQzaMp8omp8xsmM7OF2aV3RD6JirGn0aArnHEALw_wcB&gclsrc=aw.ds)から`.deb`をダウンロードしてくる
うまく起動しなかったため以下のようにした

```sh:terminal
sudo apt install gdebi
cd ~/Downloads
gdebi google-chrome-stable_current_amd64.deb
```

# 環境構築
- まずは、[こちらを参考](https://linuxize.com/post/how-to-add-apt-repository-in-ubuntu/#installing-add-apt-repository-add-apt-repository-command-not-found-)に`add-apt-repository`コマンドが使えるようにする
- お好みでdotfilesを展開する

## fish-shell
僕はfish shellを使っているのでfishを使えるようする(fishを普段使ってない人は[こちら](https://rootnroll.com/d/fish-shell/)で試してください)

- [こちらを参考](https://github.com/fish-shell/fish-shell#packages-for-linux)にfishをインストール
- fishはログインシェルにしない方が良いようなので[こちらを参考](https://qiita.com/tak-onda/items/a90b63d9618d6b15c18c)にログインシェルは bash のまま fish を利用する

terminalを立ち上げ直してfishが立ち上がることを確認し、ログインシェルが変わっていないことを確認

```sh:terminal
echo $SHELL
> /bin/bash
```

## docker
[公式を参考](https://docs.docker.com/install/linux/docker-ce/ubuntu/)にインストール
**※$(lsb_release -cs)**はubuntuのバージョンなので注意

> sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

$(lsb_release -**u**cs)に変更してbaseのubuntuのバージョンに変更
fishだとこんな感じ

```sh

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu" \
   (lsb_release -ucs) \
   "stable"
```

docker-composeも[公式を参考](https://docs.docker.com/compose/install/)にインストール
> sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

fishだとこんな感じ

```sh:terminal
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-"\
   (uname -s)-(uname -m) -o /usr/local/bin/docker-compose
```

dockerコマンドをsudoなしで使えるように、セキュリティを加味して[こちらを参考](https://matsuand.github.io/docs.docker.jp.onthefly/install/linux/linux-postinstall/)に設定する

## fusuma
以前はMacbookを使っていたので、タッチパッドの操作感を似せるために導入
3本指や4本指のジェスチャーなどをyml形式で指定できる
[こちらの記事](https://iberianpig.github.io/posts/2019-02-22_cusomize_fusuma/)を参考にした

## Fn + Fキー
`Fn + Esc`で、Fキーを単体で押したときと`Fn`キーを押したときの動作をトグルできる。
僕はターミナル上で[byobu](https://byobu.org/)を使っているのでFキーを使うたびに"Fn"キーを押すのがめんどくさいのでトグルしている

# 感想
- Macbook Air(2018)を使っていたが、キーボードはこちらのほうが好き
- タッチパッドは心配していたが手触り含めて良好
- Wifi周り以外はすんなりいけてよかった
- ElementaryOSとfusumaでMacbook風になったので、Linuxデスクトップ環境への移行に不安はそんなにないかな

アプリのインストールに関して[snap](https://snapcraft.io/)は、ドキュメントも使い方も分かりやすくて良さそうだったがデスクトップアプリはものによっては立ち上りが遅いことがあったりするらしいので、VSCodeとかは少し試してからどういう風に管理しようか考えようと思う

## やり残したこと
- `/home`のパーテーションを分ける
- iPhoneとbluetooth接続してネットに接続できるようにする
- バッテリーの消費が少し早い気がする問題の調査
- PCの立ち上がり/シャットダウンが遅いときがある問題の解決