elsa in mac

Yazi 파일 메니저에서 Icon과 파일 및 폴더 text가 붙어서 보기가 불편한가요 ? 본문

Terminal

Yazi 파일 메니저에서 Icon과 파일 및 폴더 text가 붙어서 보기가 불편한가요 ?

elsa in mac 2025. 1. 12. 17:08

Yazi는 터미널 에뮬레이터에서 사용할 수 있는 여러 File Manager중 최근 주목받는 CLI 앱 입니다.

속도, 사용 편의성, Preview, Plugin을 통한 기능확장 및 Custom 등 모든 면에서 흠 잡을때 없이 만족스러운 File Manager 입니다 만, 딱 하나 흠이라면.. Nerd Font 아이콘 중 일부가 File 및 Folder 명과 너무 가까이 붙어서 표시되는 불편함이 있습니다.

좀 더 확대를 해 보면,

그렇죠.. 몇몇 Icon들이 길어서 폴더 명과 붙어 있는 것들이 보입니다.

결국, Text 기반이기 때문에 아이콘과 텍스트 사이에 이격을 늘리려면 space 한 칸을 더 넣어줘야 합니다.  그러기 위헤서는 source 코드를 변경해야 합니다.  

해당 부분은 yazi/yazi-plugin/preset/component/entity.lua 파일을 열고, Entity:Icon() 함수 부분을 수정해야 합니다.

위의 스샷에서 보는 바와 같이 Entity:icon() 함수 부분의 두 부분을 보면 space가 한 칸(space)으로 되어 있는데, 이 부분을 두 칸으로 늘려 주면 됩니다.

자 그럼, 이것을 어떻게 젹용을 하느나..  두 가지 방법이 있습니다.

첫번째 방법은 해당 소스코드를 수정한 후, build 해서 binary를 생성한 후 기존 실행파일을 덮어 쓰는 방법 입니다.
코드 수정 후, 소스 root로 이동 후,

cargo build --release --locked

해서 빌드를 한 후, yazi/target/release 폴더로 들어가면, yazi 와 ya 가 있습니다. 이 둘을 기존의 실행파일 위치에 덮어써 주면 됩니다.

결과는 다음과 같습니다.

횔씬 깔끔해 보이지요..

하지만 코드를 수정하고 빌드하려면 rust와 cargo를 설치해야 하지요.. 귀찮기도 하고.. 이럴때는 해당 코드가 lua라는 잇점을 이용하는 것입니다. 즉, 코드를 실행 시 갱신하는 것으로,

yazi의 설정파일이 위치한 ~/.config/yazi 에 init.lua 파일을 만들고 수정된 코드를 넣어 주는 방법 입니다.

~/.config/yazi/에 init.lua 파일을 만들고 아래의 코드를 넣어 줍니다. (yazi - 0.4.3 이상 기준)

function Entity:icon()
  local icon = self._file:icon()
  if not icon then
    return ""
  elseif self._file:is_hovered() then
    return icon.text .. "  "
  else
    return ui.Line(icon.text .. "  "):style(icon.style)
  end
end

이렇게 하면 yazi를 실행할 때, init.lua를 호출하게 되고, Entity:icon()  함수를 해당 코드로 대치하게 됩니다.  따라서, 기존의 yazi를 실행해도 icon과 text 사이에 공란이 추가되어 좀 더 떨어져 표시가 될 것입니다.

공유하기 링크
Comments