Windows10(WSL)で最新版のmikutterを使う

# はじめに
初投稿です。インストール用のメモを残しときたかったので、書くことにしました。
分かり辛かったら教えてください。適宜修正します。

Linuxを触ったことがない人にも導入できるレベルに落とし込んだつもりです。
なので、慣れてる人はインストール先とか適宜読み替えて実行して下しあ。

「そもそもmikutterって何？」というひとは、[このページがオススメ](https://mikutter.hachune.net/faq)です。
プラグイン入れればますとどんとかも使えるらしいよ。

～余談～
今までは~~ヤバい~~偉大なる[もぐのさん](https://twitter.com/moguno)が生み出した[黒魔術プラグイン](https://github.com/moguno/mikutter-windows)を利用してWindows7でmikutterを動かしていたのですが、
どうも3.4後半からうまく動かず、諦めていました。
そして先日の[mikutter CK/CS凍結騒ぎ](http://mikutter.hatenablog.com/entry/2018/05/05/164014)があり、私のmikutterにとどめを刺されてしまったのでWSL版に移行しようと思った次第です。
(なぜかCK/CS変えても動かなかったので…。)
[動作確認](https://twitter.com/EbiflyBB/status/991565170387251200)できたので、ちゃんとまとめようかなと。
~~でもこれで3.6.7(現時点での最新版)が使えるようになったよ！~~
###これ書いてる途中に3.7.0がリリースされた。なんてこった。

回線速度やマシンスペックによりますが、3時間くらいかかります。

1人でも多くの人がておくれられますように。

# 参考サイト
参考にさせていただきました。本当にありがとうございます。
[WSLを使ってWindowsでmikutterを動かす。](http://moguno.hatenablog.jp/entry/2017/10/08/155023)
[X Window on WSL (Ubuntu) on Windows 10 Pro](http://estuarine.jp/2017/11/wsl-x-window/)
[Windows Subsystem for Linux + X Windowを1.024倍くらい使いこなすための方法](https://qiita.com/nishemon/items/bb3aca972404f68bfcd6)
[WSLでuim-mozcを使う](https://cobodo.hateblo.jp/entry/2018/04/10/224946)
[Bash on Ubuntu on Windows で日本語入力](http://atomiyama.com/linux/page/buw-de-uim-anthy/)


# 0. 必要なもの
>TwitterのCK/CS

調べたら用意する方法はたくさん出てくるので、なんとかして入手してください。
気が向いたら書くかもしれません。
Twitterを使わない(mikutterを他のサービス用に使う)のであれば不要です。

準備できたら、れっつておくれ。

# 1. WSLを使えるようにする
スタートメニューに`コントロールパネル`と入力してコンパネを起動し、`プログラム`を選びます。
`Windowsの機能の有効化または無効化`という項目があるので選びます。

![1.png](https://qiita-image-store.s3.amazonaws.com/0/255569/51abe0d4-13a3-2005-a426-052d06358f2f.png)

ここで`Windows Subsystem for Linux`がある人はWindows Updateは不要です。
この画像のように、それっぽいものがない人はWindows Updateが必要です。(Betaな人もアップデートが必要です。)

確かWSL(Windows Subsystem for Linux)は、Betaの頃はInsider Previewじゃないとダメだったと記憶しているのですが、
ちょっと前にBetaが取れたらしいので普通にWindows Updateかければ出てくるような気がします。
私は面倒なので「April 2018 Update」とやらを当てることにしました。

![2.png](https://qiita-image-store.s3.amazonaws.com/0/255569/3d7b956a-ce6c-5853-d5a0-8e236c0a1557.png)

ビルド1511から1803になりました。

![3.PNG](https://qiita-image-store.s3.amazonaws.com/0/255569/0132bec5-f30c-660a-4787-e2e9389cb17f.png)

再起動後、同じ画面を開くと無事WSLが出てきました。
これにチェックを入れてOKを押しましょう。再起動を求められると思うので、再起動します。

# 2. VcXsrvをインストールする
調べたら出てきます。普通にインストールするだけです。
https://sourceforge.net/projects/vcxsrv/
WindowsでLinuxのアプリの画面表示するやつです。

# 3. Ubuntuが動くようにする
スタートメニューから`Microsoft Store`を起動し、`Ubuntu`と検索してインストールしましょう。

※追記
18.04がリリースされていますが、本記事は16.04を対象にしています。
18.04だと日本語入力をできるようにするあたりで失敗するとのお話を頂きました。
※追記ここまで

インストールが終わったら`Ubuntu`がスタートメニューにいるはずなので、起動させます。
2, 3分待ってね！と言われるので、正座しながらしばらく待ちます。

>Enter new UNIX username:

と聞かれたら、好きなユーザー名を入力してください。
入力したら、同じように
>Enter new UNIX password:
>Retype new UNIX password:

と聞かれるので、好きなパスワードを入力してください。
パスワードは文字列が入力されていないように見えますが、気のせいです。仕様です。

# 4. Ubuntuに色々必要なものをインストールする
ここからはアプリをインストールする時期によってエラーが出るかもしれません。
ちゃんと出力されたログを見て、成功しているかは確認していきましょう。
大体Success!とか言ってもらえます。Failedとか言われてたら[こちら](https://google.co.jp)へ。
ここではすべて成功していることを前提に進みますので、エラーが出てしまった場合は別途自力での解決が必要になります。

とりあえず下のコマンドを入力してUbuntuを最新化しましょう。(コマンドは1行ずつ実行します。)
結構時間かかります。
>sudo apt-get update
>sudo apt-get dist-upgrade

途中で
>Do you want to continue? [Y/n]

と聞かれた場合は、`Y`と入力して`Enter`キーを押しましょう。

終わったら、次のコマンドを実行してUbuntuたんに日本語を覚えてもらいます。
>sudo apt-get install language-pack-ja
>sudo update-locale LANG=ja_JP.UTF-8

完了したら、日本語を話してもらうために一度画面を閉じます。
そしてもう一度スタートメニューから`Ubuntu`を開いてください。

下のコマンドでなんか必要なモノを入れておきましょう。
入れておかないとあとでUbuntuたんに怒られます。(怒られました。)
~~まとめて入れるとめっちゃ汚く見える…~~
>sudo apt-get install gcc git libidn11-dev fonts-noto ttf-ancient-fonts uim uim-xim uim-anthy ruby ruby-dev

<details><summary>※日本語フォントについて[展開]</summary><div>
もしかしたら`fonts-noto`ではなく`fonts-noto-cjk fonts-noto-hinted`でもいいかもしれません。試せてないですが一応載せておきます。
余談ですが下のコマンドを打つとWindowsのフォントがUbuntuから見えるようになります。
もしかしたらフォント入れなくてもいいかもですね。
>sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts/windows
>sudo fc-cache -fv

</div></details>

apt-getが終わったら、今度はこれです。
>sudo gem install bundler
>sudo gem install rake

本当はRuby2.5とか用意したかったんですが、時間がかかりそうなので今回は見送りました。
降ってくるパッケージが2.3系だったので、多分大丈夫です。
[大丈夫だよ！絶対、大丈夫だよっ！](https://twitter.com/_TOMOSUKE_/status/679339372022337536)

※依存関係がよくわからないのですが、
rakeがないと怒られたのでここで入れておきます。
もしかしたらGemfileが修正されるか何かで不要になるかもしれません。

# 5. Ubuntuになんか設定的なアレをする
魔法の呪文を唱えます。
>cp /etc/skel/.bashrc ~/
>echo "export DISPLAY=localhost:0.0" >> ~/.bashrc
>source ~/.bashrc

次にリンクをクリックしたときにWindows側のブラウザが開くようなスクリプトを作ります。
>mkdir bin; touch bin/mikutter_browser_starter
>vi bin/mikutter_browser_starter

黒い画面になると思いますが、落ち着いてください。
*vimの世界は深い闇に覆われているの。一歩間違えれば帰ってこれなくなるわ。だから絶対、変なキーを押さないで…。*

`i`を押して挿入モードにします。
そしてこれをペタッと貼り付けます。コピーしたら画面上で`右クリック`するだけです。
>\#!/bin/sh
>ESCAPED_URI=\`echo "$1" | sed s/\\&/^\\&/g\`
>cmd.exe /C start "$ESCAPED_URI"

貼り付けられたら、`ESC`キーを押します。`:`キーを押して
>wq!

と下のバーに打ち込めたら、Enterを押して脱出です。
あとはこのコマンドを実行して、権限を与えれば下準備は終わりです。
>chmod 755 ~/bin/mikutter_browser_starter

# 6. mikutter本体を用意する
何も考えずホームディレクトリ直下に用意します。
気になる人は好きな場所へ。(上のスクリプトとかもですけど…。)
>git clone git://toshia.dip.jp/mikutter.git
※もしサーバーが落ちている等で失敗したら、こっちのコマンドで試してください。
>git clone https://github.com/mikutter/mikutter.git

# 7. mikutterを動かすためのライブラリを用意する
魔法の呪文をｔ(ry
>cd ~/mikutter
>mkdir -p ~/.mikutter/plugin; touch ~/.mikutter/plugin/display_requirements.rb
>sudo bundle install

# 8. CK/CSを書き換える
あらかじめ用意してもらったキーに差し替えます。
やってるのは[ここ](http://mikutter.hatenablog.com/entry/2017/11/19/202832)と同じことです。
このコマンドを実行して、もう1度vimの世界へ飛び込みます。
>vi core/config.rb

`i`キーを押して挿入モードにしたあと、頑張って`TWITTER_CONSUMER_KEY`と`TWITTER_CONSUMER_SECRET`のそれぞれを差し替えます。
`矢印`キーと`BackSpace`キーと`右クリック`を駆使して頑張るのじゃ。

書き換えが終わったら、前回と同じように`ESC`キーを押してから`:`を押して、
コマンドモードにしてから、`wq!`で脱出です。お疲れ様でした。

# 9. mikutterを起動する
Windows側でVcXSrvを起動しましょう。タスクトレイにいればOKです。
もしかしたら何やら聞かれるかもしれませんが、`Multiple`さえ選んでればたぶん何でも大丈夫です。
あとはこのコマンドを実行して、mikutterを呼び覚ますのです。
>ruby ~/mikutter/mikutter.rb

無事起動しましたね。おめでとうございます！！！！！！！！！！
早速認証…と行きたいのですが、ブラウザの設定を先に済ませておきましょう。
右下の`ネギレンチアイコン`を押します。

左メニューから`表示`を選択し、下にスクロールしていくと`次のコマンドを使う`というオプションがあるので選択し、
>/home/`{ユーザー名}`/bin/mikutter_browser_starter

と入力しておきましょう。これでWindows側のブラウザが起動するはずです。
もちろん手打ちでも可です。Ubuntu側にFirefoxを入れるのもアリだと思うのですが、
めちゃ重なのでオススメはできません。

あとは画面に見えてるミクちゃんに従って操作し、認証を済ませばTLが流れ込んできます。

# 10. 日本語入力ができるようにする
とりあえず参考サイトに書いてある通りにしたいと思います。
鵜呑み勢なのでこれいらなくね？とかあったら是非教えてください。
>sudo touch /etc/apt/sources.list.d/artful.list
>sudo vi /etc/apt/sources.list.d/artful.list

そしたら、下の内容を書き込んでください。
もう3回目なので…vimの使い方は不要ですよね！
>deb http://ja.archive.ubuntu.com/ubuntu artful main universe

同じように次のファイルも作成します。
>sudo touch /etc/apt/preferences.d/artful
>sudo vi /etc/apt/preferences.d/artful

下の内容を書き込みます。

>Package: *
>Pin: release n=xenial
>Pin-Priority: 990

>Package: *
>Pin: release n=artful
>Pin-Priority: 90

2ファイルとも準備できたら、下のコマンドを実行してMozcさんをインストールします。

>sudo apt update
>sudo apt install -t artful uim-mozc

終わったら、次のコマンドを実行して設定画面を開きましょう。
>uim-pref-gtk

「使用可能にする入力方式」というところにある`編集`ボタンを押して、
`Mozc`だけが有効になるようにしておきましょう。

終わったら、`logout`を実行して再ログインします。
これでmikutterを起動すれば、日本語入力できるようになってるはずです。

# 11. プラグインを導入する
とりあえず個人的に必須だと思っているプラグインを導入していきます。
基本的にgitから導入しますが、そのまま`~/.mikutter/plugin/`においてもらっても大丈夫です。

①画像リンクをインライン表示する
>git clone https://github.com/moguno/mikutter-subparts-image.git ~/.mikutter/plugin/

②画像を添付するプラグイン
>git clone https://github.com/moguno/mikutter-uwm-hommage.git ~/.mikutter/plugin/

③投稿元を表示するプラグイン
>git clone https://github.com/toshia/mikutter-sub-parts-client.git ~/.mikutter/plugin/

④鍵垢のTweetの背景色をグレーにする
これはひと手間かかってしまいますが、オススメなので載せておきます。
>touch ~/.mikutter/plugin/gray_protected_users.rb
>vi ~/.mikutter/plugin/gray_protected_users.rb

これで編集画面になったら、次のリンク先の`gray_protected_users.rb`として書かれている15行の内容を張り付けて保存します。
(`Raw`と書かれたボタンを押して表示される全文ですね。)
>https://gist.github.com/penguin2716/3183710

パッと思いつくのはこのあたりでしょうか…。
私は30個くらい入ってるのでもはやよくわかりません。

# 12. その他
なんかあれば追記でまた色々書きます。
設定画面眺めて色々好みにカスタマイズしましょう！
ショートカットキーの設定とか、抽出タブの設定とかおすすめです。

ちなみに、mikutterがアップデートされたときは下のコマンドで最新版に更新できます。
エラー(競合)が起きないことを祈りながら実行しましょう。
>cd ~/mikutter
>git stash
>git pull
>git stash pop

# あとがき
昨日人生で初めて[画面を割りました](https://twitter.com/EbiflyBB/status/993278779928690688)。
Win10を使ってなかったのもPC新調したかったからなんですが、最近何かと支出しかなくぐぬまってます。
[干し芋](https://www.amazon.co.jp/hz/wishlist/ls/2TKX06FWRQ99W)が送られてくるとテンション上がってQiita書きまくります。多分。
記憶域プール作りたい。