Terminal File Manager 'veld': Modern TUI with Out-of-the-Box Tiling

๐Ÿค– AI ์ถ”์ฒœ

ํ„ฐ๋ฏธ๋„ ํ™˜๊ฒฝ์—์„œ ํšจ์œจ์ ์ธ ํŒŒ์ผ ๊ด€๋ฆฌ๋ฅผ ์ถ”๊ตฌํ•˜๋Š” ๊ฐœ๋ฐœ์ž, ํŠนํžˆ ํ‚ค๋ณด๋“œ ์ค‘์‹ฌ ์›Œํฌํ”Œ๋กœ์šฐ์™€ ๋ถ„ํ•  ํ™”๋ฉด(tiling) ๊ธฐ๋Šฅ์„ ์„ ํ˜ธํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ 'veld'๋Š” ๋งค๋ ฅ์ ์ธ ๋Œ€์•ˆ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Python ๋ฐ Textual ํ”„๋ ˆ์ž„์›Œํฌ์— ์ต์ˆ™ํ•˜๊ฑฐ๋‚˜ ์ตœ์‹  TUI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ํ˜ธ๊ธฐ์‹ฌ์ด ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ์ƒˆ๋กœ์šด ๊ฒฝํ—˜์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”– ์ฃผ์š” ํ‚ค์›Œ๋“œ

Terminal File Manager 'veld': Modern TUI with Out-of-the-Box Tiling

ํ•ต์‹ฌ ๊ธฐ์ˆ 

veld๋Š” Python์˜ Textual ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋œ ํ˜„๋Œ€์ ์ธ ํ„ฐ๋ฏธ๋„ ๊ธฐ๋ฐ˜ ํŒŒ์ผ ๊ด€๋ฆฌ์ž(TUI)๋กœ, ๋ณ„๋„์˜ ๋ณต์žกํ•œ ์„ค์ • ์—†์ด ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ถ„ํ•  ํ™”๋ฉด(tiling) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

๊ธฐ์ˆ ์  ์„ธ๋ถ€์‚ฌํ•ญ

  • ๋ถ„ํ•  ํŒจ๋„ (Tiling Panels): o ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ ์ƒˆ ํŒจ๋„์„ ์—ด๊ณ  ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์ด๋“œ๋ฐ”์ด์‚ฌ์ด๋“œ ๋ทฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. w๋กœ ํŒจ๋„์„ ๋‹ซ๊ณ  Tab์œผ๋กœ ํŒจ๋„ ๊ฐ„ ์ด๋™์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ํ‚ค๋ณด๋“œ ์ค‘์‹ฌ ์›Œํฌํ”Œ๋กœ์šฐ: ๋งˆ์šฐ์Šค ์—†์ด ๋ชจ๋“  ํŒŒ์ผ ์ž‘์—…(๋ณต์‚ฌ c, ์ด๋™ m, ์ด๋ฆ„ ๋ณ€๊ฒฝ n, ์‚ญ์ œ r)์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์•„์นด์ด๋ธŒ/์••์ถ• ํ•ด์ œ: zip/tar ํŒŒ์ผ์„ ์ง์ ‘ ์•„์นด์ด๋ธŒ(a)ํ•˜๊ฑฐ๋‚˜ ์••์ถ• ํ•ด์ œ(x)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ์„ ํƒ: ์ŠคํŽ˜์ด์Šค๋ฐ”(spacebar)๋ฅผ ์ด์šฉํ•ด ํŒŒ์ผ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ„ํŽธํ•œ ์„ค์ •: config.toml ํŒŒ์ผ์„ ํ†ตํ•ด ํ‚ค ๋ฐ”์ธ๋”ฉ ๋“ฑ ์„ค์ •์„ ๋‹จ์ผ ๋ผ์ธ ํŽธ์ง‘์œผ๋กœ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์˜ˆ: quit = "q", add_panel = "o")
  • ๊ธฐ์ˆ  ์Šคํƒ: Python ๋ฐ Textual ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์ง€์› ๋ฐ ์‰ฌ์šด ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ์ž„ํŒฉํŠธ

  • ํ‚ค๋ณด๋“œ ์ค‘์‹ฌ์˜ ํšจ์œจ์ ์ธ ํŒŒ์ผ ๊ด€๋ฆฌ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  • ๋ณ„๋„์˜ ๋ณต์žกํ•œ ์Šคํฌ๋ฆฝํŠธ ์ž‘์„ฑ ์—†์ด ๋ถ„ํ•  ํ™”๋ฉด ๊ธฐ๋Šฅ์„ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ์‚ฌ์šฉ ํŽธ์˜์„ฑ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค.
  • Textual ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ˜„๋Œ€์ ์ด๊ณ  ๋ฐ˜์‘์„ฑ ์ข‹์€ TUI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์˜ ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ˜์‘

์ž‘์„ฑ์ž๋Š” ranger, nnn๊ณผ ๊ฐ™์€ ๊ธฐ์กด์˜ ํ›Œ๋ฅญํ•œ ํŒŒ์ผ ๊ด€๋ฆฌ์ž๋“ค์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉฐ, ์ด๋“ค์„ ๋Œ€์ฒดํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋‹ค๋ฅธ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”ผ๋“œ๋ฐฑ, ๊ธฐ๋Šฅ ์•„์ด๋””์–ด, ๋ฒ„๊ทธ ๋ฆฌํฌํŠธ๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™˜์˜ํ•˜๋ฉฐ GitHub๋ฅผ ํ†ตํ•ด ์˜คํ”ˆ ์†Œ์Šค(MIT ๋ผ์ด์„ ์Šค)๋กœ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Python 3.9+์™€ pip๋ฅผ ์š”๊ตฌํ•˜๋ฉฐ, GitHub์—์„œ ์ง์ ‘ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (pip install git+https://github.com/BranBushes/veld-fm). ์„ค์น˜ ํ›„ ํ„ฐ๋ฏธ๋„์—์„œ veld ๋˜๋Š” veld [๊ฒฝ๋กœ] ๋ช…๋ น์–ด๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ“š ๊ด€๋ จ ์ž๋ฃŒ