en_USで頑張るArch Linux日記 5日目:zsh
en_USで頑張るArch Linux日記の5日目です。
そろそろBashもしんどくなってきたので、Zshを入れていきます。
paru -S zsh
でよくね?
てか、はい。そのとおりだと思います。
パッケージでZshを入れて、年季の入った.zshrc
やらzplug
一式をgit clone
してきたらふつうに動きます。
しかし、Zshの話題を5日目まで遅らせたのは、それなりの理由があったからです。
ここから下は、paru -S zsh
を直接使わず、ML4WのGUIを使ってZshをインストールする方法を紹介します。
- ML4Wのテーマとターミナルの表示色をいい感じに合わせたい
- ML4Wの今風なBashプロンプトをZshでも使ってみたい
- 今使ってるZshのプラグインは古いから、いいのがあったら試してみたい
このような人向けの記事となっています。
そもそもML4WはGUIのために入れたので、Zshにまで口出ししてほしくないという向きにはパッケージを直接使うほうが断然楽です。
最初にML4Wを使ってZshをインストールする方法のデメリットを挙げます。
ML4Wを使う方法ではZshとその設定を同時にインストールでき、かつML4Wをアップデートするときにこれらも更新されるようになります。
ですが、これがいいかどうかは正直微妙です。
例えるなら、職場のZshガチな先輩の設定ファイルに直接symlinkを貼ってるようなものなので、いつも使っているコマンドがある日突然挙動が変わるなんてこともあるかもしれません。
しかしこの後説明するようにすれば、多少手間ではあるものの、わりと安全にいいとこ取りをすることができます。
やってみて分かりましたが、zsh plugins alternatives 2025
とかでいちいちググらなくても、誰かの最新の設定が手元にあるというのは案外便利なものです。
導入はちょっと面倒かもしれませんが、参考にしてみてください。
どんなのが入るのか
そもそもZshはシェルに異常なこだわりを持つ人が使うシェルです。
つまり普段からZshを使っている人にとっては、デスクトップの外観や操作性以上に違和感を感じやすいといえるでしょう。
そこでまず、ML4Wで入れるとどんなのが入るのかザクッとお見せしましょう。
- Plugin manager: Oh My Zsh
- Prompt: Oh My Posh[1]
M4Lでは上記の構成になっています。
そして、実際に入るものは下記のファイルです。
~/.zshrc # by ML4W
~/.config/zshrc/ # -> ~/dotfiles/.config/zshrc/
# 00-init : export EDITOR, PATH, ZSH
# 20-custommization : plugins, fzf, oh-my-zsh, oh-my-posh
# 25-alias : ls->eza, qtile, xrandr
# 30-autostart : pywal, fastfetch
~/dotfiles/.config/zshrc/
にいくつかスクリプトが入っており、~/.config/zshrc/
という名前でsymlinkが貼られます。
ファイル名の右側に、何をしてるファイルなのか説明を書いたので参考にしてください。
Zshにこだわりがあるなら、これらのML4Wスクリプトと自分のスクリプトのどちらを使うか、ここでちょっと考える必要があります。
筆者は25-alias
はちょっといただけないと感じました。
上の説明書きにあるように、ls
をeza
にするような豪快なエイリアスが大量にありますしxrandr
はそもそもX11用なので、まだ移行過渡期のスクリプトに思えたからです。
また、20-custommization
から呼び出されるfzfの設定も普段使っているものを使いたいですし、プラグインも以前からsheldonで管理しているのでそれを使いたいところです。
設定ファイルの配置場所
具体的にどうすればいいかは、.zshrc
を見れば分かります。
短いのでそのまま載せます。
# _
# _______| |__ _ __ ___
# |_ / __| '_ \| '__/ __|
# _ / /\__ \ | | | | | (__
# (_)___|___/_| |_|_| \___|
#
# -----------------------------------------------------
# ML4W zshrc loader
# -----------------------------------------------------
# DON'T CHANGE THIS FILE
# You can define your custom configuration by adding
# files in ~/.config/zshrc
# or by creating a folder ~/.config/zshrc/custom
# with you own zshrc configuration
# -----------------------------------------------------
if [ -d ~/.config/zshrc/custom ]; then
for f in ~/.config/zshrc/custom/*; do source $f; done
else
for f in ~/.config/zshrc/*; do source $f; done
fi
コメントを読むと、
-
~/.config/zshrc/custom
(要mkdir custom
) ~/.config/zshrc/*
のどちらかに設定ファイルを置く構成だと気づきます。
ML4WのインストーラでZshを入れた直後は後者の構成になっています(前述のファイル構成はこの状態を表しています)。
筆者はまずこの状態で何時間か試したあとcustom
フォルダを掘り、そこに自分のスクリプトとML4Wの欲しいファイルだけをコピーしました。
その後、fzfの設定や重複するプラグインを削除するため20-custommization
を変更しています。
下記にその手順を示します。
ML4Wを使ったZshインストール方法
インストールには、起動時に表示されるML4WのWelcomeアプリを使います。
もし、表示しないようにしている場合は、App launcherでwelcome
と入力すれば起動できます。
- ML4WのWelcomeアプリを起動
- 右下の
Installation Options
ボタンを押す -
Shell
を選択 -
Zsh
を選択
これで.zshrc
に記載されている後者の配置になっています。
次にcustom
フォルダを作って、必要なML4Wスクリプトだけをそこにコピーします。
cd ~
cp -a dotfiles{,.ml4w-orig} # 念のためバックアップ
mkdir ~/.config/zshrc/custom
cd $_
cp ../00-init .
cp ../20-customization .
cp ../30-autostart .
次に、以下のようにして自分の.zshrc
を名前を変えてsymlinkを貼ります。
ln -s PATH/TO/.zshrc ~/.config/zshrc/custom/99-my-zshrc
上記のPATH/TO/.zshrc
は変更してください。
これでとりあえずZshを起動できるはずなので、ターミナルを開いて確認します。
99-my-zshrc
は最後にロードされるので、それほどおかしな動作にならないはずです。
あとは20-customization
と99-my-zshrc
を修正して、不要な部分を削ったり、望みの動作に近づけていくとよいでしょう。
ちなみに私の.zshrc
はsheldon
を起動するので、最後にプラグインがロードされますが特に問題ありません。sheldon
の遅延ロード機能も問題なく動いています。
-
恥ずかしながら筆者は今まで「なんかまたPoshとかいう新しいシェルが出たんか」と勘違いしてました。 ↩︎
Discussion