dotfiles/home/apps/wezterm.nix

51 lines
1.5 KiB
Nix

{
config,
flakePath,
lib,
pkgs,
...
}: let
mkSymlink = path: config.lib.file.mkOutOfStoreSymlink "${flakePath}/home/apps/wezterm/${path}";
inherit (pkgs.stdenv) isDarwin;
in {
# use the GUI version & config when we have a gui, else just get terminfo
config = lib.mkMerge [
(lib.mkIf (!config.isGraphical) {
home.packages = [pkgs.wezterm.terminfo];
})
(lib.mkIf config.isGraphical {
programs.wezterm = {
enable = true;
package = lib.mkIf isDarwin pkgs.nur.repos.nekowinston.wezterm-nightly;
};
xdg.configFile = {
"wezterm/wezterm.lua".source = mkSymlink "wezterm.lua";
"wezterm/config" = {
source = mkSymlink "config";
recursive = true;
};
"wezterm/bar".source = pkgs.fetchFromGitHub {
owner = "nekowinston";
repo = "wezterm-bar";
sha256 = "sha256-3acxqJ9HMA5hASWq/sVL9QQjfEw5Xrh2fT9nFuGjzHM=";
rev = "e96b81460b3ad11a7461934dcb7889ce5079f97f";
};
"wezterm/catppuccin".source = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "wezterm";
sha256 = "sha256-McSWoZaJeK+oqdK/0vjiRxZGuLBpEB10Zg4+7p5dIGY=";
rev = "b1a81bae74d66eaae16457f2d8f151b5bd4fe5da";
};
};
programs.zsh.initExtra = ''
if [[ "$TERM_PROGRAM" == "WezTerm" ]]; then
TERM=wezterm
source ${config.programs.wezterm.package}/etc/profile.d/wezterm.sh
fi
'';
})
];
}