{ pkgs, ... }: let xonsh-direnv = ps: ps.buildPythonPackage rec { pname = "xonsh-direnv"; version = "1.6.1"; src = pkgs.fetchPypi { inherit pname version; hash = "sha256-Nt8Da1EtMVWZ9mbBDjys7HDutLYifwoQ1HVmI5CN2Ww="; }; }; xontrib-fish-completer = ps: ps.buildPythonPackage rec { pname = "xontrib-fish-completer"; version = "0.0.1"; src = pkgs.fetchPypi { inherit pname version; hash = "sha256-Kr1iolx6DxqgxVNtXwwfggkLrbH9BlilGAYZahvR+3Y="; }; patchPhase = "sed -i -e 's/^dependencies.*$/dependencies = []/' pyproject.toml"; }; in { # We need fish for fish completions programs.fish.enable = true; users.users.artemis.shell = "/run/current-system/sw/bin/xonsh"; programs.xonsh = { enable = true; config = '' $UPDATE_OS_ENVIRON = True xontrib load direnv fish_completer ''; package = pkgs.xonsh.override { extraPackages = ps: [ (xonsh-direnv ps) (xontrib-fish-completer ps) ]; }; }; }