この記事は コネヒト Advent Calendar 2023 - Adventar 6日目の記事です。
先日業務PCが Thinkpad L14 から VAIO SX14 と新しくなり、 もろもろの業務環境のセットアップを久しぶりにしたのでその内容をまとめます。
PC情報: VAIO SX14
きっかけは以前まで利用していた Thinkpad L14 の調子がだいぶ悪いケースが増えてきたことが大きいです。 どの機種にするかは基本的に自由にリクエストできることから今回は Thinkpad シリーズではなく VAIO を選択しました。
今回選定した大まかなスペックをこれまで使っていた Thinkpad 14L と比較すると次の通りです。
Thinkpad L14 | VAIO SX 14 | |
---|---|---|
CPU | Ryzen 7 PRO 4750U | Intel Core i7-1370 |
メモリ | 64G | 32GB |
ストレージ | 1TB SSD | 1TB SSD |
ディスプレイ | Full HD (1920x1024) | 4K (3840x2160) |
キーボード配列 | 英字配列 | 英字配列 |
重さ | 約 1.61kg | 約 999g |
所感など
- メモリはこれまでの半分の32GBとなりましたが、ここ数年業務で利用している感じ64GBをフルで使うようなケースもほぼ無かったこともあり、今のところ全く困っていません
- CPUの世代は新しいものとなり、Intel CPUですがとても快適になりました。 1
- VAIO も機種によっては英字配列キーボードを選べるのがうれしいですね
- 重さは正直まったく考慮していなかったのですが、実際にVAIO SX14を持ってみると薄さも相まって持ちやすさが段違いによく、それにも関わらずPC全体はとても頑丈で扱いやすく一瞬で「VAIO最高じゃん!」という気持ちになりました
- 4Kディスプレイも相まって、どこでも作業効率を落とすことなく作業できそうで色々な可能性を感じます
- 情シスにお願いしたタイミングがちょうどブラックフライデーと重なり、ブラックエディションだったのにも関わらず30万円ほどで購入できたのはラッキーでした。
気に入って私物にも同じものを購入しようとしましたが、その時には既にブラックフライデーは終わっていました... - ALL BLACK EDITION で隠し刻印のキーボードがカッコいい
Windows11 のセットアップ
基本的には以前書いた次の記事で紹介しているものがベースとなってはいますが、2023年12月版ということで改めてまとめます
また、すべてを網羅的にまとめるととんでもない長さになりそうなので、大まかものとなっている点はご了承ください。
大まかに最初やったことの流れ
- Win + v でクリップボード履歴の有効化
- Edge の最低限の設定
- Edge デフォルトの週刊誌みたいなトップの無効化
- Edge で会社のGoogle Workdspaceへのログイン
- スナップの余計な機能を無効化
- パスワードマネージャ
- Slack のインストールとセットアップ
- Firefox のインストールセットアップ(業務と切り離した用途でWebブラウジングするときに使う。デフォルトにはしない)
- PowerToys のインストールとPowerToys Keyboard Manager でキーバインド変更
- シンボリックリンク有効化
- IMEの設定
- scoop のインストール、CLI環境整備
- WSLの引っ越し
- 業務で使うツール類のインストール
- コンテナ環境(今回は Docker Desktop ではなく podman をしばらく使ってみることにした)
- フォントの追加(UDEV Gothic, BIZTER など)
- SSH越しに旧PCから細かいファイルの転送
いくつかはもう少し詳しくピックアップします
Edge の最低限の設定
最近は Edge の挙動がほとんど Chrome と一緒なので業務で使うメインブラウザは Edge にしています。 ただ、久しぶりにまっさらな状態で起動してみたところ週刊誌のような記事が大量に目に入ってきて「うわ...」となってしまいました。
デフォルトの最初に開かれるタブの右上の歯車アイコンを選択し、画面表示内容から設定可能で、「ニュースを非表示」にしました。
- 「ニュースを非表示」の場所
- 実際に非表示にした様子
スナップの余計な機能を無効化
Windowsを利用する際はWinキーと方向キーの組み合わせでウィンドウをスナップ(寄せる)させる動作はよく利用するのですが、 Windows11 標準では次のように、都度残りのスペースに何かを配置するように促されるのがうっとうしいです。
この動作は止めることができて、設定の「システム」 > 「マルチタスク」 の中にある「ウィンドウのスナップ」の中にチェックボックスが多数あります。 その中の「ウィンドウをスナップしたときに、その次にスナップする対象を提案する」のチェックを外せばよいです。
PowerToys のインストールとPowerToys Keyboard Manager でキーバインド変更
Windows の便利なユーティリティである PowerToys を導入します。詳細は次のページにあるので割愛します。
PowerToys は多くの機能がありますが、私の主な導入のモチベーションは Keyboard Manager によるキーバインド変更です。 あまりヘビーにキーバインドを作りこんでいるわけではありませんが、個人的に以下の置き換えは必須です。
Alt(Right)
→VK243
(右Altを全角半角キー)Capslock
→Ctrl
シンボリックリンクの有効化
Windows はデフォルトの状態ではシンボリックリンクが利用できないのですが、それでは git リポジトリのクローン時に問題が発生することはもちろん、 細かい環境構築時にもいろいろと不便なことが多いので利用できるようにします。
やり方は Windows の「開発者モード」を有効化するか、ローカルグループポリシーエディターからシンボリックリンク作成の権限を自分が利用するユーザーに付与する方法があります。私は「開発者モード」にすることによって何が起こるかあまり把握していないので、後者の方法でやりたいことに対する権限を最低限つけるようにしています。
ポリシー「シンボリックリンクの作成」に自分のユーザーを追加する際は、PCのホスト名\PCのログインユーザー名
で追加すればよいです。
IMEの設定
地味な奴ですが、私は常に半角スペースを使いたい人間なのでやっておきます。 Windows キーを押して、「IME」と入力すれば「日本語 IME 設定」という項目が一番上に表示されます。
ここから「全般」をクリックして、「スペース」の内容を「常に半角」にすればOKです
scoop のインストール、CLI環境整備
業務中のほとんどを基本的にはCLI環境で過ごすので環境を整備します。 個人的に Windows の場合は Wezterm と nushell の環境を整えたいのでそこを目指します。
大まかな流れとしては次の通り
- パッケージマネージャ scoop のインストールとセットアップ
- nushell, wezterm を含むツールをインストール
- dotfiles を git clone し、必要に応じてシンボリックリンクを張る
- neovim のセットアップ
- よく使う言語ランタイム(go, python, node)をインストール
1. パッケージマネージャ scoop のインストールとセットアップ
Windows のパッケージマネージャは他にも chocolaty もありますが、個人的に scoop のほうが好みなのでそちらを導入します。2 nushell 環境が整うまでは powershell で環境整備します。
まずは公式サイトにある手順で導入
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
これで scoop コマンドはインストールされますが、初回に git をインストールしないと基本的な機能が扱えないので入れます
scoop install git
git のインストールが終わると scoop が完全に使えるようになるので追加しておくと便利な extras と versions バケットの追加と必要なツールをインストールします。
scoop bucket add extras
scoop bucket add versions
2. nushell, wezterm を含むツールをインストール
ここまでくれば scoop の準備は大体できたので、必要なツールのインストールをします
scoop install `
vim ` # テキストエディタ、システムの設定とかをいじるときに使う
neovim ` # メインで使うテキストエディタ
nu ` # メインで使う CLI シェル
starship ` # CLIシェルのプロンプトをいい感じにするやつ。最近重いのでやめようかなとも思ってるけどいったん追加
wezterm ` # メインで使うターミナルエミュレータ
fzf ` # CLIの fizzy finder
aws ` # aws cli 、これがないと仕事にならない
terraform-switcher ` # 複数バージョンの terraform の切り替えができるツール
make ` # GNU make、もはやタスクランナー
bat ` # リッチな cat コマンド、Windows でも問題なく動くので重宝する
dog ` # CLIのDNSクライアント
ripgrep ` # 高速 grep
sd ` # sed コマンドの rust 実装版
difftastic ` # CLI diff ツール、Windows でも問題なく動く diff コマンドとして重宝する
sudo ` # 管理者権限であれこれやりたいときに便利
gh ` # GitHub CLI
ghq ` # git repository をいい感じに clone してくれる君
jq ` # json パーサー
jasper ` # GitHub Issue クライアント、GUI
ScreenToGif ` # GifCapture ツール。あるとドキュメント作るときに結構便利
sass ` # marp のテーマをいじるときに地味に使う
keypirinha ` # Windows のランチャーツール、正直 PowerToys Run とどっちをメインにするかちょっと悩んでる
heidisql ` # 軽量な MySQL クライアント、Cleartext Plugin にも対応(GUI)
obsidian # ローカルで使う用の強力なメモツール (GUI)
3. dotfiles を git clone し、必要に応じてシンボリックリンクを張る
私は自分の dotfiles は GitHub で公開しているので clone してきます。(なので、ここは完全に私個人用のメモです)
ghq get laughk/dotfiles
clone できたら最低限必要なシンボリックリンクを張ります
cd ~/AppData/Roaming
New-Item -type Symlink -Target ..\..\ghq\github.com\laughk\dotfiles\nushell nushell
cd ~/AppData/Local
New-Item -type Symlink -Target ..\..\ghq\github.com\laughk\dotfiles\nvim nvim
cd ~
New-Item -type Symlink -Target ghg\github.com\laughk\dotfiles\wezterm\wezterm.windows.lua .wezterm.lua
4. Neovim のセットアップ
実は scoop で neovim を install しただけではエラーが出て起動しません。 3
キャプチャ等を取り損ねてしまったのですが、公式のWikiにも記載があり、Visual Studio 2015 C++ redistributable が必要です。
これは Wiki に従い次のページから最新のインストーラーをダウンロードしてインストールすればOKです。 今回の VAIO SX14 では x64 で問題なく使えました。
Visual Studio 2015 C++ redistributable がインストール出来たら neovim が使えます。 私はプラグインを多数利用しているので、インストールをしておきます( lazy.nvim, nvim-treesitter を使っている前提)
:Lazy install
また、nushell のスクリプトや設定編集を支援するツール( LhKipp/nvim-nu )も nvim-treesitter 経由でインストールしておきます
:TSInstall nu
これで neovim のセットアップは完了です
5. よく使う言語ランタイム(go, python, node)をインストール
個人的に go や python でコードを書く機会は多く、node製のツールのお世話になることが多いので入れておきます。 nodeに関してはツールの利用が主な目的なので lts を入れます。また、Python は個人的に得意なことに加え、社内に多く存在する AWS lambda の function のほとんどが Python であることから複数バージョン入れておきます。
scoop install `
go `
python python311 python310 python39 `
nodejs-lts
Python は Windows の場合、 py
コマンドというインストールされている Python のランタイムバージョンを指定して利用できる便利なコマンドがありますが、
scoop 経由でPythonを複数バージョン入れる場合はインストール時に表示されるメッセージに従い、次の reg ファイルを使ったレジストリ変更が必要です。忘れずにやります。
powershell -C 'C:\Users\laughk\scoop\apps\python39\current\install-pep-514.reg'
powershell -C 'C:\Users\laughk\scoop\apps\python310\current\install-pep-514.reg'
powershell -C 'C:\Users\laughk\scoop\apps\python311\current\install-pep-514.reg'
powershell -C 'C:\Users\laughk\scoop\apps\python\current\install-pep-514.reg'
これで py
コマンドからそれぞれのバージョンを扱えるようになります
❯ py --list
-V:3.12 * Python 3.12 (64-bit)
-V:3.11 Python 3.11 (64-bit)
-V:3.10 Python 3.10 (64Label)
-V:3.9 Python 3.9 (64Label)
ここまでで最低限の CLI 環境が整いました
WSLの引っ越し
WSLはイメージの export/import ができます。基本的には次の記事を参考に次の流れで旧PCの環境をそのまま引っ越しできました。 4
export -> 外付けHDDへ移動 → 外付けHDDから新PCへコピー → import
移行元
wsl --export Arch2 .\wsl_archlinux_image.tar
移行先
mkdir ~\wsl\data ~\wsl\images
mv wsl_archlinux_image.tar ~\wsl\data\
cd wsl
wsl --import ArchLinux images\archlinux .\data\wsl_archlinux_image.tar --version 2
rm data\wsl_archlinux_image.tar
コンテナ環境: Podman
業務ではECSを中心にコンテナはバリバリ使うので環境構築は必須です。 コネヒトは2023年12時点の組織状況では Docker Desktop を利用する際に特にライセンス料などは発生しませんが、Docker 以外のコンテナランタイムも興味があるので 今回は podman で環境を整えてみました。
インストール
Windows でも導入は簡単で、次のリリースページから Windows 向けのインストーラーをダウンロードしてインストールすればOKです
Podman の GitHub リポジトリには Windows 向けのドキュメントもあり、基本的な使い方はここを見れば大体わかります
また、Windows 環境で podman のインストールをすると自動的に WSL の Linux 環境の PATH にも podman コマンドが追加されて利用もできそうなことが確認できました。 おそらく Docker Desktop の WSL Intergration を有効にした状態と一緒なんだろうと理解しています。
ちなみに、podman desktop というアプリケーションもありますが、これだけを入れても podman は使えないです。 Docker Desktop と違い、純粋に podman(およびその他コンテナランタイム)の GUI 画面のみを提供しているものと見たほうがよさそうです。
イメージを pull する際の挙動を docker にそろえる
業務で扱う環境は基本的に Docker の利用が前提となっているので、イメージの検索対象となるレジストリに docker.io
を追加します。
~\.config\contaners\registories.conf
( Windows でも ~/.config
配下であっています) に次の内容を追記すればよいです。
unqualified-search-registries = ["docker.io"]
もっとも、短縮名を使うことにはリスクもあるという情報もあるので、状況をみつつこの辺の設定は見直していけたらと感じています。
参考:
podman-compose のインストール
docker compose
を使う機会もあるので同等のコマンドを使えるようにします。
幸い、 containers/podman-compose というツールがあったのでありがたく導入します。
Python 製で pip 経由のインストールが必要なので、 pipx を使って導入します。 pipx は Python 製のツールを純粋に使うためだけの目的に導入する際に便利なもので、ツールごとに隔離した環境を作ってインストールを行い、PATH はシンボリックリンクなどでいい感じに整えてくれるものです。
インストールしていなかったので pipx の導入から始めます。 私は「純粋にCLIのツールとして使うだけなのであればpipxはシステムワイドに入れてしまっても構わない」と考えているので専用の venv などは用意せずそのまま入れます。 5
py -3.12 -m pip install pipx
py -3.12 -m pipx ensurepath
pipx が導入できたら pipx 経由で podman-compose を導入します。
pipx install podman-compose
これで podman-compose
podman compose
コマンドが利用できるようになり、 docker-compose.yml
なども活用できるようになりました。
フォントまわり
PCで文字の読み書きが長くなるならフォントは見やすいものを選びたいと個人的に思っています。 私は最近は以下のフォントが気に入っているので今回インストールをしています
- yuru7/udev-gothic: UDEV Gothic は、ユニバーサルデザインフォントのBIZ UDゴシックと、 開発者向けフォントの JetBrains Mono を合成した、プログラミング向けフォントです。
- yuru7/BIZTER: BIZTER は、UI 向けフォント Inter と、ユニバーサルデザインフォントの BIZ UDPゴシックの合成フォントです。
SSH越しに旧PCから細かいファイルの転送
旧PC環境には多くのファイルがあり、必ずしもすべてを移行する必要はないのですが それでもどうしても移行が必要なこまごまとしたファイルはそれなりにあります。
それらの移行には会社の Google Drive を経由するのが正攻法ですが、物によっては Google Drive へのアップロードからのダウンロードが億劫な場合もあります。 そこで一部のファイルに関しては片方のPCで OpenSSH サーバを立てて scp で移行をしました。
OpenSSH は今は Windows でも標準で入っているので、やり方さえ分かっていれば案外簡単に使えます。
サーバにする方
有効になっているか確認します。次のコマンドを実行します(以下、要PowerShell)
sudo powershell -C "Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'"
すると以下のような結果になります
Name : OpenSSH.Client~~~~0.0.1.0
State : Installed
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent
OpenSSH.Server の State が NotPresent の場合は有効化されていないので、次のコマンドで有効化します
sudo Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
有効化されていることが確認できたら次のコマンドでSSHサーバを起動します
sudo Start-Service sshd
ファイルの転送が終わったらサービスを止めておくのが安全です
sudo Stop-Service sshd
クライアント側
クライアント側ではターミナルで ssh, scp コマンドが利用できます。 最初に ssh コマンドでお試しでログインしてみるとよいです。サーバ側のログイン情報でログイン可能です。
ssh 192.0.2.100 # IPアドレスは事前にサーバー側のものを確認しておく
ログインができることを確認したら、必要なファイルを scp で持ってこれます。この時、リモートのPATHの指定でホームディレクトリを表す ~
が使えない点に注意してください。
scp 192.0.2.100:C:/Users/laughk/path/to/file .
さいごに
ここまでで直近でやった Windows 環境の0からの構築内容を簡単にまとめました。
やっぱり新しい PC は触っているとワクワクしますし、0から環境を見直す機会になりリフレッシュできる部分もあると個人的には思っていて結構好きです。
-
今回のPC購入まであまり最近のCPU事情を追っていなかったのですが、2023年12月時点では問答無用でRyzenがよいという状況ではなさそうな話を見かけたことも大きいです ↩
-
winget は標準で利用は可能ですが、管理者権限が必要になったりCLIツールが scoop ほど充実していないのでCLIや開発系環境の整備では使いません。 ↩
-
https://github.com/neovim/neovim/wiki/Installing-Neovim#pre-built-archives ↩
-
外付けHDDは会社の情シスから貸してもらったもので、私物は当然使っておりません ↩
-
システムワイドに導入するのは避けたい。という場合は
--user
オプションをつけて~/.local
or~\AppData\Roaming
配下にインストールされるようにするのもアリです ↩