Windows 11 のカスタマイズ
いやぁ Windows をゼロからカスタマイズするのって久しぶりでさ。 色々忘れちゃってるわけさ。
というわけでこの記事は,前回セットアップしたミニPCのカスタマイズで試行錯誤した作業記録である。
Firefox 導入
とりあえず既定ブラウザは Firefox で。
アドオンは uBlock Origin と Kagi Search for Firefox を入れる。 Kagi Search については以下を参照のこと。
最新の PowerShell を入れる
まずは Scoop を入れたいところだが Windows Terminal を開くと
とか言われる。 折角なので最新の PowerShell を入れておこう。
インストールは Microsoft Store からできる。 インストールすると Windows Terminal にも設定が反映されて
てな感じにできる。
Scoop でトラブる
では,いよいよ Scoop をインストールする。 Windows Terminal で PowerShell を開いて
PS > Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
PS > Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
とすればOK。
これで環境変数 PATH
への登録も完了している。
動作確認も兼ねて git をインストールしてみる。
PS C:> scoop install git
Installing '7zip' (24.09) [64bit] from 'main' bucket
7z2409-x64.msi (1.9 MB) [========================================] 100%
Checking hash of 7z2409-x64.msi ... ok.
Extracting 7z2409-x64.msi ... ERROR Exit code was 1603!
Git をインストールするために解凍ツールの 7-Zip をインストールするのだが 7-Zip の解凍に失敗してるやん orz
ググってみたら Issue で上がっていたのだが,その通りにやっても解決せず。 しょうがないので Scoop の PowerShell スクリプトを眺めてみると,どうやら
PS > scoop config use_external_7zip true
と唱える1 ことで Scoop 外の手動インストールした 7-Zip を使ってくれるらしい。
それじゃあ 7-Zip を手動でインストールして use_external_7zip
を有効にしてみよう。
PS C:\Users\username> scoop config use_external_7zip true
'use_external_7zip' has been set to 'true'
PS C:\Users\username> scoop install git
Installing 'git' (2.47.1) [64bit] from 'main' bucket
PortableGit-2.47.1-64-bit.7z.exe (60.0 MB) [===================================] 100%
Checking hash of PortableGit-2.47.1-64-bit.7z.exe ... ok.
Extracting PortableGit-2.47.1-64-bit.7z.exe ... done.
Linking ~\scoop\apps\git\current => ~\scoop\apps\git\2.47.1
Creating shim for 'sh'.
Creating shim for 'bash'.
Creating shim for 'git'.
Creating shim for 'gitk'.
Making C:\Users\username\scoop\shims\gitk.exe a GUI binary.
Creating shim for 'git-gui'.
Making C:\Users\username\scoop\shims\git-gui.exe a GUI binary.
Creating shim for 'scalar'.
Creating shim for 'tig'.
Creating shim for 'git-bash'.
Making C:\Users\username\scoop\shims\git-bash.exe a GUI binary.
Creating shortcut for Git Bash (git-bash.exe)
Creating shortcut for Git GUI (git-gui.exe)
Running post_install script...done.
'git' (2.47.1) was installed successfully!
Notes
-----
Set Git Credential Manager Core by running: "git config --global credential.helper manager"
To add context menu entries, run 'C:\Users\username\scoop\apps\git\current\install-context.reg'
To create file-associations for .git* and .sh files, run
'C:\Users\username\scoop\apps\git\current\install-file-associations.reg'
今度は上手くいった。 Git の設定はのちほど(commit/push とかしない限り,とりあえず無問題)。
これで 7-Zip をコントロールできるってことは zstd をサポートしていない問題もどうにかなるんじゃないだろうか。 機会があれば試してみようか。
ちなみに Scoop 自体をアンインストールしたい場合は
PS > scoop uninstall scoop
でいけるようだ。
これで環境変数 PATH
への記述も綺麗に消してくれる。
これで上手く行かない場合は,最悪 scoop
フォルダを力技で削除する(笑)
PS C:\Users\username> del .\scoop -Force
この状態で再度インストールした直後に scoop uninstall scoop
すれば綺麗にアンインストールできる。
でも scoop config
で設定した内容は削除できないんだよなぁ。
レジストリにもないっぽいし,どこに保存されてるんだろう。
NYAGOS を導入して WIndows Terminal の shell として構成する
(詳しくは NYAGOS 作者による「scoop / nyagos で始めるコマンドライン生活」を参照のこと)
ようやく NYAGOS をインストールできる。
PS > scoop install nyagos
Installing 'nyagos' (4.4.16_0) [64bit] from 'main' bucket
nyagos-4.4.16_0-windows-amd64.zip (2.4 MB) [=================================] 100%
Checking hash of nyagos-4.4.16_0-windows-amd64.zip ... ok.
Extracting nyagos-4.4.16_0-windows-amd64.zip ... done.
Linking ~\scoop\apps\nyagos\current => ~\scoop\apps\nyagos\4.4.16_0
Creating shim for 'nyagos'.
おー。 ちゃんと最新バージョンだな。 ありがたや 🙇
次に NYAGOS を プロファイルに追加する。 こんな感じ。
JSON だとこんな感じ。
{
"commandline": "%USERPROFILE%\\scoop\\shims\\nyagos.exe",
"guid": "{ce45bb84-5d8b-49a4-be7d-47d0449207c5}",
"hidden": false,
"icon": "none",
"name": "nyagos",
"startingDirectory": "%USERPROFILE%"
}
guid
は勝手に割り振られる値なのでご注意を。
ついでに既定の shell を NYAGOS にする。
では改めて Windows Terminal を起動してみよう。
よーし,うむうむ,よーし。 やっとこれで馴染みのあるコンソールになったよ。 ところで NYAGOS って2024年で10周年だったんだな。 おめでとうございます。
自作ツールを導入する
詳しくは「オレオレ Scoop Bucket を作ってみた」を参照のこと。
ここでは作業記録のみ残しておく。
$ scoop bucket add goark https://github.com/goark/scoop-bucket
Checking repo... OK
The goark bucket was added successfully.
$ scoop search gpgpdump
Results from local buckets...
Name Version Source Binaries
---- ------- ------ --------
gpgpdump 0.15.7 goark
$ scoop install gpgpdump
Installing 'gpgpdump' (0.15.7) [64bit] from 'goark' bucket
gpgpdump_0.15.7_Windows_64bit.zip (3.6 MB) [=================================] 100%
Checking hash of gpgpdump_0.15.7_Windows_64bit.zip ... ok.
Extracting gpgpdump_0.15.7_Windows_64bit.zip ... done.
Linking ~\scoop\apps\gpgpdump\current => ~\scoop\apps\gpgpdump\0.15.7
Creating shim for 'gpgpdump'.
'gpgpdump' (0.15.7) was installed successfully!
$ gpgpdump.exe version
gpgpdump v0.15.7
repository: https://github.com/goark/gpgpdump
問題なさそうだな。
GnuPG を導入する
$ scoop search gnupg
Results from local buckets...
Name Version Source Binaries
---- ------- ------ --------
gnupg 2.4.7 main
gnupg1 1.4.23 main
よしよし。 ちゃんと安定版 2.4 系の最新バージョンになってるな。 それではインストールしよう。
$ scoop install gnupg
Installing 'gnupg' (2.4.7) [64bit] from 'main' bucket
Loading gnupg-w32-2.4.7_20241125.exe from cache
Checking hash of gnupg-w32-2.4.7_20241125.exe ... ok.
Extracting gnupg-w32-2.4.7_20241125.exe ... done.
Running installer script...done.
Linking ~\scoop\apps\gnupg\current => ~\scoop\apps\gnupg\2.4.7
Adding ~\scoop\apps\gnupg\current\bin to your path.
Persisting home
'gnupg' (2.4.7) was installed successfully!
$ gpg --version
gpg (GnuPG) 2.4.7
libgcrypt 1.11.0
Copyright (C) 2024 g10 Code GmbH
License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: C:\Users\username\scoop\apps\gnupg\current\home
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
$ gpg-connect-agent /bye
gpg-connect-agent: gpg-agentが動いていません - 開始します'C:\\Users\\username\\scoop\\apps\\gnupg\\current\\bin\\gpg-agent.exe'
gpg-connect-agent: agent の起動のため、8秒待ちます...
gpg-connect-agent: agentへの接続が確立しました
おっ。
ちゃんと gpg-agent
が動く。
以前 Scoop 版の gpg-agent
が動かない現象があったが,今は問題なさそうだな。
ここで ssh 接続にも使える鍵を生成しておこう。 鍵の作成方法は以下を参照のこと。
作成した鍵の ssh 公開鍵を GitHub に上げておく。
PuTTY の導入
winget を使って PuTTY を導入しようと思ったのだが
PS > winget search putty
ソースを更新できませんでした: winget
ソースの検索中にエラーが発生しました;結果は含まれません: winget
名前 ID バージョン ソース
-----------------------------------------------------------------------------------
PuTTY XPFNZKSKLBP7RJ Unknown msstore
SSH Client: Terminal, SFTP, Mosh, Telnet & Putty 9PKGBV7S35T0 Unknown msstore
あれ? winget ってまともに動いてないのか? しょうがない。 手動で入れよう。 と思ってダウンロードページから msi ファイルをダウンロードしてインストーラを起動しようとしたら失敗した。 これ Scoop で 7-Zip をインストールして失敗した症状と同じか? そもそも msi でのインストールができなくなってる? うーん,分からん。
それじゃあ PuTTY-ranvis 版にするか。
7z
圧縮されたファイルをダウンロードして展開して手動で PATH
を通した。
前節で鍵を作って GitHub に ssh 公開鍵を登録してあることが前提。
GnuPG のホームディレクトリに gpg-agent.conf
ファイルを作成して以下の記述を行う。
enable-putty-support
gpg-agent
を再起動して gpg-agent.conf
ファイルの設定を読み込ませる。
$ gpg-connect-agent killagent /bye
OK closing connection
$ gpg-connect-agent killagent /bye
gpg-connect-agent: no running gpg-agent - starting 'C:\\Users\\username\\scoop\\apps\\gnupg\\current\\bin\\gpg-agent.exe'
gpg-connect-agent: waiting for the agent to come up ... (8s)
gpg-connect-agent: connection to the agent established
OK closing connection
これで PuTTY の pageant
の代わりに gpg-agent
が秘密鍵の管理を行う(厳密には gpg-agent
は秘密鍵を保持せずパスフレーズのみ短期間保持する)。
試しに GitHub に接続してみよう。
$ plink git@github.com
Using username "git".
Access granted. Press Return to begin session.
大丈夫そうかな。
git から PuTTY を使って ssh 接続できるように環境変数 GIT_SSH
に plink.exe
のフルパスをセットすること。
パッケージマネージャは管理者権限下で使う
どうも msi ファイルを起動してインストールを行う際は管理者権限が必要らしい。 Windows Terminal を管理者権限で起動して
$ msiexec /i installer.msi
などとやったら問題なくインストールできた。 エクスプローラから msi ファイルを起動する場合は管理者権限にならないので注意。 またアンインストールの際には
$ msiexec /x installer.msi
でアンインストールする。
設定の [アプリ]
→ [インストールされているアプリ]
のアプリ一覧からアンインストールしようとしても失敗するので,こちらも注意。
Scoop も管理者権限下であれば 7-Zip をインストールできた。 winget も管理者権限下ならまともに動く。
$ winget search putty
名前 ID バージョン 一致 ソース
-----------------------------------------------------------------------------------------------------------
PuTTY XPFNZKSKLBP7RJ Unknown msstore
SSH Client: Terminal, SFTP, Mosh, Telnet & Putty 9PKGBV7S35T0 Unknown msstore
PuTTY PuTTY.PuTTY 0.82.0.0 winget
NETworkManager BornToBeRoot.NETworkManager 2024.6.15.0 Tag: putty winget
PortX NetSarangComputer.PortX 2.2.12 Tag: putty winget
PuTTY CAC NoMoreFood.PuTTY-CAC 0.82.0.1 Tag: putty winget
MTPuTTY TTYPlus.MTPutty 1.8 Tag: putty winget
SuperPuTTY JimRadford.SuperPuTTY 1.5.0 winget
$ winget install PuTTY.PuTTY
見つかりました PuTTY [PuTTY.PuTTY] バージョン 0.82.0.0
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
ダウンロード中 https://the.earth.li/~sgtatham/putty/0.82/w64/putty-64bit-0.82-installer.msi
██████████████████████████████ 3.62 MB / 3.62 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました
パッケージマネージャを使う場合は管理者権限にしろってことか。 と考えるなら納得できなくもないが,こんな面倒臭かったっけ? とりあえず msi ファイルを直に扱うのはやめたほうがいいということは分かった。
カスタマイズ作業はまだまだ続く
けど,セットアップが面倒そうなのは終わったかな。 一休みして続きをしよう。
インストールメモ
-
Git Extensions | Git Extensions is a standalone UI tool for managing Git repositories : winget の
GitExtensionsTeam.GitExtensions
でインストール可。勝手にGit.Git
をインストールするので個別にwinget uninstall
した -
KDiff3 - Homepage : winget の
KDE.KDiff3
でインストール可 -
Amazon.co.jp: Kindle無料アプリ: Kindleストア : winget の
Amazon.Kindle
はバージョンが古い -
Steam, The Ultimate Online Game Platform : winget の
Valve.Steam
でいいのか分からなかったので,サイトからインストーラをダウンロードした。リモートデスクトップ越しでは流石に入力遅延があるが,パズルゲームなら違和感なくできるか
ブックマーク
作業中の BGV
- 【日本史】今年はヘビ年!古代日本のヘビエピソード集めてみました🐍【古代日本史VTuber きら子】 - YouTube
- 【雑談】お正月が終わったり、とある美術館に行ってきたり、【北白川かかぽ/VEE】 - YouTube
- 【60万人耐久】年内目標達成にむけて✨歌を歌うぞおおお!!!【一条莉々華 / ホロライブ ReGLOSS】 - YouTube
-
scoop config <name> <value>
で設定した値を削除するにはscoop config rm <name>
を唱える。詳しくはscoop help config
を参照のこと。 ↩︎