個人用Windowsマシンでの開発環境構築メモ

f:id:amagitakayosi:20180822160527g:plain

6月に転職してWindowsマシンを触ることになったんだけど、環境構築で色々とハマったので、忘れないうちにメモっとく。 キーバインドとか結構特殊にしてるので参考にならないかも……

TL;DR

筆者のスペック

マシン: MSI GS65 Stealth

今の仕事ではGPUパワーが必要になるのでゲーミングPCを選んでいたんだけど、どれも見た目が微妙……。 界隈ではRazer Bladeがイケてるみたいな風潮があって、ちょっと気になって、あまりにも壊れやすいという情報もあったので今回は見送り。 そんなとき、 @ayumu_naga 氏がMSI GS65 Stealthを使っているのをみて、購入を決めた。

英字配列の製品はAmazon JPにはないので、総務の人に無理言ってAmazon.comから購入してもらった……🙇

見た目は控えめだしGPUGeForce GTX1060で十分だし概ね満足している。 ただ、PCを閉じてもスリープ失敗してカバンの中でメチャクチャ熱くなるという現象が発生して困っている。 今に壊れそうでヒヤヒヤする、BIOSの設定で直るんかな……

あ、あとトラックパッドが微妙。 一応どこ触ってもクリックできることになってるけど、端っこでクリックすると明らかにトラックパッドがたわんでて、今にも壊れそう。 Bluetoothマウスやトラックボールを一緒に持ち歩くと良いでしょう。 僕は昨日ロジクールのMX ERGOを買ったよ。

キーバインド

  • AutoHotKey: 左右のAltを英字/日本語のIME切り替えに割り当てる
  • keyhac: カーソル移動、AltをCmd代わりに使う

AutoHotKeyは「すり抜け」という問題がある。 例えば Ctrl + N キーにマッピングしている時、 Ctrl + N を押しっぱなしにしていると、たまに N が入力されてしまう。 すり抜けについては以下のブログ記事が詳しい。

AutoHotkey:キー押しっぱなし病・ホットキーすり抜け病対策の研究

これではカーソル移動に使うにはちょっと厳しいので、keyhacと兼用することにした。 AutoHotKeyIME切り替えにのみ使うので、AHK本体ではなくこちらのパッケージを使っている。

GitHub - karakaram/alt-ime-ahk

keyhacはPythonで設定を書けるので便利。 MSI GS65 Stealthでは、AltがほぼmacでいうCmdの位置にあるので、よく使うショートカットではCtrlとして使えるようにした。 郷に入っては郷に従えという言葉もあるが、MBPを触ったあとにWin機を触るとマジで入力ミスりまくって仕事にならないので……。

しかし、AltをCtrlに割り当てると、Ctrlが押しっぱなしになってしまう現象が発生した。 仕方ないので、CtrlのKeyUpも一緒に入力することで対処している。

    # Ctrl押しっぱなしになってしまうので、Ctrlをもう一度押して解除する関数
    withC = lambda x: (x, "D-Ctrl", "U-Ctrl")

    # Alt as Command
    keymap_global[ "A-C" ] = withC("C-C")  # Copy
    keymap_global[ "A-V" ] = withC("C-V")  # Paste
    keymap_global[ "A-F" ] = withC("C-F")  # Find
    keymap_global[ "A-T" ] = withC("C-T")  # New Tab

keyhacの設定ファイルはこちら: https://gist.github.com/fand/91f090a41639e65a16bf807631fe24af#file-config-py

シェル

f:id:amagitakayosi:20180822160527g:plain

ConEmu + PowerShell。 oh-my-poshっていう、oh-my-zshPowerShell版みたいな奴も使っている。

WSL + bashを使っていないのは、Windowsでの開発方法や文化を学びたいから。 僕はAtomパッケージを作ってるんだけど、ネイティブ拡張や外部アプリケーションとの連携でWin特有の問題が発生することがあり、そういうのを学ぶにはできるだけPowerShellとかcmd.exeを使ったほうが良い。 あと、WSL上のgitでUnityプロジェクトを管理するといかにもぶっ壊れそう、という理由もある。

当初、Cmderって奴がイケてると聞いて、↓の記事を参考にCmderをセットアップしたんだけど、Powerlineでカーソルがずれる問題がどうしても直せない。 (ググると「monospaceのチェックを外せ」と出てくるが、効果なし)

PowerShell, Cmder / ConEmu, Posh-Git, Oh-My-Posh, Powerline Customization · GitHub

CmderはConEmuのラッパーなのだけど、ConEmuを直接起動するとカーソルがずれる問題は発生しないことがわかったので、以降はConEmuを利用している。 スタートアップにConEmuを登録し、 Alt + Space で表示するようにした。 (MSI GS65の Alt + Space はMBPの Cmd + Space と同じ位置)

MacではGitプロジェクトをghq + pecoで管理し、Ctrl + ] でレポジトリの絞り込みができるようにしていた。 PowerShellではキーバインドで関数呼ぶのが難しそう?なので、 gh コマンドでレポジトリを絞り込みできるようにした。

function gh () {
  cd $(ghq list --full-path | peco)
}

PowerShellのプロファイルはこちら: https://gist.github.com/fand/91f090a41639e65a16bf807631fe24af#file-powershell_profile-ps1

エディタ

普段使いはAtomでいいんだけど、C#では使い物にならず、Unity開発ではVSCodeを使っている。

C#には、様々なエディタでIntelliSenseによる補完が使えるようになるomnisharpというプロジェクトがある。 Atomではomnisharp-atomというパッケージで補完が効くようになる……はずなんだけど、一年くらいメンテが停止しており、動かなくなってしまっている……

Visual Studioはなんか性に合わなかったので、結局VSCode + omnisharpでC#開発してる。 他の言語ではやはりAtomの方が快適なので、Atomも併用。

その他

ランチャ

Macでは Alt + Space でSpotlightを表示できるようにしている。 MSI GS65の場合、同じ位置にあるキーは Win + Space になるんだけど、Windowsでは Win + SpaceIME切り替えに登録されており、変更できない(!)。

Woxを試してみたりしたけど、他にしっくりくるキーバインドが無いのと設定が面倒なので、使うのをやめてしまった。 結局スタートメニューをランチャとして使っている。

なんか良い方法ないかな……keyhacで Win + Space を上書きしたらええんかな……

スタートメニュー

f:id:amagitakayosi:20180822161351p:plain

デフォルトで表示されてるパネル邪魔すぎるので全部消して、よく使うやつだけ登録し、サイズも最小になるようにした。 Classic Shellってやつも試してみたけど、表示がもっさりしたり、タスクバーが隠れなくなったりする問題があるのでやめてしまった。

フォント

フォント汚くて目がチカチカするのでMacTypeを使っている。 大昔にも使ってたけど、まさか2018年にもなってMacTypeを使うことになるとは…………

デスクトップ

VJパフォーマンス中の万一の事故に備え、壁紙を真黒にし、デスクトップのアイコンをすべて非表示にした。

仮想WebCam

ビデオ入力を用いたシステムのテストにはManyCamを利用する。 デスクトップのキャプチャや動画ファイル、Youtubeの映像を仮想WebCamとして使えるようになる。

キーボード

MSI GS65 Thinは設定でキーボードの光り方を変更できる。 テンションを上げたい時に便利。


他にいいTipsあったら教えてくれ~~~~~~~~