eza-community / eza-community/eza

feat: Allow skip check if dir is full or empty for icons

Open
#1,002 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: filesystem area: icons area: performance type: feature
Dominant language
Rust
Stars
23.3k
Forks
523
PR merge metrics
No merged PRs in 30d

Description

I use Borg Backup. It can mount its repo with FUSE, and then you get a mountpoint directory with Borg archives as subdirs. However, accessing each directory is very time consuming, it takes me about a minute to `cd` or `ls` into one of them.

By using `eza --icons=always` when in the main mountpoint, `eza` freezes and even seems impossible to `ctrl+c`. I strongly suspect this is due to determining for each dir if a dir is empty or not, as they use different icons.

It would be beneficial to add a flag to `eza` that allows to skip this single check, and use the same icon for full and empty dirs. This would allow use cases like this to keep it aliased to `eza --icons=auto ...` while avoiding such performance penalties, by sacrificing a minor detail in dir icon.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing eza's icon rendering path and the directory emptiness check described in the issue. Determine where a command-line option would control that check, then verify that full and empty directories can share an icon when it is disabled and that existing icon behavior remains unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.