Kikuchy's Second Memory

つくる楽しさをもっと伝えたい。プログラムを書いていて、わからなかったこと・気付いた事を書き留めています。

GPD Winで通勤中にコーディングしたい

GPD Winが安くなっていたので衝動的に買ってしまいました。

この端末は元々ゲーム用ですが、何と言ってもボタン式キーボードがついているのが魅力。
日本の通勤電車の中でも使用できる、学生/サラリーマンの味方です。
パンタグラフ式キーボードは、立っているときに両手で使用できないので却下)

普段は家でも会社でもMacを使っていて、コードを書く場合もVimスクリプトを書くか、IntelliJJavaを書くか、という使い方をしています。
GPD WinにはWindows 10 Homeが入っているので、とりあえずBash on Ubuntu on Windowsで運用して遊んで見ることにしました。
気に食わなかったら適当にLinuxのディストリを見繕って入れるつもり。

Windowsで快適に過ごす環境を整える

Zeal

Macでは言語やライブラリのマニュアルを引くのにDashを使っています。

Windowsでも使える同じようなZealというものがあるようなので、これを使ってドキュメントを引くことにします。

Zeal - Offline Documentation Browser

フォント

SourceCode Pro for Powerlineを入れます。
Vimでlightlineを使っているので、対応したフォントを使えるのは嬉しい。

github.com

ランチャーは検討中

MacではAlfredを使っていてDashもそこから引けるようにしているので、できれば同じようなことをしたいところ。
アプリケーションランチャーとしてはスタートメニューだけで事足りるのですが、Zealを引くことのできるランチャーが果たしてあるのかはまだわかりません。


Linux環境を整える

Creators Updateを入れる

Creators UpdateからUbuntuが16.04になったらしいので、新しいものは良い、の精神で放り込みます。

放り込んだらば、WifiSSIDを認識しても接続ができない、という状態に陥ったので、Wifi Patchをあてます。

www65.atwiki.jp


あとは Bash on Ubuntu on Windows をインストールして、bashをぺちぺち叩いていきます。

git, gcc, zsh

何がなくともgitもgccもないと何もできません。
clangではないのは、この世にはgccじゃないとビルドできないものがまだまだたくさんあるから…

zshの保管機能が優秀すぎてそれなしでは生きていけない体になってしまったのでzshも入れます。

$ sudo apt install git build-essential zsh

vim

aptにはまだvim 8が来ていないので、有志が作ってくれたppaを使います。
tipsonubuntu.com

普通に install vim するとluaだとかが有効にならずneocompleteが使えないので、gnome全部込みのやつを放り込みます。

$ sudo apt install vim-gnome

dotfile

私は個人用のdotfileをgithubで管理しているので、gitもvimも入ったところでおもむろに放り込みます。

github.com


そしてvimを起動したらプラグイン類をインストール。

:call dein#install()

もしかしたら先にX Server入れておかないと、githubのユーザー名とか聞かれたときに動かなくなるかも?
githubのユーザーIDとかを聞かれて、プロンプトに入力できずタイムアウトで死んだ)

anyenvとphpenv

今書きたいプログラムはPHPなので、phpenvを入れておきます。
phpのビルドにはなんだかんだたくさんパッケージが必要なので、この際全部放り込んでおきます。

インストールはこちらを参考にしました。
qiita.com

PHP7.1.6ではbisonは最新でも問題なかったです。
あと、このままではビルドが通らなかったので、いくつかパッケージを足しました。

$sudo apt install libssl-dev libmcrypt-dev libreadline-dev libxslt1-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libmcrypt-dev libsqlite-dev libtidy-dev libltdl-dev make autoconf automake re2c lemon libsasl2-dev pkg-config bison

Windows環境とLinux環境を上手く両立させる

WSL Terminal

流石に標準のcmd.exeではフォントとか選択肢が狭すぎるしコピペもままならないのがつらすぎるので、WindowsSSHしたりmingw使ったりしてたときに使ってたminttyを使いたいところ。

あと、Explorerで開いているディレクトリをbashでも開きたいときが多分出てくるので、そこも対策したい。
カレントディレクトリからbashを起動できるようにしてくれるWSL Terminalなるものがあるということなので、とりあえずこれを使ってみることにしました。

github.com


etc/wsl-terminal.conf にシェルを指定できる項目があるので、bashからzshに書き換えておきました。

X Server

gvimを使いたくなることもある気がするので、VcXsrvを入れてスタートアップで起動するようにしておきます。
あとはprofileの方にもDISPLAY環境変数を設定しておきます。
sourceforge.net

export DISPLAY=localhost:0.0

今のままだとgvimのメニューなど日本語部分が文字化けするので、Windowsで使えるフォントを放り込んでフォントキャッシュを再作成します。
こちらを参考に行いました。
d.hatena.ne.jp


これで無事にgvimも使えるようになりました。
WindowsデスクトップにUbuntuのウィンドウが出てるってなんだか新鮮。

現在の感想

CPUがAtomなので、非力さは否めない感じ。
コンパイルとかとても時間がかかるので、もしできることなら別のマシンでクロスコンパイルしたものを持って来たい気分になる。

キーボードは全体的に端末の左側寄りに配置されているので、右手はいつも突っ張った感じになる。
ホームポジションにポッチがあるのでタイピングはそこそこしやすい。
WindowsではAlt + F4をよく使うけれども、Function類はFn + 数字キーでの入力なので、とても入力できない。せめてAltとFnが隣同士になっていてくれれば良いのだけれど…

ジョイパッドはそこそこよい操作感。
細かいマウス操作は慣れが必要。
スクロールは上下しかできないので、左右にもできたらもっと嬉しかった。

画面がタッチパネルなのは嬉しい。
ブラウザで前のページに戻るときや、いちいちマウスカーソルを移動させるには遠かったりするときに、指で操作しちゃうと便利。
というか日々スマホを使っていると「手持ち端末の画面は触るもの」という意識になっているので自然と触ってしまうので、触れるのは嬉しい。

しばらくはこのまま運用してみたいと思います。
飽きたら…どのLinuxディストリを試そうかなぁ。