使用 nix-shell 时如何为 tmux 设置默认 shell?

使用 nix-shell 时如何为 tmux 设置默认 shell?

我想使用shellnix-shell来加载。我通过添加到我的文件中来完成此操作:tmuxfish.nix

shellHook = ''
  tmux -f .tmux.conf
'';

然后有一个.tmux.conf就是

set-option -g default-shell /nix/store/lpmzq9qf0dgn357l20y5868wayjr79yi-fish-3.3.1/bin/fish

我很想从配置文件中获取哈希值,以便tmux始终使用当前正在使用fish的版本。nix-shell这可能吗?

答案1

你有很多选择,但我想说最简单的解决方案是使用

shellHook =
  let tmuxConf = pkgs.writeText "tmux.conf" "set-option -g default-shell ${pkgs.fish}/bin/fish";
  in ''
    tmux -f ${tmuxConf}
  '';

(未在手机上进行测试,您可能需要pkgs.fish根据加载包的方式进行调整)

相关内容