Ubuntu 20.04での環境構築

core i7 4790K と Z97 extreme4 による自作PCに 
Ubuntu GNOME 16.04を入れた時の手順メモ。
 Ubuntu 
18.04
 20.04 をセットアップするメモ。
内容は自分用です。

# インストールメディアのブート
ここではUSBメモリでインストールメディアを作成しブートする。

## USBメモリにisoを焼く
(UEFIブートのため)**64bitの**desktop imageをダウンロードしておく。以下macOSで焼く手順を書く。

**ExFAT GUIDパーティションマップでフォーマットしてから** (`diskutil eraseDisk ExFAT UbuntuFocal /dev/disk2` とか)、以下のコマンドを実行する。

```bash
hdiutil convert -format UDRW -o ubuntu ubuntu-20.04.1-desktop-amd64.iso
df # /dev/disk2 の Mounted on を確認 (/Volumes/Ubuntu だったとする)
diskutil umount /Volumes/Ubuntu # マウントされている場合
diskutil list # 焼きたいUSBメモリのパスを確認 (/dev/disk2 だったとする)
sudo dd if=ubuntu.dmg of=/dev/disk2 bs=1m
```

**ddにめちゃくちゃ時間がかかる** ので、あらかじめここまで済ませておくと良い。

## USBメモリのブート
F2とかF12をおしてBIOSを起動し、boot順を**「UEFI:」が先頭につく**USBメモリが最初になるように変え起動する。

# インストール
- 「日本語」にする
- 「Ubuntuをインストール」を選択
- 適当にチェックをいれて「続ける」
  - 元々Ubuntuいれてた方のでかいパーティションにいれる。なおこれをしてもデュアルブートは壊れない
     - Ubuntuをクリーンインストールすると、マシンに繋ってたブート可能なパーティション (WindowsかLinuxかを問わず) がクリーンインストールしたgrubに現れる気がする。最悪、 `sudo os-prober` して出てくる奴は `sudo update-grub` すると焼き込めるらしい。
  - 後で動かないと困るので全部盛りにする
- 「それ以外」で「続ける」

黒い画面に "Please remove the media, and then press Enter" でインストールメディアを抜いてエンター。

# 環境構築
## アップデート
ここで名前解決に失敗する場合は http://qiita.com/k0kubun/items/1037a78b392a7ca4aed5 を試す

```
sudo apt-get update
sudo apt-get upgrade
```

## 英語化

* 設定
  * 地域と言語 > 言語: English (United States)

再起動。 再起動後 "Update Names" を選択する。

## HiDPI

`gsettings set org.gnome.desktop.interface scaling-factor 2` だと動かないので、

* Settings
  * Devices > Display > Scale: 200%

## bootstrap
```bash
sudo apt install curl git
git clone --recursive https://github.com/k0kubun/dotfiles src/github.com/k0kubun/dotfiles
cd src/github.com/k0kubun/dotfiles
./install.sh
```

skk, git, ghq, peco, zsh, tmux, vimがインストールされる。
再起動するとシェルがzshに変わる。ついでに`sudo loginctl enable-linger k0kubun`もやっておくとよい

## キーのリマップ
```bash
sudo systemctl restart xkeysnail
```

## 画面のロックの設定
* Settings
  * Power > Blank screen: 15min
  * Keyboard Shortcuts > System > Lock screen: Ctrl+Super+L

## sshdたてて鍵を移す
```
sudo apt install ssh
sudo systemctl start sshd

curl -s https://github.com/k0kubun.keys > ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ip addr # enp0s25 inetのところを見る
```

```bash
ssh ubuntu # テスト
scp -r ~/.ssh ubuntu:~/Downloads/ssh
scp -r ~/.gnupg ubuntu:~/Downloads/gnupg
scp -r ~/.nocturn ubuntu:~/Downloads/nocturn
```

これらを `~/` に動かすと動く。GnuPGを使ったコミットが動かない場合、mitamaeを実行し直すと設定が直る。

## SKK
- Settings > Region & Language > Input Sources に Japanese (SKK)を追加
  - Japaneseだけある状態で、Japaneseをもう一度足そうとクリックすると、SKKがその後に出てきてそれで動く
  - ibus-setupでSKKを足す必要があるかも (未検証)
- Setup (IBus SKK Preferences) > Behavior > Initial input mode: Latin


なんかパスワード入力とかロック画面が壊れるので、Settings > Region & Language > Manage Installed Languagesをクリックして何かインストールする。この時Input SourcesにEnglish (US)を使っていないとパスワードが入力できない。このインストールを終えるとキーボードレイアウトが変なのが直る。
 setxkbmapで直るかも

また、C-jで動かない問題は、Chrome避けのためにSKKのkeymapを変更しているので、それが壊れている可能性がある (mitamaeを実行すると直る)

## Google Chrome
https://www.google.com/chrome/browser/desktop/

## Nocturn
https://github.com/k0kubun/Nocturn/releases


`sudo apt install libgconf2-4` が要る。


desktop entryはdotfilesが作るが、Nocturn.png は `~/src/github.com/k0kubun/Nocturn` にあるものが使われるので、cloneする。

