Windows 11 24H2 セットアップメモ

25H2リリース済みだがタスクバー上配置のために24H2をインストールした。

Windowsの用意

UUP dump経由でISOを用意してRufusを使ってローカルアカウントでインストールできるインストールメディアを作りインストール。

初期設定

  • Ctrl+Shift+ESC => スタートアップ アプリ => 不要なものを無効化
  • 設定 => システム => 電源とバッテリー => 電源モードやスリープ時間の調整

services.msc

  • SysMain: 無効

gpedit.msc

  • コンピュータの構成
    • 管理用テンプレート
      • システム
        • シャットダウン
          • 高速スタートアップの使用を要求する (無効)
      • Windows Update
        • Windows Update から提供される更新プログラムの管理
          • プレビュー ビルドや機能更新プログラムをいつ受信するかを選択してください (有効, 180)
          • 品質更新プログラムをいつ受信するかを選択してください (有効, 14)
        • 従来のポリシー
          • ダイアログ ボックスの規定のオプションを [更新をインストールしてシャットダウン] に調整しない (有効)

フォント

アプリケーション類のインストールと設定

WinGet

winget install microsoft.dotnet.runtime.8 microsoft.powershell microsoft.powertoys microsoft.sysinternals.ctrl2cap microsoft.vcredist.2015+.x64 microsoft.visualstudiocode microsoft.windowsterminal microsoft.wsl
winget install discord.discord dropbox.dropbox google.chrome google.japaneseime mozilla.firefox.ja tailscale.tailscale
winget install electronicarts.eadesktop epicgames.epicgameslauncher gog.galaxy ubisoft.connect valve.steam

Scoop

scoop install git
scoop bucket add extras
scoop install aria2 dadroitjsonviewer delta fastcopy fastfetch fzf gh ghq keepassxc keypirinha ln lsd neovim nircmd nodejs notepadplusplus pnpm python rapidee ripgrep sfsu sftpgo starship uutils-coreutils wget winmerge winscp xh zenhan zoxide
scoop checkup # 開発者モードや長いパス、sudoをオンにする

パッケージマネージャ管理外

Windhawk

  • Disable Taskbar Thumbnails
  • Taskbar Clock Customization
  • Taskbar Labels for Windows 11
  • Taskbar on Top for Windows 11

その他

  • ssh-keygen -t ed25519してGitHubに登録する
  • Rapid Environment EditorでC:\ebith\binを$PATHに追加する
sudo ctrl2cap /install

sudo Add-MpPreference -ExclusionPath "$env:USERPROFILE\scoop"
sudo Add-MpPreference -ExclusionPath "$env:USERPROFILE\ghq"

ln -s "$env:USERPROFILE\Dropbox\dotfiles\bin" "C:\ebith\bin"
ln -s "$env:USERPROFILE\Dropbox\dotfiles\dyna\dyna.ini.laptop" "C:\ebith\app\dyna\dyna.ini"
mkdir "$env:APPDATA\keyhac" && ln -s "$env:USERPROFILE\Dropbox\dotfiles\keyhac\config.py" "$env:appdata\keyhac\config.py"

ln -s "$env:USERPROFILE\Dropbox\dotfiles\.ssh\config" "$env:USERPROFILE\.ssh\config"
ln -s "$env:USERPROFILE\Dropbox\dotfiles\nvim" "$env:LOCALAPPDATA\nvim" && nvim -c PlugInstall
ln -s "$env:USERPROFILE\Dropbox\dotfiles\powershell\profile.ps1" "$env:USERPROFILE\Documents\PowerShell\profile.ps1"
rm "$env:LOCALAPPDATA\Packages\Microsoft.windowsterminal_8wekyb3d8bbwe\LocalState\settings.json" && ln -s "$env:USERPROFILE\Dropbox\dotfiles\windowsTerminal\settings.json" "$env:LOCALAPPDATA\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json"
ln -s "$env:USERPROFILE\Dropbox\dotfiles\wsl\.wslconfig" "$env:USERPROFILE\.wslconfig"

mkdir "$env:APPDATA\Mozilla\Firefox\Profiles\kpz7lfh7.default-release\chrome"
ln -s "$env:USERPROFILE\Dropbox\dotfiles\firefox\chrome\userChrome.css" "$env:APPDATA\Mozilla\Firefox\Profiles\kpz7lfh7.default-release\chrome\userChrome.css"
ln -s "$env:USERPROFILE\Dropbox\dotfiles\firefox\chrome\userContent.css.laptop" "$env:APPDATA\Mozilla\Firefox\Profiles\kpz7lfh7.default-release\chrome\userContent.css"
ln -s "$env:USERPROFILE\Dropbox\dotfiles\firefox\tridactyl" "$env:USERPROFILE\.config\tridactyl"

