Oh yeah, and Nix has the advantage that you don’t need containers. If you want to run a graphical app in a container it might be tricky to access the window manager on the host system. Maybe that’s why you were setting up i3? Yeah, containers are great and flexible, but they also have a variety of downsides so Nix is better ;)
I’m gonna take a couple of stabs in the dark.
According to this Stack Overflow answer using
tee
can prevent the prompt from drawing which makes it appear that a script has not terminated. The answerer’s workaround is to put a very short sleep command after the tee command.If this is what happened to you maybe the reason the script works in bash but not in zsh is because you have different prompts configured in those two shells.
Another idea is to replace
tee
withsponge
frommoreutils
. The difference is thatsponge
waits for the end of stdin before it starts writing which can avoid problems in some situations.