I’m trying to run bash with nix run on NixOS.
I’m using a command like this:
$ nix run nixpkgs.bash
I end up with a mostly-working bash, but some things are not working, like ansi-escape sequences and keyboard arrow keys.
In my normal bash login shell, I have a bash prompt that looks like the following:
me@my-hostname /some/path $
However, when I am the shell from nix run nixpkgs.bash, the ansi escape sequences don’t look like they are quite working. Here is what it looks like:
\[\]me\[\]@\[\]my-hostname \[\]/some/path \[\]$ \[\]
Also, when I am in the shell from nix run nixpkgs.bash, pressing an arrow key produces an escape on the screen like ^[[C, ^[[B, ^[[D, or ^[[A.
I assume this is a problem with terminfo, but I can’t figure out what could be going on. In both my normal shell, and my shell under nix run, I have the two environment variables set:
TERM=xterm-256color
TERMINFO_DIRS=/home/me/.nix-profile/share/terminfo:/etc/profiles/per-user/me/share/terminfo:/nix/var/nix/profiles/default/share/terminfo:/run/current-system/sw/share/terminfo
I’ve found the following thread talking about problems with terminfo stuff, but none of the solutions seemed to do anything for me (which makes sense, since it is about zsh…):
https://github.com/NixOS/nixpkgs/issues/19785
I should add that I don’t see this problem with nix-shell -p bash (although this is somewhat expected, since nix run and nix-shell are pretty different).
Also, here is my ~/.bashrc file, although I don’t think it is particularly related:
edit: Oh, and this is all on nixos-19.09:
- system:
"x86_64-linux" - host os:
Linux 4.19.84, NixOS, 19.09.1300.08e503bac6d (Loris) - multi-user?:
yes - sandbox:
yes - version:
nix-env (Nix) 2.3 - channels(root):
"nixos-19.09.1300.08e503bac6d" - channels(illabout):
"unstable-20.03pre202088.e89b21504f3" - nixpkgs:
/nix/var/nix/profiles/per-user/root/channels/nixos