alqueva/computers/shared/xonsh.nix

51 lines
1.3 KiB
Nix
Raw Normal View History

2024-10-29 15:37:11 +00:00
{
config,
pkgs,
lib,
...
}: let
cfg = config.alqueva.xonsh;
inherit (pkgs) fetchFromGitHub;
in {
options.alqueva.xonsh = {
enable = lib.mkEnableOption "xonsh";
};
config = lib.mkIf cfg.enable {
programs = {
xonsh = {
config =
"from xonsh.xontribs import get_xontribs\n"
+ lib.concatStringsSep "\n" (builtins.attrValues (builtins.mapAttrs (n: v: "aliases['${n}'] = '${v}'\n") config.environment.shellAliases))
+ ''
2024-11-02 17:48:54 +00:00
for xontrib in get_xontribs():
xontrib load @(xontrib)
2024-10-29 15:37:11 +00:00
execx($(zoxide init xonsh --cmd j), 'exec', __xonsh__.ctx, filename='zoxide')
'';
package = pkgs.xonsh.override {
extraPackages = ps: [
(let
name = "xontrib-fish-completer";
version = "0.0.1";
in
ps.buildPythonPackage {
inherit name version;
src = fetchFromGitHub {
owner = "xonsh";
repo = name;
rev = version;
hash = "sha256-PhhdZ3iLPDEIG9uDeR5ctJ9zz2+YORHBhbsiLrJckyA=";
};
})
];
};
enable = true;
};
};
environment.systemPackages = [
pkgs.zoxide
];
};
}