tmux のデフォルトシェルが sh になってしまった話
2024/10/14
tmuxNixhome-manager
はじめに
Nix で flake.lock ファイルを更新したら tmux デフォルトシェルが sh になってしまったので解決方法をメモ。
tmux 3.5a
home-manager に Issue 立っているため、一次情報を当たりたい人は以下のリンクを参照。
nixpkgs で tmux のバージョンが 3.5a に上がったことで新しいパネルが生成されたときに /bin/sh
が使われるようになっている (CHANGELOG)。
解決方法
tmux 3.5a でデフォルトシェルを変更する方法がわからないので、現時点では以下のように tmux のバージョンを 3.5 に固定することで対応。
1{ pkgs, ... }:23{4programs.tmux = {5enable = true;6# see: https://github.com/nix-community/home-manager/issues/59527package = pkgs.tmux.overrideAttrs (old: rec {8version = "3.5";9src = pkgs.fetchFromGitHub {10owner = "tmux";11repo = "tmux";12rev = version;13hash = "sha256-8CRZj7UyBhuB5QO27Y+tHG62S/eGxPOHWrwvh1aBqq0=";14};15});16};17}
これで Nix で管理する tmux のバージョンを固定できる。こういう時に簡単にバージョンを戻したり、固定できるのが Nix で管理するいいところだと思う。他の環境への反映・再現も簡単にできる。
バージョン固定する以外の解決方法がわかったら記事を更新する。流石に 3.6 になる前に直って欲しい。