Ubuntu20.04セットアップ備忘録(MacbookPro)

## インストール
言語は英語、キーボードレイアウトは日本語にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/2c573bb6-5205-977b-1b95-e0a304ba4311.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/c53a058e-cc98-8e98-63fd-e07ee85864a0.png)

Installation typeは用途に合わせて選びます(デュアルブートにするか否かなど)、今回はデュアルブートではなく完全にUbuntu端末として使用するため、Erase disk and install Ubuntuを選択しました。この際、下の画像のようなダイアログが出ますが今回の場合は特に問題はないためContinueを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/aadc20bb-9c2a-bf83-09c6-a314e4e7fe5f.png)

あとは場所の選択と名前、パスワードを入力して Continue を押せばインストールが開始されます。言語を英語にしている理由としては、端末でのディレクトリの移動を楽にするためです。後に表示は日本語へと変換します。
インストール後は Software Updater がアップデートするかどうかのダイアログを出すので、ダイアログに従ってアップデートを行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/d046acce-6f1a-b29b-4d21-9b8eedc2933c.png)


## 日本語表示
Settings　→　Region & Language から日本語表示の設定を行っていきます。
Manage Installed Languages をクリック、すると下のようなダイアログが出るので Install を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/4e6958ce-dd79-5f94-47f7-075391393f8c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/37747175-57fd-6ea0-af77-a187a8ad8373.png)

その後 Restart を選択してログアウトします。再ログイン時に下記のようなダイアログが出るので古い名前のままにするを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/083a3400-4fc1-e35c-e9a8-06099c526aad.png)

次に再度、設定 → 地域と言語 から 入力ソース を追加をクリックしMozcを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/63826c14-a48e-0913-1179-57be00ce0b56.png)

## キーボードレイアウトの修正
デフォルトのままだとキーボードレイアウトが違ったり、かな・英数での変換がうまくできないためそのあたりの修正を行っていきます。
端末から以下のコマンドを入力し、下の画像の設定へと修正します。

```
sudo dpkg-reconfigure keyboard-configuration
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/46a2b309-06f2-769f-ffcd-62aac9058d9a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/1ce5c2ad-89cf-4110-7af4-1948a0580cb8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/7701f768-0d87-0702-19bd-7fd120aec8cd.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/957a9b85-e4bb-9769-5dad-088dc4a30a4a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/c948167c-1b31-c86e-794b-28cf98bd6ab6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/191e3283-fbe4-3efa-84ee-cdf1bb58ff9c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/262bc3bf-1d17-5668-558c-ae27d71cd7f0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/c5208fb1-8f86-6c66-f4fc-f52b5ed53f22.png)

再起動後キーボードレイアウトがリセットされる現象が起きたので、設定ファイルも編集します。

```
sudo gedit /usr/share/ibus/component/mozc.xml
```

下のように```<Layout>default</Layout>```を```<Layout>jp</Layout>```へと変更します(下の画像はわかりやすさのためdefaultをコメントアウトしてありますが、削除しても大丈夫です)。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/2312b8ab-d073-5c65-f581-41dff9d665a0.png)

```
sudo gedit /etc/default/keyboard
```

設定ファイルの中で```XKBLAYOUT="jp,jp"```となっていなければ修正します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/54613a5e-d2ba-dace-1317-c98a13f26d4e.png)

次にかな、英数キーでの変換を行えるように設定していきます。下の画像のようにMozcを選択してプロパティを開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/d17eac44-25e8-09cb-3cc9-f523f7ff5811.png)

キー設定の選択の編集ボタンを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/b5f000ad-a199-f324-4453-d6dc5bcf3d3b.png)

下の画像のように IME を有効化 の部分に英数キー(Hiragana)を、IME を無効化 の部分にかなキー(Eisu)を割り当てます。なお、現状ではキーボードレイアウト上でかな、英数キーの表示が反転しているためHiragana/Eisuが逆になりますが、特段問題はありません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/bb7ab071-ad59-e33e-f7e1-e95fbac571e1.png)

次に Hiragana/Eisu が割り当てられている IME を有効化/無効化 以外のすべてのエントリーを削除します。最後に**右下のOK**を押して閉じることでかな/英数キーでの変換できるようになります。**うっかり閉じるボタンを押すと、保存されず再度設定し直しになるので注意が必要**。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/dc3797e0-c866-8200-8e24-4b2e8f82ba0b.png)


## ジャスチャー対応
タッチパッドのジャスチャー対応を行います。これにはlibinput-gesturesパッケージを使用します。これによって使い心地が凄く良くなるためおすすめです。

```
sudo apt install -y git
sudo apt install -y libinput-tools
sudo gpasswd -a $USER input
git clone https://github.com/bulletmark/libinput-gestures.git
cd libinput-gestures
sudo ./libinput-gestures-setup install
```

ここからはgestureに対応する操作などを設定していきます。libinput-gestures.confの設定は筆者の設定です。数値部分を4にしたりすると4本指でのスワイプに対する動作を設定できます。ショートカットは 設定 → キーボードショートカット から確認ができます。

```
cd ~/.config
gedit libinput-gestures.conf
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/a8c98fc4-adb7-febc-3f42-e84ca8d60267.png)

