Windows 10 のコンソール環境をいい感じにした

📅 September 07, 2019

Windows 10 のコンソール環境をいい感じにした

そろそろちゃんと Powershell を使えるようになりたい。良い気持ちで使うために見た目は大事なので見た目をかっこよくしました。その時のメモ。 今こんな感じ。

Fluent Designed PowerShell

外観テーマを Fluent-terminal、シェルのテーマを Cmder(ConEmu) で設定した PowerShell が動いてる。

Chocolatey のインストール

Fluent-Terminal、Cmder のインストールに Chocolatey を使用します。 管理者権限で PowerShell を起動して以下コマンドの実行。

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

参考:Installation

Fluent-Terminal のインストール

管理者権限で PowerShell を起動して以下コマンドの実行。

cinst fluent-terminal -y

参考:felixse/FluentTerminal: A Terminal Emulator based on UWP and web technologies.

Cmder のインストール

管理者権限で PowerShell を起動して以下コマンドの実行。

cinst fluent-terminal -y

Chocolatey、シンプルで素晴らしい。 ポイントは管理者権限で Powershell 実行することです。 そうじゃないと、インストール上手くいかんかもよ?的なワーニングが出る。

参考:cmderdev/cmder: Lovely console emulator package for Windows

PowerShell の設定

BIG3 が揃った。まずは PowerShell 本体に posh-git、oh-my-posh を導入。 posh-git は git-hub のステータスをわかりやすく表示、oh-my-posh はコマンドラインのテーマを設定する役割の認識。

管理者権限で PowerShell を起動して以下コマンドの実行。

Install-Module posh-git -Scope CurrentUser
Install-Module oh-my-posh -Scope CurrentUser

Cmder の設定

インストールした posh-git、oh-my-posh を powershell 起動時に読み込む必要がある。 powershell 自体は Cmder 経由で起動するため、Cmder のプロファイルに読み込みコマンドを書いておく。 プロファイルのパスは

C:\tools\Cmder\vendor\profile.ps1

参考にしたサイトと Cmder のインストールフォルダが違ったので、これは環境によって変わるかも。 プロファイルの最後に以下を書いておく。

Import-Module posh-git
Import-Module oh-my-posh
Set-Theme Paradox

最終行の Set-Theme Paradox がコマンドラインのテーマ。テーマは下のリンクから好きなものを選ぶ。ものによっては Fluent-Terminal で、カーソル位置がずれるなど表示がおかしくなった。

ログのカラーテーマも Cmder で設定するけど、こちらはデフォルトのまま使用中なので、あまりよくわかってない。

参考:JanDeDobbeleer/oh-my-posh: A prompt theming engine for Powershell running in ConEmu

Fluent-Terminal の設定

ようやく。起動すると既に Fluent-Design が美しい!

Cmder のプロファイルを読み込む

Settings -> Profile の画面で PowerShell がデフォルトで存在するので、これを Clone して設定していく。 Arguments に以下を設定。

-ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command "Invoke-Expression '. ''C:\tools\Cmder\vendor\profile.ps1'''"

PowerLine フォントの導入

ここまでで PowerShell On Cmder On Fluent-Terminal の連携が出来た。が、PowerLine 用のフォントを適用しなければ、oh-my-posh で設定したコマンドラインが正しく表示されない。

以下リポジトリから install.ps1 を起動する PowerLine フォントが一式インストールされる。

参考:powerline/fonts: Patched fonts for Powerline users.

Settings -> Terminal -> Font family からお好みのものを使う。 自分は Meslo LG M DZ for Powerline を使っている。 ターミナルの再起動後、反映されていれば成功。

外観テーマの設定

テーマを以下リンクから好きなものをダウンロードする。 自分は Argonaut を導入してみた。

参考:Iterm Themes - Color Schemes and Themes for Iterm2

Settings -> Themes -> Import でテーマを読み込む。 Settings -> Profiles よりさっき作成したプロファイルのテーマにインポートしたテーマを設定する。 再起動後、反映できてれば完成。

おまけ

Fluent-Terminal で管理者権限で PowerShell を開く方法が分からないので誰か教えてください。 cinst のたびに別窓で PowerShell 起動してコマンドタイプするのはイケてないので、いったんこうしてるメモ

sudo のインストール

cinst sudo -y

これで sudo cinst ~と打つと、管理者権限で powershell が実行されるようになる。

cinst 時にデフォルトで sudo が付くようにした

プロファイルにこれ書いて cinst をオーバーライド。

function Run-AsAdmin
{
   sudo choco install $args
}
Set-Alias cinst Run-AsAdmin

完成!

で、そのイケてる PowerShell でなにができんのか。 そもそもFluent Designイケてんのか!? 手順、致命的な過ちを犯してたら@yamasan_hamesanまでご連絡ください。