はじめに
「約10年ぶりにWindowsで仕事する環境を整えてみた 」という記事を書いてから、早いもので1年が経過しました。1年が経過すると様々な変化がありますので、Advent Calendarも空いてることですしそれらの差分を更新したいと思います。
簡単なまとめ
- WSL2のsystemdサポートとWSLgの問題は、社内のドメイン側の設定が原因であったようです。問題が解決し、WSL2とWSLgを組み合わせることで、ほとんどの開発作業が可能になりました。
- 現在、Windows側で主に起動しているのは、Chrome、Slack、Windows Terminalのみです。
- 前回、Windows側にインストールしていたこれらのツールは削除し、WSL2側にのみインストールしています。
- Copilot Chatを使うため新しくVSCodeを導入しました。VSCodeをWindows側にインストールしWSL2側で起動すると自動的にWSL2にサーバーがインストールされ、Windows側がクライアントとして動作するため、導入が非常に簡単でした。IntelliJも同様になれば嬉しいです。
- Microsoft WhiteboardはMiroのような無限スクロールなホワイトボードで使いやすいです
Windowsに関連する設定
インストールしているアプリケーション
- PowerToys
- Windows Terminal
- Google Chrome
- Slack
- VSCode
- Microsoft Whiteboard / Loop
PowerToysの設定
前回はMacのキーバインドをWindowsに近づける設定をしていましたが、逆にWindowsのキーバインドをMacに近づけることにしました。
- キーの再マップにより、「Caps Lock」を「Ctrl(Left)」に変更します。
- ショートカットの設定で、「Win(Left) + Ctrl(Left) + Space」を「Alt(Left) + IME Kanji」に変換します。
- ショートカットの設定で、「Win(Left) + `」を「Undefined」に変換します。
課題
Windowsの起動からPowerToysの起動まで、およびPowerToysのアップデート時にはキーバインドが適用されていない時間があり、時折Caps Lockをかけてしまうことがあります。
Microsoft Whiteboard
ペンタブを購入したので、Whiteboardアプリケーションを探していました。そしてMicrosoft Whiteboardを見つけ、現在試用中です。ローカルアプリケーションとして動作するため、Miroに比べて軽快に感じます。
課題
しかし、ペンタブを使っても、蛍光ペンなどデフォルトではないペンに切り替えても、デフォルトのペンのようにしか動作しないため、使いづらさがあります。
Microsoft Loop
Microsoft LoopはコンフルやWikiのようなコレボレーションツール
見た目も操作性もよく、Office365アカウントで共有も楽なので、既存資産がないのであればこれで十分な印象を受けました。
課題
デスクトップアプリ版ではGitHubと連携できるのですが、Web版では連携できません。そしてMacユーザーにはWeb版しかなく、GitHubとの連携が取れません。自分を除く部署のメンバーがMacユーザーなので、残念ながら利用を諦めています。
WSL2 に関連する対応
systemd 有効化
cat <<EOF | sudo tee /etc/wsl.conf > /dev/null
[boot]
systemd = true
[network]
generateResolvConf = false
EOF
この設定後、WSL2を再起動してから入り直すことになります。
homebrewのインストール
# install homebrew
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" && \
(echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> /home/$(whoami)/.zprofile && \
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" && \
sudo apt-get -y install build-essential && \
brew install gcc
Dockerのインストール
# install docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
その他必要なものをインストール
# install required packages
sudo apt -y install pip openjdk-17-jdk zip jq mkcert libssl-dev
sudo -H pip install hjson
brew install ghq gh awscli aws-cdk volta goenv git-secret peco remarshal yq kubectl k9s aws-iam-authenticator tfenv
curl -sS "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/ubuntu_64bit/session-manager-plugin.deb" -o "session-manager-plugin.deb" && \
sudo dpkg -i session-manager-plugin.deb && \
rm -f session-manager-plugin.deb
goenv install 1.21.5 && goenv global 1.21.5
volta setup && npm install ts-node -g
tfenv install && tfenv use
フォントや日本語変換の対応
Windows側のフォントを読み込むための設定と、IMEのインストールを行っています。Linuxでの日本語入力に慣れておらず、Win11のWSL2 (WSLg)を日本語化しMozcで日本語入力する方法について紹介されているこちらのサイトを参考にしています。
cat << 'EOS' | sudo tee /etc/fonts/local.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/mnt/c/Windows/Fonts</dir>
</fontconfig>
<!-- Created by bash script from https://astherier.com/blog/2021/07/windows11-wsl2-wslg-japanese/ -->
EOS
sudo apt -y install language-pack-ja
sudo apt-get install language-pack-en language-pack-en-base manpages
sudo apt install -y fcitx-mozc dbus-x11
sudo sh -c "dbus-uuidgen > /var/lib/dbus/machine-id"
cat << 'EOS' | tee -a ~/.zprofile
#Added by bash script from https://astherier.com/blog/2021/07/windows11-wsl2-wslg-japanese/
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx
if [ $SHLVL = 1 ] ; then
(fcitx-autostart > /dev/null 2>&1 &)
x set -r 49 > /dev/null 2>&1
fi
#Added by bash script: end
EOS
このようにWindows + WSL2による開発環境は1年間で大きく進化し、私自身も快適に開発作業を行えるようになりました。