Midnight Commander (MC for short)

What

MC is a terminal file manager based on Norton Commander for DOS. It's pane file manager, meaning that you have two panes open side by side that you work with. While intended to be used via (emacs inspired) keybindings, you can also use the mouse just fine.

After switching to using the terminal, I thought that file managers are just inferior alternative to the shell popularised by Windows/Mac users afraid to open the terminal. I used graphical file managers only to browse images or drag files between computer and android, because I was too lazy to learn how to do that via terminal. I disregarded MC and similar software as being just worse way to do what I already did in terminal, so I just ingored their existance.

Few weeks ago however, I saw an expierienced sysadmin use it while teaching, prasing it for being good. This surprised me, so I gave it a try and I kinda like it now.

Cool features

So what makes it good exacly? First of all, one thing file managers are better than shell at is mass operations on files. If you have a bunch of legally aquired films and you want co copy half of them to a USB stick for personal use only, it would take a lot of shell commands. In file manager, you just select the ones you want and do one mass operation. Sure, it is easier to operate files named in some pattern with shell, but for files with varying names, file manager is a nice thing to have.

Next nice thing are virtual filesystems, allowing you to view archive files as regular folders. You can also connect to server via FTP, SFTP or ssh/scp and work here like it's just another folder in your filesystem. This is nice for moving images to ^C.

You also have shell in your MC to do all the stuff shell is better at, so you don't lose anything by using it.

The panes themselves are also a nice things. While you can be in multiple places in filesystem at once with tmux, being able to operate between them is great.

Unlike a graphical file manager, where you are expected to have it always open, MC loads fast and you can just open it when needed, do one or two things and go back to your shell. This is why I prefer TUI applications over graphical ones.

It comes with it's own editor, but you can always switch to using $EDITOR. Mcedit is not my cup of tea, but if you don't want to learn vi motions, it seems like a reasonable editor (at least better than nano). It's nice that it is consistent with MC in both looks and UI.

Shortcomings

While you can swith the other pane to show file info or preview, it's unable to preview images via the kitty graphics protocol.

All the themes look bad with my kitty colorscheme based on the kanagawa nvim theme. In the end I just made my own MC theme to go with it. (put in your ~/.local/share/mc/skins)

Config

I like my keybindings to stay close to the defaults, but I did enable lynx-like motion in Options > Panel options. This allows me to use arrowkeys to move in directory tree. I also disabled Command prompt in Options > Layout. This means that if I start writing, it is taken as search instead of writing a command. I can still press <C-o> to switch to fullscreen termianl and back if I need to. I have also disabled internal view and edit in Options > Configure options, so that MC opens files in my $EDITOR (nvim) instead of mcedit.

Thoughts

Why don't we see more pane file managers? I guess it's because it was easier to implement the regular file manager and people got used to it. You want your default file manager to be one of the most intuitive parts of OS, so that even your grandma can figure it out, and pane file managers are not that good at it apparently. You can always open multiple windows, but you can't do quick operations on them and you can't just open them in the terminal on your server via ssh.

I also like the function keys now and I wish keyboards didn't put them extra space apart from the rest of the keys.