人生の人生

日常のゴミ捨て場

PowerShellをいじった; 見た目編

人はどうしてこうも無駄なことに時間と労力を費やしてしまうのだろうか.

今回はPowerShellの見た目改善奮闘記です.

 

1. きっかけ

前回の記事で入れたposh-gitでウハウハしてたら チルダが上付きになっているのにイラっとした.MS ゴシックを使っているのが原因.

f:id:sktakefumi:20180703123406p:plain

ついでに よせばいいのに カラースキームにも関心を持ってしまう.ほんとバカ.

ちなみに上画像はカラースキームの適用後.

 

2. カラースキーム編

とりあえずググる.ヒットする.

qiita.com

ここからここへ飛んだ.

Introducing the Windows Console Colortool – Windows Command Line Tools For Developers

とりあえずsolarized_darkを当ててみたら大変なことになる.

f:id:sktakefumi:20180703124557p:plain

コマンドが読みづらいし なんならオプション指定が一切見えない.クソ.

ちょくちょく報告されてる. 

colortool's 'solarized_dark' theme makes some characters unreadable · Issue #180 · Microsoft/console · GitHub

ColorTool: setting theme to solarized_dark affects Powershell and bad way · Issue #127 · Microsoft/console · GitHub

しゃーないのでOneHalfDarkにした.むしろこっちのほうが低コントラストで好きかもしれない.

でもいまだにオプション指定はクソ読みづらい.

f:id:sktakefumi:20180703130046p:plain

よくよく調べてみると colortools.exeは .itermcolos内で指定されたANSIカラーコードをPowerShellに対して指定してあげているらしい.色番号の対応が難しい.

folioscope.hatenablog.jp

blog.shibata.tech

例えば Show-TMOutputColorコマンドを使うと どんな色が割り当てられているかがわかる.

https://4sysops.com/wiki/change-powershell-console-syntax-highlighting-colors-of-psreadline/

f:id:sktakefumi:20180703130745p:plain

ちなみにこの割り当てはPowerShellのプロパティ内からでもわかる.

f:id:sktakefumi:20180703130831p:plain

構文の解析と色付けはPSReadlineというモジュールで管理されているらしい(直前のリンク参考). 

f:id:sktakefumi:20180703131948p:plain

ちなみに PSReadline v 2.0.0だと仕様が違う上に色名表示がバグる.

f:id:sktakefumi:20180703132800p:plain

ParameterColorにはDarkGrayが割り当てられているが この色が背景のBlackと完全に同化していることがわかる.

 

そこで最初はこのPSReadlineによる色指定で ParameterColor(とついでにOperatorColor)を変えようと思った.このときもv 2.0.0の仕様変更で数分苦しんだ.

Code is not fully compatible with PSReadLine v2.0 · Issue #67 · JanDeDobbeleer/oh-my-posh · GitHub

でもそれってどうなんだろう?と思い直したので(カラースキームはカラースキーム自体の設定で済ませたい的な?) 結局OneHalfDark.itermcolosの DarkGrayに対応するANSIカラー(Ansi 8 Color)を適当に変えた.

これによってDarkGray(DarkGrayとは言っていない)が変わって 結果がこうなる.

f:id:sktakefumi:20180703133814p:plain

やろうと思えばもっと細かい色指定が可能なはずなのでカラースキームオタクの方はぜひ.

 

2. フォント編

Consolas+MS ゴシックのフォントリンクをやってみたりしたけど スケーリングファクタがよくわからなくなってやめました.

tm.root-n.com

shajisoft.com

結局普通に源真ゴシック等幅Mediumにしました.

jikasei.me

なんかPowerShellにフォントを追加するときはレジストリを編集するとか言われてましたけど UTF-8に設定してるおかげか なにもせずにフォントダイアログに出てきたのでラッキーです.

 

3. まとめ

わたしって,ほんと,バカ....

 

おまけ. lsに色を付けてみた

Install-Moduleしてprofileを編集するだけ.

GitHub - joonro/Get-ChildItemColor: Add coloring to the output of Get-ChildItem Cmdlet of PowerShell.