私の Windows SetUp memo

# SetUp for Windows 11

Windows は ByPass をいじることで色々小賢しいことができる．

## ローカルアカウント問題

Windows 11 の酷いところは，PCにMSアカウントを紐づけろと強制することころ．
これを有効にすると，Cドライブ下のユーザー空間のストレージが(無料版であれば 5GB しかない)OneDriveに全て接続される．
これにより，Cドライブの容量に余裕があっても，ユーザー空間のストレージが OneDrive の上限に達するとエラーメッセージが多発する．
さらに，Path に `\OneDrive` が挟まれてソフトウェアが誤作動するなどの面倒なことが沢山起こる．
なので，ローカルアカウントでのサインインを強く推奨する．

そのほかはUIが異なる程度で大抵のことは Windows 10 と一緒．

## 11のシステム要件突破問題

11のシステム要件は敷居が高いが色々することで突破ができる．

### 1. レジストリキーを書き換える

https://support.microsoft.com/ja-jp/windows/windows-11-%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95-e0edbbfb-cfc5-4011-868b-2ce77ac7c70e
> 警告: 
> 
> Windows 11 の最小システム要件 を満たしていないデバイスに Windows 11 をインストールすることは推奨されません。 これらの要件を満たしていないデバイスに Windows 11 をインストールすると、リスクを確認して理解 したこととみなされ、次のレジストリ キーの値を作成して、TPM 2.0 (少なくとも TPM 1.2 が必要) のチェック、CPU ファミリ、CPU モデルをバイパスできます。
> 
> レジストリ キー: HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup
> 
> 名前: AllowUpgradesWithUnsupportedTPMOrCPU
> 
> 種類: REG_DWORD
> 
> 値: 1
> 
> レジストリ エディターなどを使用してレジストリを誤って変更すると、重大な問題が発生する場合があります。 これらの問題により、オペレーティング システムの再インストールが必要になる場合があります。 Microsoft では、このような問題の解決に関しては保証できません。 レジストリの変更は各自の責任で行ってください。

### 2. Rufusを使ってインストールメディアを作成する

https://shortcut-life.com/wisdom/3/

# SetUp for Windows 10

## 0. Local Account

~~強引に~~ローカルアカウントを作成する方法．

1. セットアップ時に`Shift` ＋ `F10` キーを押し，コマンドプロンプトを起動
2. 以下を実行

```commandline
oobe\BypassNRO.cmd
```

するとローカルアカウントでの実行の選択肢が出るようになる．

他にも`no@thankyou.com`などのメアドを連打する手法や，有線接続を行なって途中で抜くなどの手法があるらしいが，Versionによって対策などがされ，不安定である場合もあるため，ByPassの使用が安全かと思われる．

> 誤って Wi-Fi を繋いだ場合 `ipconfig /release` をして一旦切る

### Keyboard

USキーボードを誤って策定したときなどに戸惑わないように．

#### Windows 10

`設定` > `時間と言語` > `優先する言語` > `オプション` > `ハードウェアキーボードレイアウト` > `レイアウトを変更する` > 再起動

#### Windows 11

`設定` > `時刻と言語` > `言語と地域` > `日本語` > `…` > `言語のオプション` > `キーボード` > `キーボードレイアウト` > `レイアウトを変更する` > `ハードウェアキーボードレイアウトの変更` > 再起動

## 1. OS Update

