[HN Gopher] Superfile - A fancy, pretty terminal file manager
       ___________________________________________________________________
        
       Superfile - A fancy, pretty terminal file manager
        
       Author : oidar
       Score  : 384 points
       Date   : 2024-05-10 13:27 UTC (1 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | teddyh wrote:
       | Why is this better than Midnight Commander or GNU Interactive
       | Tools?
        
         | hidelooktropic wrote:
         | There's not so much as a screenshot of MC on their official
         | page. Hard to say.
         | 
         | Did the author say their product was better?
        
           | yjftsjthsd-h wrote:
           | I think it's fair to ask of any new program why to use it
           | rather than an existing option. And there can be lots of
           | reasons - more active development, new features, less buggy,
           | smaller program (uses less disk/memory, easier to be less
           | buggy), easier to install, easier to use, whatever. And the
           | _author_ of a program doesn 't necessarily need to have an
           | answer, especially not early on; programming is sometimes its
           | own reward, and sometimes advantages only become obvious
           | later. But as a _user_ , yeah it's useful to know what
           | advantage this thing has over all the other things that do
           | the ~same stuff.
        
             | logrot wrote:
             | > why to use it
             | 
             | Of course. But that's not what he asked.
        
             | nine_k wrote:
             | I won't say that mc is really buggy, nor that it's large.
             | But even if it were, it's weird to not even mention it, let
             | alone compare with it, while likely most of the target
             | audience has been using mc for years (or decades, like me).
        
               | latchkey wrote:
               | > _or decades, like me_
               | 
               | Heh, I ported mc to Apple's A/UX back in the early 90's!
        
               | nine_k wrote:
               | Thank you! My first experience was building it from
               | source under Digital Unix (on an Alpha 264) in 1995.
        
       | camgunz wrote:
       | Is the author really only 16? Wow!
        
       | idunnoman1222 wrote:
       | Brew install superfile
       | 
       | Now guess what the executable is called...
        
         | fkyoureadthedoc wrote:
         | I _almost_ didn 't even try to figure it out after I installed
         | and the `superfile` command didn't work.
        
         | lsllc wrote:
         | Yes, I had the same question! (`spf` for the curious!)
         | 
         | EDIT: To be fair, right at the beginning of the tutorial is:
         | 
         | > First, if you want to open superfile by opening a terminal
         | and typing spf.
        
           | quesera wrote:
           | A symlink would be a good solution.
        
         | eddd-ddde wrote:
         | This happens to me quite often.
         | 
         | pacman -Ql <package> | grep bin
         | 
         | There must be similar commands for other package managers.
        
       | micklemeal wrote:
       | This looks pretty nice! I like the ability to add multiple file
       | panels versus tabs that are common with nnn and ranger. Going to
       | give this a spin today.
        
       | TheAmazingRace wrote:
       | Wow, this looks super slick! Kudos to the developer for a
       | fantastic little project!
        
       | qudat wrote:
       | Looks like it's using bubbletea, nice!
        
       | berzzz wrote:
       | Very nice!
        
       | schindlabua wrote:
       | Love all the terminal tooling that's come out in recent years.
       | I'm this close to chrome and rofi being the only gui I'm using on
       | my work machine. This looks great!
        
         | jjuel wrote:
         | Isn't the terminal program technically a GUI?
        
           | ghodith wrote:
           | Technically a TUI?
        
             | Hasnep wrote:
             | I think GP was referring to the terminal emulator, which
             | normally has the minimal GUI decorations depending on the
             | terminal emulator and your desktop environment.
        
         | hxegon wrote:
         | A lot of the new tooling is in Go, superfile included. Noticed
         | this after I started using LazyGit (incredible tool btw, I
         | can't go back to anything else even after being a die hard
         | Magit user for years)
         | 
         | There's some stellar libraries in Go for terminal stuff, in
         | particular anything from charmcli. They have an elm style TUI
         | framework called bubbletea (which superfile uses), a styling
         | library, prebuilt components, it's really incredible. I'm
         | building a multiplayer tetris you can play through ssh, which
         | is using bubbletea and another lib of theirs called wish.
         | 
         | they have a lot of stuff you can just use in regular shell
         | stuff too: https://charm.sh
        
           | leetrout wrote:
           | They are VC backed now which makes me wonder if they will do
           | a license switch later or something else to monetize...
           | 
           | https://news.ycombinator.com/item?id=38126060
        
             | medstrom wrote:
             | I don't know about Charm so maybe someone can check their
             | Github, but there's a dark pattern where you market
             | yourself as open source but not all your components are
             | actually released to the public, so you have a nice GitHub
             | icon on your front page that just leads to silly minor
             | extensions but not the main software. ObsidianMD does it.
        
               | mynameisvlad wrote:
               | Where does Obsidian claim they're open source? Where have
               | they ever done that? And no, having a GitHub icon does
               | not magically announce to the world "we are open source".
               | 
               | In fact, their license page makes it abundantly clear
               | they are not open source:
               | 
               | > We own and reserve rights to our content, including
               | text, images, and code in the app, which is protected by
               | copyright and other laws.
               | 
               | https://obsidian.md/license
               | 
               | I get this argument if a company or product claimed it
               | was open source and it wasn't, but it just doesn't work
               | if the product in question makes it quite clear they are
               | not, or even leaves it ambiguous.
        
               | medstrom wrote:
               | It may not be Obsidian's fault, but I know people who
               | were indeed surprised. And are you suggesting that people
               | normally click the license page?
        
         | snapplebobapple wrote:
         | For me its rofi and a tiny bar on top of (ne of my hyprland
         | windows for basic information (clock,calendar,widgets for
         | network/volume/screenbrightness) its awesome
        
       | copperbrick25 wrote:
       | Tried it out for a minute and it crashed because I had a broken
       | recursive symlink in my home directory:
       | 
       | 1. Create a recursive symlink to itself: `ln -s test test`
       | 
       | 2. open superfile and navigate to it.
       | 
       | 3. Observe crash
        
         | night_cat wrote:
         | Hey, thanks for the report, I fixed it!
        
       | kwhitefoot wrote:
       | "You can go to the latest release and download the binary file.
       | Once it is downloaded please excrate the file after that enter
       | the following in your terminal:"
       | 
       | Is excrate some new jargon meaning to take something out of a
       | crate? Or just a boring typo for extract?
        
         | night_cat wrote:
         | Just typo..
        
         | nine_k wrote:
         | It's a perfectly cromulent word. Let's use it more widely, and
         | it _will_ become a real word, like  "quiz" or "blog" have
         | become.
        
         | NikkiA wrote:
         | Or a typo for extricate
        
         | wegwerff wrote:
         | Typo for "execrate" meaning "invoke a curse on". If you find
         | the right spell to cast in your terminal, it will reveal its
         | contents to you.
        
       | kwhitefoot wrote:
       | $ spf spf: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34'
       | not found (required by spf) spf: /lib/x86_64-linux-gnu/libc.so.6:
       | version `GLIBC_2.32' not found (required by spf)
       | 
       | I'm on Linux Mint 19
        
         | mcbuilder wrote:
         | This is a linking issue (you're missing a specific version of a
         | dynamically linked standard library), and probably best in the
         | issues on the repo, not Hacker News.
        
         | antihero wrote:
         | They could build it with CGO_ENABLED=0, if they are using
         | Alpine, perhaps.
        
         | opheliate wrote:
         | An operating system from 2018 which is no longer maintained by
         | its vendor?
         | https://www.linuxmint.com/rel_tara_cinnamon_whatsnew.php
         | 
         | I think it's somewhat unreasonable to expect software released
         | today will necessarily work on your environment without some
         | legwork.
        
           | isopede wrote:
           | Is it though? I can run Windows programs from 20 years ago on
           | my Windows machine just fine.
           | 
           | Issues with Linux binary distribution meanwhile are
           | ubiquitous, with glibc probably being the single biggest
           | offender. What's worse is that you can't even really
           | statically link it without herculean effort. I've spent an
           | inordinate amount of my life trying to wrangle third-party
           | binaries on Linux libraries and it's just a sorry state of
           | affairs.
           | 
           | Try taking a binary package from a vendor from even just 5
           | years ago and there's a non-zero chance it won't run on your
           | modern distro.
        
             | donio wrote:
             | You are talking about backward compatibility, the parent
             | thread is about forward compatibility. You won't have much
             | luck running a modern executable on XP unless the vendor
             | went out of their way to make that happen.
             | 
             | > What's worse is that you can't even really statically
             | link it without herculean effort.
             | 
             | The program we are discussing happens to be written in Go
             | so it's trivial to build a statically linked executable.
        
               | worthless-trash wrote:
               | Are you sure you want glibc statically linked into your
               | go executable ?
        
               | donio wrote:
               | glibc won't be used at all.
               | 
               | With Go on Linux libc is only needed when the libc DNS
               | resolver is used (instead of Go's built-in one) or if C
               | libraries are used. superfile doesn't need either of
               | these so it's very simple to build it as a pure Go
               | executable which will be statically linked and contain no
               | C code at all.
        
             | qwery wrote:
             | It's an interesting comparison. I agree that five years is
             | well within the expected period of viability of an
             | operating system. Some points to consider:
             | 
             | - any given release of a Linux distro will probably work on
             | hardware released five years earlier -- one factor that
             | reduces the cost of upgrading the OS (there are many more
             | obvious factors)
             | 
             | - Microsoft is highly motivated to get customers to upgrade
             | to the new Windows at the time. The legacy support is well-
             | known as a "bone" (or: "a factor that reduces the cost of
             | upgrading the OS")
             | 
             | - binary backwards/forwards compatibility is less of an
             | issue in an environment that doesn't treat source code as a
             | secret
             | 
             | - why run old versions of software? In other words: xterm
             | is older than Windows and also as new as Windows
             | 
             | Also, I've always found it amusing that I have much less
             | trouble running old windows software on a Linux (wine) than
             | on new versions of windows.
        
         | colatkinson wrote:
         | Your version of glibc is too old. Mint 19 is based off Ubuntu
         | 18.04, which ships glibc 2.27, whereas this binary seems to
         | require symbol versions first shipped in glibc 2.34.
         | 
         | You'll have to compile from source, or update your distro to a
         | maintained version. Ubuntu 22.04 ships glibc 2.35, and so Mint
         | 21 should work.
         | 
         | Mostly commenting because while this isn't really a tech
         | support channel, being able to identify glibc version mismatch
         | errors comes up _extremely_ often, even in this day and age.
        
       | anta40 wrote:
       | Very cool. Seems like a revamped version of Midnight Commander.
       | Let me try..
        
       | lupusreal wrote:
       | Looks very swanky. Not sure if I'll replace ranger but this is
       | definitely a contender.
        
       | srwest wrote:
       | If didn't read the docs, noticed hkjl moved around, and
       | accidentally deleted 3 folders with ctrl+d seeing if I could
       | scroll down faster. Scary defaults if you have Vim muscle memory.
        
         | likeclockwork wrote:
         | Holy shit, thanks for the warning.
        
         | patwie wrote:
         | These key-bindings are pure evil for vim users.
        
         | gouggoug wrote:
         | Even for non-vim users this default is absolutely horrendous
        
         | StrLght wrote:
         | So there's no confirmation for deletion? Oof, that's probably
         | the most unsafe default I have seen in a while.
        
           | night_cat wrote:
           | There will be a prompt for complete deletion, but there will
           | be no prompt for putting it in the trash can.
        
         | godelski wrote:
         | It really weirds me out how many people use a sprinkling of vim
         | keybindings but don't use more. Like how many vim users don't
         | know <C-[> (esc) or contextual completion like <C-x><C-p>
         | (:help ins-completion). I see so many people use plugins for
         | things that already exist in vim but people never discuss.
         | 
         | One that bites me a lot is when a vim keybinding is
         | implemented, has insert mode, and they don't also rebind <C-w>.
         | Go from trying to delete a word (backwards) but end up losing a
         | whole session. It's such muscle memory I sometimes do it on
         | webpages, but maybe that one is a feature instead of a bug lol
        
           | jez wrote:
           | This is my biggest complaint with keybindings on
           | Linux/Windows, that Ctrl means "escape codes" in terminal
           | emulator applications and "window/UI operations" in every
           | other application.
           | 
           | By contrast, in macOS all the window/UI keybindings are
           | typically Cmd (Cmd-W) which means that GUI applications
           | attempting to layer on vi keybindings don't have to also
           | audit all the Ctrl keybindings that might be doing something
           | wildly different compared to what vi users expect.
           | 
           | Cmd for UI and Ctrl for terminal just makes for such a nice
           | default convention.
        
             | mikepurvis wrote:
             | I agree-- having switched back to Windows five years ago,
             | this is one of the biggest things I miss about the Mac
             | hardware. Having a separate key just avoids the whole drama
             | around whether Ctrl-C is "copy the thing" or "shut it all
             | down", and which of those functions is going to get
             | remapped to Ctrl-Shift-C and all the fallout from that.
        
             | sshine wrote:
             | Configurable windows managers on Linux let you code a
             | "super" key. I like the Window key, since it serves no
             | other purpose, and never overlaps with default bindings on
             | Linux.
             | 
             | So the Cmd/Ctrl split on Mac maps nicely to the Win/Ctrl
             | split on Linux.
        
               | godelski wrote:
               | While I do this too I understand the above complaint. I
               | think naturally linux should have more of a system
               | similar to what OSX does. I mean I'm constantly switching
               | between OSX and Linux machines but more and more recently
               | I've been at at mac computer while inside a linux system
               | and that is very seemless because it is the GUI that
               | fucks shit up. But now there's so much momentum that I'm
               | not sure they can go back. I think the only way to make
               | this correction is for a big distro like
               | Ubuntu/Pop/Manjaro/Endeavor to switch to a default with
               | alt or super as they windowed operating key but have the
               | option to switch back (should be implemented in the
               | install process and made clear and easy to undo. But
               | without making it the default it'll always stay the other
               | way. (first introduction should be non-default)).
        
               | opan wrote:
               | Super _is_ the  "Windows" key (or the Command key), it's
               | the "mod key" that can then be set to super or alt/meta
               | or whatever.
               | 
               | For the reasons you suggest (WMs often heavily using the
               | super key), I would not want it to be used in the macOS
               | way as I have a few dozen keybinds I'd lose or have to
               | remap then. Stuff like focusing or moving windows or
               | workspaces. Emacs can also make use of the super key,
               | though I don't know if it has anything bound using it by
               | default.
               | 
               | The macOS approach is cool and makes some sense, but I
               | wouldn't want it forced on me, and I'm kinda glad I
               | didn't imprint on it.
        
             | medstrom wrote:
             | When you use EXWM (Emacs X Window Manager), this is
             | actually a blessing! It means you can bind Super keys only
             | in Emacs and have them do exactly the same thing every
             | time, while the other X apps (terminals, browsers...) get
             | the Control key to themselves.
        
             | likeclockwork wrote:
             | This isn't true though. Control + arrow keys for example
             | navigate desktops on MacOS. On Linux I can at least
             | restrict my desktop environment's shortcuts to super,
             | leaving the other mods open for applications. MacOS uses
             | every single modifier, sometimes together.
        
           | moelf wrote:
           | >and they don't also rebind <C-w>. Go from trying to delete a
           | word (backwards) but end up losing a whole session
           | 
           | This is literally why Vim binding for Jupyter doesn't work
           | for me and also why the "terminal" in Jupyter Lab is worse
           | than not existing -- I can't help but press C-w
        
           | slim wrote:
           | we old vi users don't use key combinations, that's an emacs
           | thing :)
        
             | godelski wrote:
             | I don't think old means better. I agree that you should use
             | whatever is best for you and makes you more productive (why
             | I doing care about vim vs emacs debates) but I think you're
             | giving up a lot. You're given and unless color blind then
             | you are missing the added dimensions you searching with
             | things like syntax highlighting. All your commands exist in
             | vim, but come on, you've had the last 33 years to update.
             | My configs update as I change too, so I hope that you
             | aren't stuck because I don't like vi for the same reason I
             | don't like GUIs: not all holes are round and not all pegs
             | are square.
        
         | night_cat wrote:
         | Btw, this is not actually deleted, but put in the trash can.
         | 
         | But it seems that this hotkey is not good for many people. It
         | may be changed in the next version. Thanks for your feedback.
        
           | ghostly_s wrote:
           | I use a number of apps where ctrl-d is a common non-
           | destructive shortcut, and can't recall ever encountering one
           | where it was used for delete.
        
             | 2024throwaway wrote:
             | k9s does a delete for ctrl+d
        
               | gray_-_wolf wrote:
               | With a prompt, asking for confirmation if I recall
               | correctly...
        
           | opan wrote:
           | In ranger, dd is cut/mv and dD is delete, but dD on one file
           | spawns a command with :delete typed in so you have to hit
           | enter to pull the trigger, and doing it with multiple files
           | has the same behavior plus adds a y/N prompt asking if you're
           | sure you want to delete those specific files. This is enough
           | friction to prevent most mishaps, but not enough to be
           | annoying. I would suggest taking inspiration from this.
        
           | behnamoh wrote:
           | How do I undo CTRL-d deletes? I almost deleted all my home
           | dir...
        
             | night_cat wrote:
             | I am so sorry to hear about that:(
             | 
             | You can go to "~/.local/share/Trash" all files that you
             | deleted are at there
        
         | luqtas wrote:
         | what's even the point of downloading something so banal & not
         | read the docs; comment at the post WITH the warning of it not
         | complaining with Vim shortcuts when it's clear that Emacs is
         | ballparks better? /s
        
         | twobitshifter wrote:
         | Yes those defaults won't really work for vim. Escape exits the
         | program, without even using it, I already know I am going to
         | exit a zillion times once my brain thinks I am in Vim.
         | 
         | But the good thing is they are just defaults. Hopefully there
         | are already no legions of users resistant to any changes to
         | defaults.
        
         | tmtvl wrote:
         | I used vim for 5 years and never knew about C-d for scrolling
         | until after I had switched to Emacs and one day, on a whim,
         | decided to install and activate evil and look what various
         | commands were bound to. I removed evil immediately afterwards
         | as 5 years of vim taught me to hate modal editing with a
         | passion.
        
       | 3523582908 wrote:
       | gorgeous!! did you build the ui yourself or did you use a package
       | to help? how did that go?
        
         | paranoidxprod wrote:
         | Seems like they're using Bubble Tea, a Terminal UI framework
         | for Go. I've heard very good things about it and have been
         | meaning to check it out.
         | 
         | https://github.com/charmbracelet/bubbletea
        
           | Cu3PO42 wrote:
           | The same project has an application called Gum which exposes
           | primitives from their UI framework via a single CLI binary.
           | It's intended to be used from a normal bash script and I've
           | found it really quite pleasant to use.
           | 
           | For example, you could write 'gum choose foo bar baz' to get
           | a nice picker over the three provided options.
           | 
           | Their repo has a ton of examples:
           | https://github.com/charmbracelet/gum
        
       | safetytrick wrote:
       | With a dependency on a font. Wow, it's been a while since I've
       | seen that.
        
         | explosion-s wrote:
         | Fairly commonplace for TUIs that use icon. Tons of vim plugins
         | rely on NerdFonts (A regular monospace font that also includes
         | tons of icons)
        
           | apitman wrote:
           | Is there any technical reason the font can't be shipped in
           | the binary and installed automatically?
        
             | wpm wrote:
             | Which font? What license? Which one does the user want?
             | 
             | Where does it get installed? Will the user consent?
             | 
             | I did not use a Nerd Font until I tried superfile out
             | today. It was not hard to build my own nerd font version of
             | Berkeley Mono with font forge.
        
               | medstrom wrote:
               | Besides, you still have to set your terminal to use that
               | font. Not as if typing `spf` on the command line can
               | reconfigure whichever terminal you are on.
        
               | apitman wrote:
               | I very well might be in the minority of Linux users, but
               | I don't particularly care about the answers to most of
               | these questions. I just want it to work. Give me solid
               | defaults[0]. I'm not saying you shouldn't be able to
               | override those defaults. That's an important feature of
               | Linux.
               | 
               | My first experience running a cool-looking TUI file
               | manager yesterday (I actually ended up trying yazi first)
               | was that I got a lot of blank squares in place of missing
               | icons and emojis due to missing fonts. I had to spend 20
               | minutes figuring that out before I got a good experience.
               | 
               | Interestingly, I also tried wezterm[1] in the process. It
               | actually ships with the required fonts as fallback, but
               | the version from my distro's package manager didn't work
               | (the AppImage did). I'm guessing my distro removed them,
               | maybe for some of the reasons you cited. I started
               | installing the nerd-fonts group for my distro. 6.5GB...
               | no thanks. After manually poking through them and some
               | googling I finally installed a couple and it's working
               | now.
               | 
               | My overall point is that it's possible for app developers
               | to provide good defaults like wezterm does. It's also
               | possible for distro's to break those defaults. Also, if
               | size is a concern then at least detect that I don't have
               | a working font and offer to download one for me.
               | 
               | [0]: https://blog.codinghorror.com/the-power-of-defaults/
               | 
               | [1]: https://wezfurlong.org/wezterm/
        
               | pinusc wrote:
               | Regardless of wanting sane defaults, this is not
               | something superfile can do on itself: it runs in a
               | terminal, and normally terminal programs do not get to
               | choose what font is used.
               | 
               | So the "best" it could do is bundle the font file, but
               | then you would still have to configure your terminal to
               | use it. At that point, it's easier to just tell you you
               | need a nerd font and link to their repo.
               | 
               | That being said, I kind of agree that, since NerdFonts
               | are pretty good and by now quite widespread, it wouldn't
               | be a bad idea for major distros to patch their default
               | monospace fonts so that you get NerdFonts out of the box
               | in the default terminal.
               | 
               | But, in general, if you go out of your way to install a
               | different terminal emulator, it's unlikely you'd have
               | much trouble changing its font anyway; still, getting
               | everything to look nice and pretty is sometimes harder,
               | so I suppose wezterm is commendable for including fonts
               | and colorschemes.
               | 
               | (The above really mostly applies to fonts as they are an
               | additional dependency and also highly dependent on user
               | preference. For pretty much everything else I agree that
               | good defaults are under-emphasized in CLI/TUI utilities.
               | Probably because options usually get added incrementally
               | and breaking historical defaults is not a good idea.)
        
               | apitman wrote:
               | Would it be possible for the program to detect that the
               | current font doesn't support all the features you need
               | and tell you?
        
       | terminaltrove wrote:
       | superfile looks great, we have this listed on the trove (1) for
       | other package managers, we love what's been done recently in the
       | terminal / tui space.
       | 
       | I encourage also supporting the author as well on their ko-fi
       | page for a new laptop. (2)
       | 
       | 1. https://terminaltrove.com/superfile/
       | 
       | 2. https://ko-fi.com/night_cat
        
         | night_cat wrote:
         | Thanks you so much,I really like terminal trove!
        
         | pandemic_region wrote:
         | Thanks for the terminal trove tip ! Subscribed.
         | 
         | I feel the market is ripe for a terminal ide again. Anything
         | interesting going in in that space?
        
           | terminaltrove wrote:
           | We think so too, as an example there is harlequin, a
           | beautiful terminal based SQL IDE.
           | 
           | https://terminaltrove.com/harlequin/
           | 
           | https://harlequin.sh/
        
       | gigatexal wrote:
       | play this is very pretty
        
       | insane_dreamer wrote:
       | Looks nice! Not sure if it's enough to pry me away from MC, but
       | worth a look.
        
         | insane_dreamer wrote:
         | very first impression after <30 sec: having to press ^F or any
         | key to enable filename/folder search in a folder creates
         | friction vs. MC's approach where typing automatically starts
         | search of current folder so you can hit a couple of keys, press
         | enter, etc. Would be nice if that were a mode here too.
        
           | sooheon wrote:
           | This type-to-search-immediately functionality is why I still
           | have Launchbar installed on all my Macs -- there's nothing
           | faster for navigation/moving/operations, even in the
           | terminal.
        
       | godisdad wrote:
       | Dope. Reminds me of far.exe
        
       | swozey wrote:
       | This reminds me of a Windows 3.5 app called List (IIRC) that one
       | day I lost the floppy to and as a 7 year old kid was completely
       | lost without. So I installed bsd and broke my dads computer
       | instead.
        
       | anigbrowl wrote:
       | brew install superfile       (ok)       superfile       (not
       | found)       find superfile       (not sound)       cd
       | /usr/local/Cellar/superfile/1.1.2/bin       ls       spf
       | 
       | This is mentioned in the tutorial but it's probably worth
       | mentioning in the install section to save people 5-10 minutes of
       | confusion. Once I found the filename I loved it.
        
         | medstrom wrote:
         | Or even provide superfile as an alias which prints a message
         | saying "you can also call it as spf", once a day. People don't
         | read install sections.
        
       | wkrsz wrote:
       | I'm waiting for preview feature:
       | https://github.com/MHNightCat/superfile/issues/26
       | 
       | Fortunately it's now on top of the to-do list:
       | https://github.com/users/MHNightCat/projects/4/views/1
        
       | qwertox wrote:
       | This did send me down a rabbit hole, and I ended up installing
       | nnn (n3), only then to land on their GitHub page and staring at
       | the keyboard layout and testing stuff out in the terminal. It is
       | interesting and I wonder how it's getting used.
       | 
       | [1] https://en.wikipedia.org/wiki/Nnn_(file_manager)
        
       | necrotic_comp wrote:
       | so I don't understand what the usecase for a terminal file
       | manager is. I've always felt comfortable using cp/mv/mkdir/etc.
       | but I feel like I'm missing out. Can someone explain how and why
       | you'd use this ?
        
         | wonger_ wrote:
         | Three advantages I realized, having done a lot of
         | cd/ls/cp/mv/rm and also having used a file manager:
         | 
         | - power user workflows may differ from typical dev workflows.
         | Imagine things that a point-and-click file manager solves
         | quicker than the command-line. Example: manually organizing a
         | bunch of .mp3s, or cleaning out misc downloads. A TUI file
         | manager makes these tasks quicker too.
         | 
         | - quick directory navigation. cd is slow. There's solutions for
         | a better cd, involving z or fzf or whatever. But a file manager
         | should solve it too.
         | 
         | - a file manager, especially a two-pane view, is cognitively
         | easier. Better UX. Example: Having a src/ pane on one side and
         | dst/ on the other, selecting a few src/ files, then performing
         | a copy command. You get instant visual feedback to confirm that
         | the files appeared in dst/. Compared to ls, cp file1 file2
         | file3 dst/, ls dst/. I always feel the need to ls after
         | commands because the command-line doesn't give much feedback.
         | 
         | tldr: speed, ux, comfort. But if you're already comfortable
         | with your tools, I think that's the most important thing.
        
           | necrotic_comp wrote:
           | Thanks. That makes sense. I guess I'm just super entrenched -
           | very comfortable with my tooling and would generally write a
           | one-liner for something like the above.
           | 
           | The way I do it is a bit nuts though, and you're right, the
           | above is much more consistent and has its advantages
        
           | bregma wrote:
           | Hardly speed or UX. Type a quick command on the CLI yo do any
           | of that stuff and it's finished before you can even use you
           | arrow keys to move between various regions of the screen and
           | move your eyes around the work area to confirm everything and
           | select your actions and move your gaze again to confirm the
           | result is what you expect.
           | 
           | It's all about what you're used to and what you know. If you
           | grew up in the age of the point-and-click GUI you might feel
           | more comfortable using visual metaphors and stateful UIs for
           | your intended actions. Others prefer to issue orders and have
           | them obeyed without the song, dance, and lightshow.
        
             | wonger_ wrote:
             | I agree that looking around multiple panes is slow and
             | arrow keys are slow, and that typical UI ceremony is
             | unnecessary. But there's a benefit to seeing state changes
             | and holding less state in your head. Kinda like `ed` versus
             | `vim`. Someone comfortable with both editors would
             | acknowledge vim makes some edits easier.
             | 
             | Of course, issuing orders still has its advantages. And
             | yes, growing up with GUIs makes a big difference.
        
         | massysett wrote:
         | With long filenames with characters like spaces, it can be
         | easier to see them in a list, pick the ones you want, and
         | operate on them in a GUI or TUI (same principle applies to
         | Emacs Dired) than in a CLI. I can use the CLI and stumble
         | around running ls multiple times and using tab completion, but
         | the GUI or TUI can just be easier.
        
       | fernly wrote:
       | My goodness but there is a whole lot of these! (Found the below
       | table from the Nnn wiki page, mentioned above.)
       | 
       | https://en.wikipedia.org/wiki/Comparison_of_file_managers
        
         | baobun wrote:
         | For anyone else (considering) switching file manager: Check if
         | it depends on the gvfs package or not. You either want it
         | (virtual filesystem support, stuff working "out of the box",
         | background daemon, DE integrations) or you don't.
         | 
         | So there's one factor to cut the search-space in ~half :)
         | 
         | I'm recently trying out worker[0] and so far it's great.
         | 
         | [0]: http://www.boomerangsworld.de/cms/worker/index.html
        
       | monopoliessuck wrote:
       | This looks neat, but has a lot going on.
       | 
       | I really like how minimalist yet extensible lf [0] is and just
       | use edir [1] to rename files in bulk. Gluing them both together
       | is really easy too.
       | 
       | - [0] https://github.com/gokcehan/lf
       | 
       | - [1] https://github.com/bulletmark/edir
        
       | christophilus wrote:
       | I love that there are a lot of great options in this space. This
       | one looked nice due to its selection pane: https://xplr.dev/
        
       | sneak wrote:
       | The first thing this app does is connect to Microsoft servers to
       | download theme files, which for some reason aren't bundled into
       | the binary. If you block it from accessing the internet, it
       | crashes.
        
         | friend_and_foe wrote:
         | That's pretty bad for a terminal utility and file manager. The
         | thing should never, ever connect to the internet for anything
         | unless explicitly told to by the user. I didn't notice this,
         | thanks for pointing it out.
        
           | sneak wrote:
           | Why is that the standard for a terminal utility and not GUI
           | software? Why do we accept GUI software that does update
           | checks and phone-home telemetry without configuration or
           | consent?
           | 
           | I'm really curious about this, not to derail the thread.
        
         | night_cat wrote:
         | Hey thanks for your feedback I just update it to make it a
         | optional! Now you can by typing command to download all themes.
        
       | shdisi wrote:
       | I tried this out and within a few minutes had delete a few
       | directories. Luckily I was in a git repo but I still immediately
       | uninstalled this
        
         | stefandesu wrote:
         | When did you try it and do you have an idea why it could have
         | happened? I'm simply curious about it, but this doesn't sound
         | great. I found this issue [1] which should have been fixed in
         | version 1.1.1 [2].
         | 
         | [1]: https://github.com/MHNightCat/superfile/issues/72 [2]:
         | https://github.com/MHNightCat/superfile/releases/tag/v1.1.1
        
       | friend_and_foe wrote:
       | Just tried this out...
       | 
       | Looks nice. I dig the nerd font thing, I'd never used them
       | because all of my TUI stuff is ncurses and the like, it's a nice
       | thing to be able to do. I like the outline. I don't like a few
       | things.
       | 
       | - Ctrl keys galore. I'm partial to vim keys, a lot of the
       | keybinds on here are vim style, why not make it all of them?
       | 
       | - some of the defaults are weird or potentially dangerous.
       | There's no confirmation for deletion for example, PageUp and
       | PageDown don't work, cursor auto wraparound is a little confusing
       | for something like this, and the cursor isn't a highlight, just a
       | >.
       | 
       | - Bubbletea always seem to have a minimum terminal size which
       | drives me nuts. Btop and other programs I've used have this
       | problem.
       | 
       | All in all I like the ability to open multiple panes, the ability
       | to open network drives, see ongoing/completed processes and see
       | the clipboard. I find I virtually never need more than two panes
       | though, and there are plenty of CLI utilities for FTP and stuff.
       | I'm probably going to stick with an old school dual pane like
       | vifm or MC. I'll keep this on my machine and test it out some
       | more next time I need to connect to an ftp server or something, I
       | like that it provides most of the functionality that graphical
       | file managers like Nautilus have, I do miss some of that stuff in
       | my terminal oriented environment, but not enough to go full
       | mouse, so it's good to know I have an option that gives me some
       | of both.
        
       | Iwan-Zotow wrote:
       | Does it work in Windows terminal? Any good?
        
       | opan wrote:
       | Based on the comments here about weird inconsistent keybinds and
       | accidental file deletions, I won't be trying this for now, but I
       | will keep an eye on it. I use ranger very heavily every day, but
       | it being slow pythonware is sometimes a problem with extra large
       | dirs and when changing the sort mode often. lf is too barebones
       | for me, I don't know how to recreate everything I'm used to from
       | ranger. Something fully-featured but faster than ranger would be
       | ideal.
       | 
       | If you're taking suggestions, making file copies use rsync under
       | the hood would be great. I used to copy files over sshfs with
       | ranger a lot and then found out the hard way that it was
       | occasionally failing/being interrupted and then silently moving
       | on in the transfer queue, so I had partial and corrupted video
       | files it took months to notice. I do also use rsync for transfers
       | a lot of the time, but sometimes you wanna move a bunch of files
       | to different directories, and something like ranger is just
       | faster and easier. Especially when you don't want everything from
       | the source on the destination for space reasons, so can't just
       | rsync whole dirs to grab the new stuff.
        
         | sudddddd wrote:
         | As an alternative to ranger, I have switched to yazi
         | completely.
        
           | behnamoh wrote:
           | yazi is written in Rust. Holy shit, this is the 10th app I
           | try that's written in Rust and all of them are super fast and
           | snappy!
        
       | LAC-Tech wrote:
       | What is a "nerd font" and why does this app need one?
       | 
       | (Yes I know I could look it up but maybe this will spark a
       | discussion)
        
         | wormius wrote:
         | Nerd Fonts contain glyphs that allow things like the git strip
         | you see at the bottom of code editors ("powerline"), along with
         | ligatures (e.g. if you type <= it merges so it looks more like
         | the math symbol of a less than sign and a single line at the
         | same angle just below the < sign...)
         | 
         | https://www.nerdfonts.com/
         | 
         | And here's an example of ligatures (see the image on the right
         | - you type what's on the left, and the right image is what
         | shows in your editor): https://hilton.org.uk/blog/fira-code
         | 
         | I think but am not sure as I haven't looked in a while, that
         | the folder and file icons are part of the nerdfonts as well,
         | that regular fonts would just show as the generic "missing
         | glyph" symbol.
        
           | apitman wrote:
           | Are there any terminals that ship with nerd fonts, or is it
           | always something that has to be at the OS level?
           | 
           | Is there any technical reason the font can't be shipped in
           | the binary and installed automatically?
        
             | globular-toast wrote:
             | On Linux you can just chuck fonts in .local/share/fonts in
             | your home directory. You can keep them in folders in there
             | so just unzip the whole nerdfont archive there.
        
             | qwery wrote:
             | There's no technical reason the font couldn't be shipped
             | in/with the binary. The main reasons this doesn't happen
             | are probably:
             | 
             | - this is what a package manager is for
             | 
             | - _installing_ the font /s (from the application?) would be
             | a bit of a dick move and also presents a technical
             | challenge (in other words: that's what a package manager is
             | for)
             | 
             | - concerns about the efficiency of many applications all
             | shipping duplicate assets (package manager again)
             | 
             | - concerns about distribution rights
             | 
             | - not all users will want to use the same font and this is
             | an unsolvable problem -- do you ship: no fonts | one
             | unwanted font | the user's preferred font that they already
             | have installed plus all the other user's fonts
        
               | apitman wrote:
               | > this is what a package manager is for
               | 
               | My first experience running a cool-looking TUI file
               | manager yesterday (I actually ended up trying yazi first)
               | was that I got a lot of blank squares in place of missing
               | icons and emojis due to missing fonts. I had to spend 20
               | minutes figuring that out before I got a good experience.
               | 
               | Interestingly, I also tried wezterm[1] in the process. It
               | actually ships with the required fonts as fallback, but
               | the version from my distro's package manager didn't work
               | (the AppImage did). I'm guessing my distro removed them,
               | maybe for some of the reasons you cited. I started
               | installing the nerd-fonts group for my distro. 6.5GB...
               | no thanks. After manually poking through them and some
               | googling I finally installed a couple and it's working
               | now.
               | 
               | My overall point is that it's possible for app developers
               | to provide good defaults like wezterm does. It's also
               | possible for distro's to break those defaults.
               | 
               | > not all users will want to use the same font and this
               | is an unsolvable problem -- do you ship: no fonts | one
               | unwanted font | the user's preferred font that they
               | already have installed plus all the other user's fonts
               | 
               | For me, I would absolutely prefer one unwanted font
               | instead of losing those 20 minutes. If I don't like the
               | font it ships with I should be able to override it. If
               | size is a concern then don't ship the font, but detect
               | that I don't have a working one and offer to download a
               | default for me.
               | 
               | [0]: https://blog.codinghorror.com/the-power-of-defaults/
               | 
               | [1]: https://wezfurlong.org/wezterm/
        
       | bomewish wrote:
       | Started with nnn, switched to yazi -- it's amazing. Any other
       | solution would have to be incredibly good to switch.
        
       | coppsilgold wrote:
       | It appears to require network access. A file manager should not
       | be dialing anything, especially not on startup.
       | Error downloading theme: Get "https://github.com/MHNightCat/super
       | file/raw/main/themeZip/v1.1.2/theme.zip": dial tcp: lookup
       | github.com on 8.8.8.8:53: dial udp 8.8.8.8:53: connect: network
       | is unreachable
        
         | night_cat wrote:
         | This is theoretically only needed the first time a new version
         | is used and its purpose is to download the themes.
        
         | night_cat wrote:
         | Hey thanks for your feedback I just update it to make it a
         | optional! Now you can by typing command to download all themes.
        
       | slmjkdbtl wrote:
       | I find most ergonomic to write file manager as a vim plugin, I
       | can just open things directly as buffers, only need to hit one
       | key to toggle between file editor and file manager.
        
       | courseofaction wrote:
       | Looks awesome, but it's hard to use intuitively without hotkeys
       | on screen.
        
       ___________________________________________________________________
       (page generated 2024-05-11 23:01 UTC)