ちなみに

火曜日の空は僕を押しつぶした。

VSCode (Cursor) のTerminalでもzellijを自動起動したい

zellij.dev

最近、zellij を使ったワークフローが手に馴染んできたので、VSCode (実際は Cursor 使ってる) の Terminal でも自動起動するようにした。

ドキュメント によると eval "$(zellij setup --generate-auto-start zsh)" って書いておけば自動起動できるのだけれど、各リポジトリ毎に別の Session になってほしいので以下のようにした。

# zellij https://github.com/zellij-org/zellij
if [[ "$TERM_PROGRAM" == 'vscode' ]]; then
  if [[ -z "$ZELLIJ" ]]; then
    zellij attach --create "$(basename "$(git rev-parse --show-toplevel 2>/dev/null || echo "$PWD")")"
    exit
  fi
else
  if [[ -z "$VSCODE_RESOLVING_ENVIRONMENT" ]]; then
    # export ZELLIJ_AUTO_ATTACH=true
    export ZELLIJ_AUTO_EXIT=true
    eval "$(zellij setup --generate-auto-start zsh)"
  fi
fi

補足として、通常のターミナル側の処理で $VSCODE_RESOLVING_ENVIRONMENT を見ているのは、VSCode の起動時にユーザーのシェルの設定を読みに行く処理が失敗してぶっ壊れるので回避策。

zimの初期化周りが変わっていたので追従した

blog.nishimu.land

zsh に戻ってから引き続き zim を使っていますが、久しぶりに眺めたら初期化方法が変わっていたので追従した。

まずは zim のアンインストール手順を実施して、既存の設定などを全て削除した。 具体的には .zshrc の先頭に書いていた初期化処理を消して、.zimrc.zim ディレクトリも消しておいた。

HomeBrew でインストールするようになってるのでインストールする。

$ brew install --formula zimfw

次に .zshrc の先頭にあたらしい初期化処理を書く。(/opt/homebrewbrew --prefix って書きたいけどタイミングによってうまくいかないのでむずい) zsh関連の自分で設定しているファイルとzimが管理するファイルを完全に分離しておきたかったので ZIM_HOME は別のzshとはディレクトリを指定している。

# https://github.com/zimfw/zimfw
ZIM_HOME="${XDG_CONFIG_HOME}/zim"
# Install missing modules and update ${ZIM_HOME}/init.zsh if missing or outdated.
if [[ ! ${ZIM_HOME}/init.zsh -nt ${ZIM_CONFIG_FILE:-${ZDOTDIR:-${HOME}}/.zimrc} ]]; then
  source "/opt/homebrew/opt/zimfw/share/zimfw.zsh" init
fi
# Initialize modules.
source ${ZIM_HOME}/init.zsh

最後に .zimrc を書いていく。設定も出来るがデフォルトのままで"${ZDOTDIR}/.zimrc" に配置した。

Create ~/.zimrc の全部入りを採用した。

追加でインストールしたプラグインは以下。zsh-users/zsh-syntax-highlighting は fast と被るのでオフにしている。

# https://github.com/Aloxaf/fzf-tab
# before syntax-highlighting / zsh-autosuggestions
zmodule Aloxaf/fzf-tab

zmodule olets/zsh-abbr
zmodule zdharma-continuum/fast-syntax-highlighting
zmodule zsh-users/zsh-history-substring-search

これで zsh を起動すると初期化処理が走って、各種モジュールもインストールされる。

(compinit のエラーがたまに出ていたのが解消してスッキリ。) 解消してなかった

launchctlに環境変数を渡したい

colimaを使い始めてからmacOSを再起動するたびに設定などがまっさらになるという自体に頭を抱えていた。 これは XDG_CONFIG_HOME 以下じゃなくてホームディレクトリに新規で .colima ディレクトリが作成されてしまうからっぽい。 ホームディレクトリの設定が優先されているだけで、元の設定が消えている訳じゃないので、~/.colima/ を削除して、colimaを再起動するといいのだけれどちょっと手間。

原因は launchctl がシェルと独立して起動されるデーモンなので、環境変数を読めてないことにあると分かったので対策をする。

launchctl setenv でセッション内でだけ環境変数を設定できるらしいのでこれを使っていく。どうも永続的に設定する方法はなさそう。 サービスの plist に書いてくれってことらしいが、今回は HomeBrew で管理されているものというのと、全員が XDG Base Directory を採用している分けじゃないので手元でなんとかする。

僕はログインシェルを zsh にしていて、起動時に環境変数設定用の .zshenv というファイルを読み込むようにしているので、ここに以下のように書いておいた。

launchctl setenv XDG_CONFIG_HOME "$HOME/.config"
launchctl setenv XDG_CACHE_HOME "$HOME/.cache"
launchctl setenv XDG_DATA_HOME "$HOME/.local/share"
launchctl setenv XDG_STATE_HOME "$HOME/.local/state"

これでひとまずやりたいことは出来ていそう。 なんかもっとスマートな方法があれば教えてください。

blog.nishimu.land

カリタのブラシが折れた

ミルを掃除するのにいつ手に入れたか覚えてないカリタのブラシをずっと使っていたのだけれど、今日ついに折れてしまった 毎日使っていたものだったので相棒感があったのでちょっと悲しい。

同じものを買っても良かったのだけれど、せっかくなのでいろいろ試そうということで珈琲考具のやつを買ってみた。

確定申告しっぱいした

去年、家を買うにあたり住宅ローンを借りたので、住宅ローン控除を受けるために確定申告が必要になりました。 マイナポータルから各種連携をしようとしたところ、保険関連は数営業日かかったり、iDeCoなんかは土日が休みで連携できないらしい。 ということで今日は詰んでしまったので確定申告にしっぱいしました。 来週の平日に再チャレンジします。 みなさんは余裕をもって準備しましょう。