Macユーザになり数年、いつの間にか戻れなくなっていたWindowsに何とか戻ってきた

社会人になる前からずっと使っていたWindowsを手放してMacユーザになって数年。画面もフォントもキレイで、動きも滑らかキビキビしているMacに慣れすぎて、Windowsなんて年に数回しか触らない状態になってしまっていました。   

戻ろうと思ったきっかけは色々あります。Appleに囲われることへの危機感、Macへの飽き、久々にPowerShell+.Net使いたい、GPD Pocketみたいな面白そうな端末もあるし、そしてWindows PCの方が安い。。。  

そんなことをここ半年くらい考えていたのですが、そもそも、よく考えれば自分がMacで使っているものって、Officeとエディタとブラウザ、ターミナル(含むLinuxコマンド)、SlackだけだなとWindowsに戻ってみることにしました。  

実は同僚にWindowsに戻ると公言したのは2ヶ月くらい前になるのですが、以前は手に馴染んでいて、今は使いづらく感じるWindows環境を試行錯誤しながら、MacWindowsを行き来してやっとWindowsに落ち着いてきたので記事を書こうと思いました。

エディタ

開発などのがっつりした作業はターミナルの項で書いているDockerコンテナ内のVimで行いますが、ちょっとしたメモに関してはGUIVimが欲しい。gvimなんかも試しましたがデフォルトでも十分きれいでクリップボードとか面倒な設定が不要なOniVim使うことにしました。

github.com

ブラウザ

MacでもVimキーバインドでの操作がメインだったので、これを入れればWindowsでも操作感は大きく変わりませんでした。  

chrome.google.com

ターミナル(Linuxコマンド含む)

Windowsに戻るための一番高い壁がここでした。WSLが入って確かにbashコマンド叩くだけでUbuntu起動してくるのは良かったです。     でも、iTerm2になれた自分にはcmdのプロンプトも、立ち上がり遅いPowershellも肌に合わず、iTerm2の代替になると聞いたソフトウェア、ConemuとかCmderとかHyperとか色々試すものの、なかなかしっくりくるターミナルソフトがありません。bashキーバインドが使えないので打ち間違い多発しました。      

そんななか結局たどり着いたのはDockerでLinux環境作ってそのうえでtmuxを動かすことでした。      このようなイメージのディレクトリ構造でBitbucketのプライベートリポジトリに置いておきます。

  これでgit cloneすればどこでも自分の開発環境を使うことができます。

├── Dockerfile   # 開発用コンテナを作るためのDockerfile
├── build.cmd   # Windows環境におけるコンテナビルド用のコマンド
├── build.sh      # Linux/Mac環境におけるコンテナビルド用のコマンド
├── run.cmd     # Windows環境におけるコンテナ起動用のコマンド
├── run.sh        # Linux/Mac環境におけるコンテナ起動用のコマンド
├── settingfiles      # コンテナBuild時にコンテナに含めるファイル群(dotfile等)
│   ├── bash_profile
│   ├── tmux.conf
│   ├── vimrc
│    ・・・・

例えばrun.shやrun.cmdはこのようなスクリプトになっていて引数に設定したディレクトリをマウントしてコンテナを立ち上げます。

run.sh

#!/bin/bash
mntdir=$(pwd)
if [ "$1" != "" ];then
  mntdir=$1
fi

docker run -it -v ${mntdir}:/root/mnt --rm devel:latest /bin/bash --login

run.cmd

@echo off
SET MNTDIR=%1
IF "%MNTDIR%"=="" (
  for /f "delims=" %%a in ('cd') do @set MNTDIR=%%a
)
docker run -it -v %MNTDIR%:/root/mnt --rm devel:latest /bin/bash --login

ここにパスを通すことで、コマンドプロンプトからrunと実行したり、 WIN+Rファイル名を指定して実行を起動し、run を入力してLinuxコンテナを直接起動できます。

あとはtmuxを起動すればいつもの開発環境。いつものキーバインドです。 このあたりを参考にVIMっぽいキーバインドにして使っています。

更にMacの端末でもWindowsの端末でも同じ操作性になったので、WinとMacを行き来しても、戸惑い少なく作業できるようになりました。

ターミナルの機能はtmuxでいくらでもカスタマイズ可能ですし、コマンドプロンプトなので軽いです。

この記事を参考にフォントを変更することも可能です。

Windows 10のコマンドプロンプトで任意のフォントを使う(Rictyも可) | ほりべあぶろぐ

その他

トラックパッド

Macっぽいトラックパッド操作のために。   

【手順】12インチMacBook(Early 2016)にBootcampでWindows 10 Pro 64bitをインストールすると快適 | kiritsume.com

     

夜間モード

MaciPadも設定してある、夜間モード。一度使うと元には戻れません。  

https://support.microsoft.com/ja-jp/help/4027563/windows-10-set-your-display-for-night-time

     

キーボード

Macbook 12インチでBootcampしているときはこれをやりました。 MacBook ProでBootCampしてWindows10使用時に[英数]、[かな]キーが効かない時の対処法 | くねおの電脳リサーチ

   

Slack止まる

Slackがしょっちゅう止まるので調べてみたらこんなコマンドがありました。今はとりあえずこれで凌いでいます。

slack://notReallyWindows10

freeze - Window's Slack is frozen - Super User

後日追記

  • Docker多用するのですがDocker for Windowsは使い物にならないため、結局メインはVirtual Box上のUbuntuになってしまい、WSLからSSH接続して作業しています・・
  • ターミナルは未だにコマンドプロンプトのままです。他のターミナルは描画速度が遅かったり、vim使うとコマンド認識まで遅かったり。結局コマンドプロンプトが一番サクサク動きます。ウィンドウの枠など見た目上の不満点は我慢しています

更に後日追記

  • USB3.0が出てる久しいので2.0時代にはおそすぎて使えなかったUbuntuのUSBブートを試してみたら快適すぎて、これでいいかという思いが出てきています・・

更に更に後日追記

  • このエントリ見に来てくれた方、すみません。最後はUbuntuに完全乗り換えで、Officeで細かいPowerpoint作るときだけWindowsになってしまいました。