`~/.nocturn` を復元しなかった場合は、以下の設定を足す

```json
{
  "homeList": "k0kubun/timeline",
  "pollInterval": 4
}
```

## Slack
https://slack.com/downloads/linux

## ランチャー
* Settings: Keyboard Shortcuts
  * System > Show all application: Super+Space
  * Windows > Activate the window menu: Disabled
  * Custom > google-chrome (`wmctrl -x -a google-chrome.Google-chrome`): C-u
  * Custom > Nocturn (`wmctrl -x -a nocturn.Nocturn`): C-o
  * Custom > IDEA (`wmctrl -x -a sun-awt-X11-XFramePeer.jetbrains-idea-ce`): C-y
  * Custom > Gnome-Terminal (`wmctrl -x -a gnome-terminal-server.Gnome-terminal`): C-h

`sudo apt install wmctrl` の後 `wmctrl -x -l`で確認

## Gnome Terminal
### メニューバー無効
* Preferences > General > Show menubar by default in new terminals: 無効
  * ここにはこの設定はなくなったぽいがデフォルトで無効になっている。画面右クリックで "Show Menubar" クリックするといじれる。

### スクロールバー無効
* Profiles > Unnamed > Scrolling
  * Show scrollbar: 無効

### 背景色の変更
そもそもdotfilesで `dconf load /org/gnome/terminal/legacy/ < config/dconf/org/gnome/terminal/legacy` すると復元できるかも。

* Profiles > Unnamed > Colors
  * "Use colors from system theme": 無効
  * Built-in schemes: White on black
  * "Use transparency from system theme": 無効
  * "Use transparent background": 20%くらいにする

### 文字の変更
```
sudo apt install fonts-inconsolata
sudo fc-cache -v
```

* Profiles > Unnamed > Text
  * Custom font: Inconsolata Medium 18

### カーソル点滅無効

* Profiles > Unnamed > Text
  * Cursor Blinking: Disabled

### ベル無効

* Profiles > Unnamed > Text
  * Terminal Bell: 無効

### ショートカット

* Shortcuts
  * Edit > Copy: Alt-C
  * Edit > Paste: Alt+V

### 閉じる時に確認しない
```
gsettings set org.gnome.Terminal.Legacy.Settings confirm-close false
```

## GNOMEの設定
### Chromeから拡張をインストールできるようにする
```
sudo apt-get install chrome-gnome-shell
```

### 日付と時刻を右側に出す
- https://extensions.gnome.org/extension/2/move-clock/ で ON にする
- `gsettings set org.gnome.desktop.interface clock-show-date true`


`gsettings set org.gnome.desktop.interface text-scaling-factor 1.1`
 やらなくなった

### GNOMEの画面端でウィンドウが拡大するのを無効にする
```bash
gsettings set org.gnome.shell.overrides edge-tiling false
```

### 壁紙
- Settings > Background

### GNOMEテーマ
```
sudo apt install arc-theme gnome-tweak-tool
```

- "Tweaks"
  - Appearance > Theme > Applications: Arc

### beep音無効
- Settings > Sound > 
Sound Effects > Alert Volume
 Volume Levels > System Sounds: OFF

一度右に動かしてから左に動かす必要がある https://askubuntu.com/questions/1283766/how-to-disable-alert-sounds-on-ubuntu-20-04

### screen shot
- Settings > Keyboard Shortcuts > Screenshots > Save a screenshot to Pictures: Ctrl-Alt-3
  - Settings > Keyboard Shortcuts > Screenshots > Save a screenshot of an area to Pictures: Ctrl-Alt-4

### Windowの拡大縮小ボタンをなくす
Gnome Tweaks で、

* Window Titlebars > Titlebar Buttons
  * Maximize: 無効
  * Minimize: 無効

### 通知の表示位置の変更
- Chromeで https://extensions.gnome.org/extension/708/panel-osd/ のインストール
- "Tweaks"
  - Extensions > Panel osd: 設定する

### デスクトップアイコンを消す
* "Tweaks"
  * Extensions > Desktop icons: 設定する

## Bitwarden
https://bitwarden.com/download/

more desktop installation options から .deb をいれる

## Dropbox

https://www.dropbox.com/ja/install-linux

## OpenConnect
```
sudo apt install network-manager-openconnect-gnome
```

再起動する

* Settings > Network > + > Multi-protocol VPN client (openconnect)
  * VPN Protocol: Cisco AnyConnect or openconnect
  * Gateway: anyc.vpn.gatech.edu
  * これでもうAddを押す
* ONにするとユーザー名とパスワードと2FAを求められる
  * Groupをgatech-2fa-duo にする

https://faq.oit.gatech.edu/content/how-do-i-install-cisco-anyconnect-client-linux

## IntelliJ IDEA
まず JDK をインストールする。その後

https://www.jetbrains.com/idea/download/#section=linux

tarを展開して`/opt` に置く。 `bin/idea.sh` を叩く。 Launcher Script は作るようにする。

## OpenVPN
* Settings > Network > + > Import from file
  * Linux用の.opvnを開く