alqueva/hosts/shared/xonsh.nix

35 lines
707 B
Nix
Raw Normal View History

2024-10-29 15:37:11 +00:00
{
config,
pkgs,
lib,
...
}:
let
cfg = config.alqueva.shells.xonsh;
aliasesToPyDict =
aliases: lib.concatStringsSep "\n" (lib.mapAttrsToList (k: v: "aliases['${k}'] = '${v}'") aliases);
in
{
options.alqueva.shells.xonsh = {
2024-10-29 15:37:11 +00:00
enable = lib.mkEnableOption "xonsh";
package = lib.mkPackageOption pkgs "xonsh" { };
2024-10-29 15:37:11 +00:00
};
config = lib.mkIf cfg.enable {
programs = {
xonsh = {
config = ''
from xonsh.xontribs import get_xontribs
${aliasesToPyDict config.environment.shellAliases}
for xontrib in get_xontribs():
xontrib load @(xontrib)
'';
inherit (cfg) package;
2024-10-29 15:37:11 +00:00
enable = true;
};
};
};
}