株式会社はてなに入社しました
今週のお題「4月1日の思い出」
最近、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 の起動時にユーザーのシェルの設定を読みに行く処理が失敗してぶっ壊れるので回避策。
zsh に戻ってから引き続き zim を使っていますが、久しぶりに眺めたら初期化方法が変わっていたので追従した。
まずは zim のアンインストール手順を実施して、既存の設定などを全て削除した。
具体的には .zshrc の先頭に書いていた初期化処理を消して、.zimrc と .zim ディレクトリも消しておいた。
HomeBrew でインストールするようになってるのでインストールする。
$ brew install --formula zimfw
次に .zshrc の先頭にあたらしい初期化処理を書く。(/opt/homebrew を brew --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 のエラーがたまに出ていたのが解消してスッキリ。)
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"
これでひとまずやりたいことは出来ていそう。 なんかもっとスマートな方法があれば教えてください。
この記事で紹介した noSemanticString / noSemanticNumber が v0.18.0 で非推奨になった。
代わりに semanticTokenTypes が使えるのでこれで設定すると良い。
"gopls": { "ui.semanticTokens": true, "ui.semanticTokenTypes": { "string": false, "number": false, }, },
去年、家を買うにあたり住宅ローンを借りたので、住宅ローン控除を受けるために確定申告が必要になりました。 マイナポータルから各種連携をしようとしたところ、保険関連は数営業日かかったり、iDeCoなんかは土日が休みで連携できないらしい。 ということで今日は詰んでしまったので確定申告にしっぱいしました。 来週の平日に再チャレンジします。 みなさんは余裕をもって準備しましょう。