ln -s "$env:USERPROFILE\Dropbox\dotfiles\keypirinha\portable\profile\user\apps.ini" "$env:USERPROFILE\scoop\persist\keypirinha\portable\profile\user\apps.ini"
ln -s "$env:USERPROFILE\Dropbox\dotfiles\keypirinha\portable\profile\user\filescatalog.ini" "$env:USERPROFILE\scoop\persist\keypirinha\portable\profile\user\filescatalog.ini"
ln -s "$env:USERPROFILE\Dropbox\dotfiles\keypirinha\portable\profile\user\keypirinha.ini" "$env:USERPROFILE\scoop\persist\keypirinha\portable\profile\user\keypirinha.ini"
ln -s "$env:USERPROFILE\Dropbox\dotfiles\keypirinha\portable\profile\user\packagecontrol.ini" "$env:USERPROFILE\scoop\persist\keypirinha\portable\profile\user\packagecontrol.ini"
ln -s "$env:USERPROFILE\Dropbox\dotfiles\keypirinha\portable\profile\installedpackages" "$env:USERPROFILE\scoop\persist\keypirinha\portable\profile\installedpackages"

ghq get ebith/dotfiles
ln -s "$env:USERPROFILE\ghq\github.com\ebith\dotfiles\.config\starship.toml" "$env:USERPROFILE\.config\starship.toml" 
ln -s "$env:USERPROFILE\ghq\github.com\ebith\dotfiles\.gitconfig" "$env:USERPROFILE\.gitconfig" 

Arch Linux on WSL

wsl --install archlinuxすると再起動を求められたが再起動後もう一度実行したら問題なくインストールされた。

pacman -Syu
pacman -S bat fd fish fzf ghq git git-delta github-cli less lsd openssh python ripgrep starship tmux vi vim wget xh zoxide

# ユーザebithを作りそっちに移る
passwd
useradd -m ebith
passwd ebith
usermod -aG wheel ebith
echo "%wheel ALL=(ALL:ALL) ALL" | sudo tee /etc/sudoers.d/wheel
echo "Defaults timestamp_timeout=30" | sudo tee /etc/sudoers.d/timeout
echo -e "[user]\ndefault=ebith" | sudo tee -a /etc/wsl.conf
su ebith

# 設定類
ghq get ebith/dotfiles
cd $(ghq list --full-path --exact ebith/dotfiles)
./create_link.py .config .gitconfig .tmux.conf .vim
mkdir -p ~/.vimlocal/{backup,swap,undo}
chsh -s /usr/bin/fish
exec -l fish
fisher update
rm ~/.bash_*

# ホストと鍵を共有しちゃう
cp -r /mnt/c/Users/ebith/.ssh ~/
chmod 644 ~/.ssh/config ~/.ssh/id_ed25519.pub
chmod 600 ~/.ssh/id_ed25519

# ロケール
echo "ja_JP.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen
sudo locale-gen
sudo localectl set-locale LANG=ja_JP.UTF-8

# [Morganamilo/paru: Feature packed AUR helper](https://github.com/Morganamilo/paru)
pacman -S --needed base-devel
ghq get https://aur.archlinux.org/paru.git
cd $(ghq list --full-path --exact aur.archlinux.org/paru)
makepkg -si

トラブル

/etc/wsl.confを変更してデフォルトユーザをroot以外にするとwsl: Failed to start the systemd user session for 'trgv'. See journalctl for more details. · Issue #13186 · microsoft/WSLを吐くようになるっぽいのでとりあえずの対処としてdefault=rootにして後述のようにrootログインすると自動でebithに変更するようにした。

echo "cd $(echo ~ebith) && su ebith" | sudo tee /root/.profile

雑感

Windows 11で組み込みになったWinGetが便利だった。
Scoopでの管理が難しいポータブルじゃないソフトウェアも手動でインストールする必要が無くなって楽ちん。
念の為バックアップも取っていたが設定ファイル類は概ねDropboxへ逃がしていたためほぼ必要なかった。

すべて終わってからunattend.xmlの存在を思い出したので次の機会にはGenerate autounattend.xml files for Windows 10/11の手を借りてWindowsの初期セットアップを自動化してみても良いかもしれない。

15年以上はタスクバーを上で統一しているので今更Windowsだけ下にするというのもつらく、ここをどうにかできるかどうかが心配だったが24H2であればWindhawkでなんとかなった。

ウィンドウのスナップやWindows スポットライトみたいな設定(ms-settings)から変更するものは随時変更していったので記録していない。

Windows 11は今のところ思ってたより悪くないというか不満はあるけど進化もしてるしやっていけそうだなって感じ。