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