1
0
Fork 0
dotfiles/home/programs/wezterm.nix
2023-10-02 11:38:32 +02:00

58 lines
1.3 KiB
Nix

{ pkgs, config, ... }:
let
wezterm-pkg = pkgs.wezterm;
wezterm-nushell = pkgs.writeShellScript "wezterm-nushell.sh" ''
source /etc/static/bashrc
source ${config.home.sessionVariablesPackage}/etc/profile.d/hm-session-vars.sh
exec ${pkgs.nushell.outPath}/bin/nu
'';
in
{
programs.wezterm = {
enable = true;
package = wezterm-pkg;
extraConfig = /* lua */ ''
_G.shells = {
bash = '${pkgs.bash.outPath}/bin/bash',
fish = '${pkgs.fish.outPath}/bin/fish',
nushell = '${wezterm-nushell}',
};
_G.programs = {
btop = '${pkgs.btop.outPath}/bin/btop',
};
local cfg = require('config');
return cfg
'';
};
xdg.configFile."wezterm" = {
source = pkgs.runCommand "wezterm-fennel-files"
{
nativeBuildInputs = with pkgs; [ lua53Packages.fennel stylua ];
} ''
mkdir -p $out
config_store_path="${../config/wezterm}"
fennel="fennel --use-bit-lib --compile"
echo "Using fennel command: $fennel"
# Change PWD to config directory
cd "$config_store_path"
# Config
echo "Compiling config.fnl ..."
$fennel "$config_store_path/config.fnl" > "$out/config.lua"
stylua "$out/"
'';
recursive = true;
};
}