All You Need Is

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, ... }:
2
3
{
4
programs.tmux = {
5
enable = true;
6
# see: https://github.com/nix-community/home-manager/issues/5952
7
package = pkgs.tmux.overrideAttrs (old: rec {
8
version = "3.5";
9
src = pkgs.fetchFromGitHub {
10
owner = "tmux";
11
repo = "tmux";
12
rev = version;
13
hash = "sha256-8CRZj7UyBhuB5QO27Y+tHG62S/eGxPOHWrwvh1aBqq0=";
14
};
15
});
16
};
17
}

これで Nix で管理する tmux のバージョンを固定できる。こういう時に簡単にバージョンを戻したり、固定できるのが Nix で管理するいいところだと思う。他の環境への反映・再現も簡単にできる。

バージョン固定する以外の解決方法がわかったら記事を更新する。流石に 3.6 になる前に直って欲しい。


Buy Me A Coffee