Strange terminal behavior when using zsh

Questions, glitches, bugs and crashes
Post Reply
vxm5091
Posts: 3
Joined: Thu Jul 14, 2022 3:27 pm

Strange terminal behavior when using zsh

Post by vxm5091 » Thu Jul 14, 2022 3:38 pm

Hello, I recently started using Nimble Commander and I was drawn to it in large part because of its smooth interoperability with the terminal. I also use iTerm2 with zsh. After setting the NC shell to zsh, I get this strange behavior when using ls commands -- most rows are highlighted and the text is blinking at the same rate as the cursor. The only fix I see at the moment is to switch back to a bash shell. Anything I can do to make the terminal more consistent with iTerm2 and keep zsh?
Attachments
Screen Shot 2022-07-14 at 11.30.45 AM.png
Screen Shot 2022-07-14 at 11.30.45 AM.png (166.55 KiB) Viewed 1410 times

User avatar
mike
Posts: 991
Joined: Thu Jul 16, 2015 5:35 am
Location: Exeter, UK

Re: Strange terminal behavior when using zsh

Post by mike » Tue Jul 19, 2022 9:14 pm

Hi, could you provide any instructions on how to reproduce the issue?

vxm5091
Posts: 3
Joined: Thu Jul 14, 2022 3:27 pm

Re: Strange terminal behavior when using zsh

Post by vxm5091 » Tue Jul 26, 2022 3:41 am

Thanks for the response Mike, I can figure out a repro though that might be a bit tough since I have Oh my Zsh and Powerlevel10k customizations as well.

This might be a helpful datapoint -- when running

Code: Select all

ls
, it seems like the terminal doesn't have any permissions to any of the files (see screenshot), regardless of the folder I'm in. If i run it with

Code: Select all

sudo
, the strange blinking goes away. So it seems to be related to permissions, and I'm still having this issue in admin mode. Is there any other setting I can tweak on the permission front?
Attachments
Screen Shot 2022-07-25 at 11.35.13 PM.png
Screen Shot 2022-07-25 at 11.35.13 PM.png (4.7 KiB) Viewed 1332 times

User avatar
mike
Posts: 991
Joined: Thu Jul 16, 2015 5:35 am
Location: Exeter, UK

Re: Strange terminal behavior when using zsh

Post by mike » Sat Jul 30, 2022 9:33 pm

That's a really weird behaviour, I don't think it's actually about permissions. What does 'pwd' say?

vxm5091
Posts: 3
Joined: Thu Jul 14, 2022 3:27 pm

Re: Strange terminal behavior when using zsh

Post by vxm5091 » Fri Aug 19, 2022 5:17 pm

pwd shows the folder path as expected.

User avatar
mike
Posts: 991
Joined: Thu Jul 16, 2015 5:35 am
Location: Exeter, UK

Re: Strange terminal behavior when using zsh

Post by mike » Sat Aug 20, 2022 8:28 pm

Well, no ideas at this stage...
If you could reproduce the issue in a sterile environment and provide instructions on how to replicate it - I'd be glad to look it.

xxyxxyxyx1
Posts: 10
Joined: Sun Feb 24, 2019 5:28 pm

Re: Strange terminal behavior when using zsh

Post by xxyxxyxyx1 » Wed Sep 21, 2022 4:10 pm

I have the same problem of blinking text when listing files in the terminal using `exa`, and I have aliased `ls` to `exa with many flags`.

I do not get blinking when I use the actual`ls` command that ships with macOS:
`/bin/ls -l --color=always`

I also do not get blinking if I turn off the coloring for exa with `exa --color=never`.

So, at least for me, the problem is that the NC terminal cannot handle exa coloring. According to the exa website "it's designed for modern, 256-colour terminals, and it’s not shy about it!". NC also blinks when I try anything with `lsd`, another modern ls replacement.

It is an unfortunate limitation that the NC terminal TERM is `xterm-16color`. The built-in Terminal application upgraded to xterm-256color in 2010.

User avatar
mike
Posts: 991
Joined: Thu Jul 16, 2015 5:35 am
Location: Exeter, UK

Re: Strange terminal behavior when using zsh

Post by mike » Sat Oct 01, 2022 12:49 pm

Ah, that makes sense, thanks.
Yes, NC's terminal emulator is currently limited to 16 colours and doesn't try to parse the xtem-256color input, likely that causes the issue.
To confirm that it's possible to start NC from another terminal and enable VT100 debug via Alt-Click at Help->Print VT100 commands.
It will then print the terminal commands flow it "sees".

Post Reply