🚀

Windowsでイケてるターミナル環境を構築する

5 min read

Windowsデフォルトの イケてない ターミナル環境をいい感じにしたい。
Windows PowerShellにおいては、なぜ青背景にしたのかと聞きたいくらい青文字が見づらくなってしまっている。

Windowsデフォルトのターミナル環境
今回は、個人的にイケてると思うターミナル環境の構築方法を書いていく。

本記事は、Windows サンドボックス上にターミナル環境を構築しながら書いているため、実際の手順とは異なったり、手順が抜けている場合があります

完成図


この記事で出来上がるターミナル環境

ターミナル環境構築

フォントのインストール

今回の完成図では HackGen というフォントを使用している。
どんなフォントかは Qiita > Ricty を神フォントだと崇める僕が、フリーライセンスのプログラミングフォント「白源」を作った話 > 「白源 (はくげん/HackGen)」の特徴 に書かれている。

特に、全角スペースの可視化や判読性の向上などの細かな工夫はプログラミングだけでなくターミナルにも活きてくる為、おすすめのフォントである。

今回はフォントファミリーの中の HackGenNerd Console を使用する。
名前の通り Nerd Fonts が合成されているので、様々なアイコンが使用可能になる。

GitHub > yuru7/HackGen > Release より、HackGenNerd_vX.X.X.zip をダウンロードの上、展開し HackGenNerdConsole-Regular.ttf をインストールする。

Scoopのインストール

Scoopとは、Windows向けパッケージマネージャであり、ターミナルから簡単にソフトウェアを管理・更新することが可能になる優れものである。

PowerShell より、以下を実行しインストールする。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
iwr -useb get.scoop.sh | iex

実行ポリシーの変更をする為、y を入力して Enter を押す。

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): y

以下のような表示が出たら、インストールが完了する。

Initializing...
Downloading scoop...
Extracting...
Creating shim...
Downloading main bucket...
Extracting...
Adding ~\scoop\shims to your path.
'lastupdate' has been set to 'XXXX-XX-XXTXX:XX:XX.XXXXXXX+09:00'
Scoop was installed successfully!
Type 'scoop help' for instructions.

Scoopの設定

Gitのインストール (Scoopが内部的に使用) と extrasバケットの追加を行う。

scoop install git
scoop bucket add extras

Windows TerminalとStarshipのインストール

Windows TerminalStarship、依存関係のインストールを行う。

scoop install windows-terminal starship vcredist2019

Windows Terminalの設定

インストールした Windows Terminal を実行し、Ctrl + , で設定を開く。

プロファイル > Windows PowerShell > 外観 に移動し下記項目を変更する。

  • 配色: One Half Dark
  • フォント フェイス: HackGenNerd Console
  • フォント サイズ: お好み (完成図は 14)
  • カーソルの形: ビンテージ
  • アクリルを有効にする: オン
  • アクリルの不透明度: 75%

保存すると以下の状態になる。雰囲気がイケてるターミナル環境に近づいてきた。

Starshipの設定

Invoke-Expression (&starship init powershell)

Starship は上記コマンドで起動することが可能だが、毎度入力するのは不便なので PowerShell プロファイル に追記することで PowerShell 起動時に Starship も起動出来るようにする。

if (!(Test-Path -Path $PROFILE)) {
    New-Item -ItemType File -Path $PROFILE -Force
}
notepad $PROFILE

開いたメモ帳に下記を追記する。

Clear-Host
Invoke-Expression (&starship init powershell)

1行目は、PowerShell最新バージョンへの移行を促すメッセージをクリアしている。

保存しターミナルを再起動すると以下の状態になる。

Starship が起動し、このままでもイケてるターミナル環境だが、さらに設定していく。

if (!(Test-Path -Path "$Env:UserProfile\.config")) {
    New-Item -ItemType Directory "$Env:UserProfile\.config" -Force
}
if (!(Test-Path -Path "$Env:UserProfile\.config\starship.toml")) {
    New-Item -ItemType File -Path "$Env:UserProfile\.config\starship.toml" -Force
}
notepad "$Env:UserProfile\.config\starship.toml"

開いたメモ帳に下記を追記する。

add_newline = false

[character]
error_symbol = "[❯❯❯](bold red)"
success_symbol = "[❯❯❯](bold green)"
vicmd_symbol = "[❮❮❮](bold green)"

[cmd_duration]
format = " [$duration]($style)"

[directory]
read_only = " "
truncate_to_repo = false
truncation_symbol = " /"

[git_status]
disabled = true

[memory_usage]
disabled = false
format = "via [$symbol$ram_pct]($style) "
symbol = " "

[time]
disabled = false
format = "[$time]($style) "
use_12hr = true

[aws]
symbol = "  "

[conda]
symbol = " "

[dart]
symbol = " "

[docker_context]
symbol = " "

[elixir]
symbol = " "

[elm]
symbol = " "

[git_branch]
symbol = " "

[golang]
symbol = " "

[hg_branch]
symbol = " "

[java]
symbol = " "

[julia]
symbol = " "

[nim]
symbol = " "

[nix_shell]
symbol = " "

[package]
symbol = " "

[perl]
symbol = " "

[php]
symbol = " "

[python]
symbol = " "

[ruby]
symbol = " "

[rust]
symbol = " "

[scala]
symbol = " "

[swift]
symbol = "ﯣ "

詳しい設定は以下を参照。
Starship > 設定

保存しターミナルを再起動すると 完成図 と同様のターミナル環境をWindows サンドボックス上に再現することが出来た。

お疲れ様でした🎉

あとがき

何かと使うことが多いターミナル。Windowsデフォルトとは一味違うカスタムや設定をすることで、使いやすさの向上だけでなくワクワクしながら気持ちよく使用することが出来る。
本記事に書いた内容はあくまで一例なので、使いやすいようにカスタムしてみると楽しいかも💪

Discussion

ログインするとコメントできます