```
cd
libinput-gestures/libinput-gestures-setup start
libinput-gestures/libinput-gestures-setup autostart
```

以上のコマンドや設定を終えて、スワイプによってアクティビティ画面が表示されれば正常に設定が完了したこととなります。

## fnmodeの変更
fnmodeを常に2にして、明るさ調整などはfnキーを押しながらするような挙動へと変更します。毎回fnキーを押すのも辛いので...

```
sudo gedit /etc/rc.local
sudo chmod u+x /etc/rc.local
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/28306d48-1367-5713-35c8-f39429d078c9.png)

これで再起動時からfnmodeが常に2となるようになります。

## Google Driveへのアクセス
Ubuntu側で用意されているオンラインアカウントからの連携でも Google Drive へのアクセスはできますが、下の画像のように文字列がハッシュ化されているのかタイトルが意味をなさないものになっており、Google Drive にメモを保存する身としては非常に厳しいものがありました(ファイルから除くと特に問題なく表示されている)。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/e32a96ba-03c9-7b39-354c-1f0b26657e1f.png)

そのため今回は[google-drive-ocamlfuse](https://github.com/astrada/google-drive-ocamlfuse)パッケージを使用することにしました。任意のフォルダに簡単にマウントできるのも利点の1つです。

```
sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse
mkdir ~/GoogleDrive
google-drive-ocamlfuse ~/GoogleDrive
```

これでブラウザが開かれ、承認画面が出るので、アクセスしたいアカウントでの承認を行い、端末で``Access token retrieved correctly.```と表示されれば、正常にマウントがされているはずです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/eb750467-602d-315d-0e0d-9b47e0bf0338.png)

ただこのままだと起動する度にこのコマンドを打ち込む必要があり非常に面倒なので、起動時に自動でマウントされるようにします。以下の[UserName]の部分は自分のユーザ名を入力します。

```
sudo gedit /usr/bin/gdfuse
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/0536667f-4dc7-668e-2436-072e8ada1bdf.png)

fuse.conf の user_allow_other のコメントアウトを外します。

```
sudo chmod 755 /usr/bin/gdfuse
sudo gedit /etc/fuse.conf
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/11d9a969-c760-315a-b0af-f3a5d5581ced.png)

```
sudo gedit /etc/fstab
```

これの最下行に下記を追加します。

```fstab.conf
/ *...* /
gdfuse#default  /home/[UserName]/gdrive     fuse    uid=1000,gid=1000,allow_other,user,_netdev     0       0
```

以上を終えて以下のコマンドを入力して、マウントができるようになれば一段落です。

```
mount ~/GoogleDrive
```

最後の工程としてログイン時に自動マウントするように.profileに最後の行に以下のコマンドを入力します。

```.profile
/ *...* /
mount | grep "${HOME}/GoogleDrive" >/dev/null || /usr/bin/google-drive-ocamlfuse "${HOME}/GoogleDrive"&
```

これでログイン時に自動でマウントされるようになりました。

## その他
### Visual Studio Code で日本語入力ができない問題
Ubuntu Softwearからの入手の場合、私の場合はJapanese Language Pack for Visual Studio Codeを入れても日本語入力を行うことができなかった。
この問題は[公式](https://code.visualstudio.com/download)から.debをダウンロードして、インストールすることで解決した。

### GUI から root でログインする方法
GUI から root でログインする必要があるので、その設定を行います。/etc/gdm3/custom.conf の AllowRoot=true のコメントを外します(一番前の#を消します)。

```
sudo gedit /etc/gdm3/custom.conf
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/fe673575-2aee-ed91-df1c-96a20f0a61cd.png)

次に3行目(```auth required pam_succeed_if.so user != root quiet_success```)をコメントアウトします。

```
sudo gedit /etc/pam.d/gdm-password
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158312/497e9a31-264f-6e2a-b1ce-4a927ccd0c3b.png)

これでGUIからrootユーザでのログインが可能になるので、再起動後```アカウントが見つかりませんか？```からユーザ名をrootと入力しログインできればGUIからのrootのログインは成功です。

## 参考文献
この記事を書くにあたり、多くの記事を参考にさせていただきました。この場をお借りしてお礼申し上げます。

1. https://ja.stackoverflow.com/questions/43015/ubuntu%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%99%E3%82%8B%E3%81%9F%E3%81%B3%E3%81%AB%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%8C%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%95%E3%82%8C%E3%82%8B
2. https://takacity.blog.fc2.com/blog-entry-252.html
3. https://qiita.com/onokatio/items/c386da501d11a9735915
4. https://teratail.com/questions/121986
5. https://linuxconfig.org/how-to-allow-gui-root-login-on-ubuntu-20-04-focal-fossa-linux