社会人になる前からずっと使っていたWindowsを手放してMacユーザになって数年。画面もフォントもキレイで、動きも滑らかキビキビしているMacに慣れすぎて、Windowsなんて年に数回しか触らない状態になってしまっていました。
戻ろうと思ったきっかけは色々あります。Appleに囲われることへの危機感、Macへの飽き、久々にPowerShell+.Net使いたい、GPD Pocketみたいな面白そうな端末もあるし、そしてWindows PCの方が安い。。。
そんなことをここ半年くらい考えていたのですが、そもそも、よく考えれば自分がMacで使っているものって、Officeとエディタとブラウザ、ターミナル(含むLinuxコマンド)、SlackだけだなとWindowsに戻ってみることにしました。
実は同僚にWindowsに戻ると公言したのは2ヶ月くらい前になるのですが、以前は手に馴染んでいて、今は使いづらく感じるWindows環境を試行錯誤しながら、MacとWindowsを行き来してやっとWindowsに落ち着いてきたので記事を書こうと思いました。
エディタ
開発などのがっつりした作業はターミナルの項で書いているDockerコンテナ内のVimで行いますが、ちょっとしたメモに関してはGUIのVimが欲しい。gvimなんかも試しましたがデフォルトでも十分きれいでクリップボードとか面倒な設定が不要なOniVim使うことにしました。
ブラウザ
MacでもVimキーバインドでの操作がメインだったので、これを入れればWindowsでも操作感は大きく変わりませんでした。
ターミナル(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も可) | ほりべあぶろぐ
その他
トラックパッド
【手順】12インチMacBook(Early 2016)にBootcampでWindows 10 Pro 64bitをインストールすると快適 | kiritsume.com
夜間モード
MacやiPadも設定してある、夜間モード。一度使うと元には戻れません。
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使うとコマンド認識まで遅かったり。結局コマンドプロンプトが一番サクサク動きます。ウィンドウの枠など見た目上の不満点は我慢しています
更に後日追記
更に更に後日追記
- このエントリ見に来てくれた方、すみません。最後はUbuntuに完全乗り換えで、Officeで細かいPowerpoint作るときだけWindowsになってしまいました。
更に更に更に後日追記
行き帰りをしながらUbuntuからWindowsに戻ろうとしているのですが、ここ1ヶ月はWindowsに戻れています。
要因は以下の2点
V1の時には時々不安定になっていたHyperもV2になって気持ちよく使えるようになりました。
一つのタブはコマンドプロンプト、一つのタブはWSLとして作業することで、快適に作業できています。
時々メモ帳で何気なくテキスト編集してしまうと、UTF-8で保存しても BOM有り
になってしまうのが少しストレスです・・
ただ、それも、これ当てるまでの我慢。 forest.watch.impress.co.jp
更に更に更に更に後日追記
WSL2が発表されたので楽しみにまっているところです。
ターミナルにはHyperを使ってきて、デザインも操作性も気に入っていたのですが、立ち上がりが遅い。
WSL2のためにAlacrittyに乗り換えました。
前からインストールはされていたのですが、どうしても右クリックからの Open Hyper here
をしてしまうので、Hyperばかり使っていました。
レジストリ調整すればAlacrittyも同じことできることを知ったので乗り換えができました。
インストール方法はChocolatey使っているならこちら。
> choco install alacritty
レジストリ調整はこちら。
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\Alacritty] "Icon"="C:\\ProgramData\\chocolatey\\bin\\alacritty.exe" @="Oepn with Alacritty" [HKEY_CLASSES_ROOT\Directory\Background\shell\Alacritty\command] @="C:\\ProgramData\\chocolatey\\bin\\alacritty.exe --working-directory \"%V\"" [HKEY_CLASSES_ROOT\Directory\shell\Alacritty] "Icon"="C:\\ProgramData\\chocolatey\\bin\\alacritty.exe" @="Oepn with Alacritty" [HKEY_CLASSES_ROOT\Directory\shell\Alacritty\command] @="C:\\ProgramData\\chocolatey\\bin\\alacritty.exe --working-directory \"%V\""
更に更に更に更に更に後日追記
まだ少し気になっていたターミナル。PowerShell7から描画速度が大幅改善されたのでこれに切り替えました。