alqueva/hosts/shared/xonsh.nix

34 lines
710 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);
2024-10-29 15:37:11 +00:00
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;
};
};
};
}