2024-10-29 15:37:11 +00:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}: let
|
2025-01-21 15:45:42 +00:00
|
|
|
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 {
|
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-01-18 12:34:41 +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;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|