traP アドベントカレンダー2022の23日目、12/17(土)の記事です。一日遅れてしまいました...
そもそもdotfilesってなにさ
ようこそdotfilesの世界へ - Qiita これを読むと全てがわかります。
大体↓のような流れで生まれるものです(ソースは自分)。
ターミナル操作楽しいな
→ PowerLineかっけぇ
→ 設定いじってオレオレターミナル作るの楽しい
→ 設定ファイル増えてきたな、git管理しよ
→ ファイル名がdot.
始まりのファイル群だからリポジトリ名はdotfilesで
オレオレ設定を共有しようという雰囲気もあると思います。この記事はそんなdotfilesを作って二ヶ月ほどが経過したH1ronoによるオレオレdotfilesの紹介です。
出来上がったものがこちら
動作を確認した環境はM1 MacBook Air(macOS Ventura), Raspberry Pi 4B(Raspberry Pi OS | Ubuntu 22.04)です。
構成
- シェル: zsh
- zshのプラグインマネージャ: Sheldon (GitHub)
- zshプロンプト: Starship (GitHub)
- ターミナルエミュレータ: WezTerm (GitHub)
- tmux
- tmuxのプラグインマネージャ: tpm
- ターミナルで開けるエディタ: Neovim
- フォント: FirgeNerd Console
スクリーンショット
OneDarkが好きなので、カラースキームはFigmaで公開されているOneDark Proのカラースキームを参考にしました。気づいたらいかにもPowerLineな見た目になってました。
zshまわりのこだわりポイント
主にプラグインマネージャ/プロンプト改造のこだわりです。
- 早い
- 開発元がはっきりしている
- ドキュメントが充実している
~/.zshrc
をあまり汚さない- 個別に設定ファイルがある
(オープンソースに何言ってんだみたいなツッコミが一部聞こえてくる気がしますがそれはさておき) ↑のような点を考慮しつつ調べた結果、たどり着いたのが↓の2つです
どちらも最近流行り(?)のRust製でサクサク動きます。
Sheldonは↓のように、1行で適用できるカスタマイズをプラグインとして設定ファイルに書けるのがいい点です。
[plugins.ls-coloring]
inline = 'alias ls="/bin/ls --color=always"'
おかげで~/.zshrc
はSheldonの読み込み1行だけになりました。Starshipは現在のパス、gitリポジトリの状況、直前のコマンド実行にかかった時間などの数ある機能の中から、プロンプトに表示させたいものだけを選んで適用することができます。機能ごとに表示のフォーマット(背景色など)をカスタマイズすることができるので、欲しい情報だけを欲しい形で得ることができます。
ターミナルエミュレータのこだわりポイント
- 設定ファイルが
~/.*
のような場所にある - フォントのフォールバック機能がある
- macだけでなくubuntuなどlinux系でも動いて欲しい
WezTermは↑の条件を満たしています。また、設定はLuaというプログラミング言語で書くので、「このパスに画像ファイルがあったら背景に使う、なかったら別のパスを探す、全てダメであれば黒色」のような条件分岐も可能です。ドキュメントが充実しているのも相まって、設定にこだわり始めるとキリがないです。
そのうち やりたい/やらねばいけない こと
リポジトリにはインストーラとしてinstall.sh
というファイルが置いてあります。しかしインストーラとは名ばかりで、実際にはリポジトリ内のdotfilesたちをホームディレクトリ直下などの適切な場所にシンボリックリンクを貼るだけのスクリプトです。依存しているプログラムたちがインストールされているかどうかを確認、入っていなければインストールする、といったスクリプトも追加したいなと思ってます。
↑と関連して、Brewfileを置くのもアリかなと思ってます。しかしそうするとmac以外での使用が少々厳しくなるのが...
neovimの設定も置いてありますが何もいじってないような状態なので、そのうちゴリゴリに改造したいなと思ってます。
yabaiというmac用のウィンドウマネージャを見つけたのですが、これもいつか入れたいなと思ってます。linux系(主にubuntu)でおすすめのウィンドウマネージャがあったら是非教えてください。
おしまい
是非みなさんのおすすめ設定 / オレオレdotfilesを教えてください。次の担当は@hijiki51さんと@d_etteiu8383さんです!