設定からちまちまするのは面倒なので [Windows Update Assistant](https://www.microsoft.com/ja-jp/software-download/windows10) で古いバージョンのものは一気にアプデするのが吉．

https://www.microsoft.com/ja-jp/software-download/windows10ISO

## 2. Install `Windows Terminal`

<!--
Windows Terminal - [Microsoft Store](https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=ja-jp&gl=jp)
-->
https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=ja-jp&gl=jp

あると便利なので入れておく．

Microsoft Store が Microsoft アカウントで認証しないとインストールさせないという改悪を行っているので，渋々認証するか，[色々](https://www.lifehacker.jp/article/150821win10_localaccount/)する．

https://www.lifehacker.jp/article/150821win10_localaccount/

もしくは，[Git](https://github.com/microsoft/terminal) からダウンロードしてビルドする．ただし，Gitからダウンロードすると自動で Update されなくなるので注意．

https://github.com/microsoft/terminal

## 3. Install `WSL`

Windows 10 で WSL を使用するには `Windows 10 May 2021 Update` 以降に更新することが必須．

更新後，`Windows の機能の有効化または無効化` の

- Hyper-V
- Windows Subsystem for Linux
  - Linux 用 Windows サブシステム
- 仮想マシンプラットフォーム

を有効化し，再起動を行い更新を行う．

その後，PowerShellを**管理者として**実行し，

```shell
% wsl --version
```

などで`wsl`コマンドが有効になっていることを確認したのち，

```shell
% wsl --install -d Ubuntu
```

などでインストールを行う．
以下に2023/04/04現在のディストリビューションのリストを掲載する．

```shell
PS C:\Users\sample> wsl --list --online
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl --install -d <Distro>' を使用してインストールします。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_8_5                        Oracle Linux 8.5
OracleLinux_7_9                        Oracle Linux 7.9
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
openSUSE-Leap-15.4                     openSUSE Leap 15.4
openSUSE-Tumbleweed                    openSUSE Tumbleweed
PS C:\Users\sample>
```

* 参考
<!--
- [WSL2 のインストール，WSL2 上への Ubuntu のインストールと利用（Windows 11 対応の記事）（Windows 上） - 福山大工学部情報工学科](https://www.kkaneko.jp/tools/wsl/wsl2.html)
-->
https://www.kkaneko.jp/tools/wsl/wsl2.html

### `pandoc`

```bash
sudo apt install pandoc
```

これをインストールすることで`Markdown`が使いやすくなるのでオススメ．

* 参考
<!--
- [多様なフォーマットに対応！ドキュメント変換ツールPandocを知ろう - Qitta](https://qiita.com/sky_y/items/80bcd0f353ef5b8980ee)
-->
https://qiita.com/sky_y/items/80bcd0f353ef5b8980ee

## 4. SetUp `Virtual Studio Code`

インストールの際にCodeで開くのアクションを追加しておくと作業が楽なので初期設定でセットアップしてある場合も再度上書きしておくと良いかも(この際，既存のパッケージ環境は破壊されない)．

* 参考
<!--
*　[Windowsの右クリックメニューに「VSCodeで開く」を追加する - Qitta](https://qiita.com/kaityo256/items/7fefd1d1463184ae1420)
-->
https://qiita.com/kaityo256/items/7fefd1d1463184ae1420

### Package

- Japanese(ポップアップがでる)
- WSL(ポップアップがでる)
- Markdown All in One(あると便利なので個人的に導入)

## 5. SetUp `Markdown`

この文章も Markdown で記載されているので，細かいことは記載しない．
汎用性と専門性のグラデーションの中では， `Markdown` < `AsciiDoc` < $\LaTeX$ のような関係性な気がしている．

* 参考
<!--
[情報系以外の方にもおすすめしたいMarkdown](https://trap.jp/post/371/)
-->
https://trap.jp/post/371/

## 6. LaTeX Setup

https://qiita.com/QiitaTakenoko/items/26d495842968fa37e203

$\LaTeX$ 環境を Windows で作ると ShiftJIS とか改行コードとか面倒なので Linux 上で作りたいところ．

## Tips. `CapsLockキー`について

MacBook の日本語配列では CapsLock に当たる位置に Ctrl が割り当てられているので，変換しておくと対応が便利になる(気がする)．
公式(?)の手段である PowerToys の KeybordManager や Ctrl2Cap などで変更する場合が多い．

* 参考

<!--
- [WindowsでCapsLockをCtrlにする](https://scrapbox.io/programming-notes/Windows%E3%81%A7CapsLock%E3%82%92Ctrl%E3%81%AB%E3%81%99%E3%82%8B)
- [Windows 11 - CapsLockキーを Ctrlキーに入れ替える方法](https://pc-karuma.net/map-capslock-to-control-in-windows-11-10/)
- [Windows 10で「CapsLock」と「Ctrl」を入れ替える方法【PowerToys編】](https://news.mynavi.jp/techplus/article/20210609-1900755/)
- [Windows PC買ったらまずはこれ　［CapsLock］キーの有効活用法 - ITmedeia](https://atmarkit.itmedia.co.jp/ait/articles/2007/10/news016.html)
-->

https://scrapbox.io/programming-notes/Windows%E3%81%A7CapsLock%E3%82%92Ctrl%E3%81%AB%E3%81%99%E3%82%8B

https://pc-karuma.net/map-capslock-to-control-in-windows-11-10/

https://news.mynavi.jp/techplus/article/20210609-1900755/

https://atmarkit.itmedia.co.jp/ait/articles/2007/10/news016.html

### 日本語IMEキーボード

https://learn.microsoft.com/ja-jp/sysinternals/downloads/ctrl2cap

### 非日本語IMEキーボード

Microsoftが公式にリリースしている PowerToys の KeybordManager を使用する手法がいいと感じる．

* 参考

https://knowledge.sakura.ad.jp/34042/
> もともとWindowsに搭載するはずでしたが搭載されなかった利便性向上機能を複数提供するソフトです。実はWindows 95時代から存在しているソフトで、Windows XPまで提供が続けられていました。Vista以降は提供されていませんでしたが、2019年5月にWindows10向けにオープンソースとして提供が再開されました。

https://learn.microsoft.com/ja-jp/windows/powertoys/

https://github.com/microsoft/PowerToys/releases

<!-- 
- [Windowsの便利ツールPowerToysの紹介 - SAKURA internet](https://knowledge.sakura.ad.jp/34042/)
  > もともとWindowsに搭載するはずでしたが搭載されなかった利便性向上機能を複数提供するソフトです。実はWindows 95時代から存在しているソフトで、Windows XPまで提供が続けられていました。Vista以降は提供されていませんでしたが、2019年5月にWindows10向けにオープンソースとして提供が再開されました。
- [Microsoft PowerToys: Windows をカスタマイズするためのユーティリティ - Microsoft](https://learn.microsoft.com/ja-jp/windows/powertoys/)
- [microsoft/PowerToys - GitHub](https://github.com/microsoft/PowerToys/releases)
--> 

心躍るものが多いのでオススメ．以下に軽く例示する．

- PCで学習を行う際などにオンデマンドで起動させたままにする[Awake](https://learn.microsoft.com/ja-jp/windows/powertoys/awake)
- 4分割以上詳細に画面を割ってWindowを配置できる[FancyZones](https://learn.microsoft.com/ja-jp/windows/powertoys/fancyzones)
- Markdown ファイルなどをエクスプローラーでプレビュー表示させる[add-ons](https://learn.microsoft.com/ja-jp/windows/powertoys/file-explorer)
- 多数のファイルのファイル名を変更できる[PowerRename](https://learn.microsoft.com/ja-jp/windows/powertoys/powerrename)
- 画像やビデオ内など、画面上の任意の場所からテキストをコピーできる[Text Extractor](https://learn.microsoft.com/ja-jp/windows/powertoys/text-extractor)
- ...(色々と新たなものが追加されている)

#### 日本語IMEだと　KeybordManager　が動かない件

**入力キーボードが日本語IMEの場合**，`CapsLock`と`Ctrl`を入れ替えるのは色々と問題がある．
いじっていると，日本語配列の`CapsLock`は`CapsLockキー(VK240)`ではなく，`Shift + CapsLockキー(VK240)`をトリガーとする動作が確認できる．
結果，`CapsLock`キーが正しく認識されず「VK240（仮想キーコード）」となってしまい，**他のキーに置き換えることができない**．
どうやらこれは根本的な問題のようだ．

* 参考

<!--
- [Microsoft PowerToysでCaps lockキーとCtrlキーを入れ替えようとしてみたけれど](https://n1729.com/microsoft-powertoys-keyboard-remap/)
-->

https://n1729.com/microsoft-powertoys-keyboard-remap/

<!--
- [GitHub/microsoft/PowerToys - Keyboard Manager bug](https://github.com/microsoft/PowerToys/issues/19787#issuecomment-1211500621)
-->

https://github.com/microsoft/PowerToys/issues/19787#issuecomment-1211500621

> 結論から言うと、osの論理キーボードがjis環境下では、"a"キー左隣の英数/capslockキーをctrlにremapする方法は、現在のpowertoysで期待通りに動作させることは不可能です。
> 
> バグではなく日本語imeの挙動が問題なのです。powertoysは正常に動作しています。
> 
> 解決方法はレジストリを書き換えることが1番簡単です。
> 
> os側の論理キーボードがjisの場合のみ発生します。（主にkbd106.dll）
> 
> この問題は定期的に報告されているけど、既知かつ誰も修正できていない。2年以上前から。私もかつて修正にトライしたけど、日本語imeモジュールの複雑怪奇な挙動のせいで諦めました。
> 
> 物理キーボードではなく、os側で指定している論理キーボードドライバーがkbd106.dllが日本語windowsのデフォルトだと思う。確認方法は"p"キーの一つ右横のキーを押して"@"が出力される。
> 
> この場合、刻印にはcapslockと書いてあるが、このキーはcapslockのvkを発生させない。英数キーだ。英数キーとは日本語jisドライバに存在するvkで、キーボードのスキャンコードは同じだが、os側での解釈が違いvk240と理解する。
> 
> もしjisキーボードでcapslockと同一のvkを発生させたい場合は、shift ＋　英数キー、でcapslockのvkを発生させれる。

## Macユーザーへ

https://learn.microsoft.com/ja-jp/windows/dev-environment/mac-to-windows

## Winget

(書きかけ)

## Chocolatey

https://chocolatey.org/
<!--
[Chocolatey](https://chocolatey.org/)
-->

(書きかけ)