<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Angshu Roy</title>
    <description>The latest articles on DEV Community by Angshu Roy (@branbushes).</description>
    <link>https://dev.to/branbushes</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3300696%2F84610c8b-00bf-4d11-9a9b-b310d55b39a7.png</url>
      <title>DEV Community: Angshu Roy</title>
      <link>https://dev.to/branbushes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/branbushes"/>
    <language>en</language>
    <item>
      <title>[veld-fm] I Built a Terminal File Manager with Tiling Panels Because I'm Obsessed with Keyboard Shortcuts</title>
      <dc:creator>Angshu Roy</dc:creator>
      <pubDate>Fri, 27 Jun 2025 15:08:09 +0000</pubDate>
      <link>https://dev.to/branbushes/veld-fm-i-built-a-terminal-file-manager-with-tiling-panels-because-im-obsessed-with-keyboard-4o72</link>
      <guid>https://dev.to/branbushes/veld-fm-i-built-a-terminal-file-manager-with-tiling-panels-because-im-obsessed-with-keyboard-4o72</guid>
      <description>&lt;p&gt;Hey dev community! 👋&lt;/p&gt;

&lt;p&gt;Like a lot of you, I live in my terminal. It's fast, it's clean, and with the right tools, it’s the most productive environment on Earth. I'm a huge fan of keyboard-driven file managers like &lt;code&gt;ranger&lt;/code&gt; and &lt;code&gt;nnn&lt;/code&gt;—they feel like superpowers.&lt;/p&gt;

&lt;p&gt;But I always had this one little itch I couldn't scratch: I wanted true, out-of-the-box tiling panels. I love my tiling window manager, and I wanted that same side-by-side workflow for my files without having to write a complex script.&lt;/p&gt;

&lt;p&gt;So, I decided to build my own solution. I'm excited to introduce &lt;strong&gt;veld&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1yli7ky9bjdaj0hp9u1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1yli7ky9bjdaj0hp9u1.png" alt="A screenshot of the veld file manager in action." width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s a modern, terminal-based file manager built from the ground up with the incredible &lt;a href="https://github.com/Textualize/textual" rel="noopener noreferrer"&gt;Textual&lt;/a&gt; framework for Python.&lt;/p&gt;

&lt;h3&gt;
  
  
  So, What's the Big Deal?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;veld&lt;/code&gt; is my take on what a simple but powerful TUI file manager should be. The goal was to create something that’s easy to use, easy to configure, and makes you feel like a keyboard wizard.&lt;/p&gt;

&lt;p&gt;Here’s what you get:&lt;/p&gt;

&lt;p&gt;🗂️ &lt;strong&gt;First-Class Tiling Panels:&lt;/strong&gt; This is the core feature. Press &lt;code&gt;o&lt;/code&gt; to open a new panel, give it a path, and boom—you have a side-by-side view. Close the active panel with &lt;code&gt;w&lt;/code&gt;. Navigate between them with &lt;code&gt;Tab&lt;/code&gt;. It just works.&lt;/p&gt;

&lt;p&gt;⌨️ &lt;strong&gt;A Keyboard-First Workflow:&lt;/strong&gt; No mouse needed. All the essential file operations are at your fingertips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Copy (&lt;code&gt;c&lt;/code&gt;), Move (&lt;code&gt;m&lt;/code&gt;), Rename (&lt;code&gt;n&lt;/code&gt;), Delete (&lt;code&gt;r&lt;/code&gt;)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Archive (&lt;code&gt;a&lt;/code&gt;)&lt;/strong&gt; and &lt;strong&gt;Extract (&lt;code&gt;x&lt;/code&gt;)&lt;/strong&gt; zip/tar files directly.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Select&lt;/strong&gt; files with &lt;code&gt;spacebar&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🎨 &lt;strong&gt;Super Simple Configuration:&lt;/strong&gt; I didn’t want to mess with complex scripting languages just to change a keybinding. &lt;code&gt;veld&lt;/code&gt; creates a simple &lt;code&gt;config.toml&lt;/code&gt; file for you on its first run. Want to change a key? Just edit a single line.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight toml"&gt;&lt;code&gt;&lt;span class="c"&gt;# Your config is at ~/.config/veld-fm/config.toml&lt;/span&gt;
&lt;span class="nn"&gt;[keybindings]&lt;/span&gt;
&lt;span class="py"&gt;quit&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"q"&lt;/span&gt;
&lt;span class="py"&gt;add_panel&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"o"&lt;/span&gt; 
&lt;span class="py"&gt;close_panel&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"w"&lt;/span&gt; 
&lt;span class="c"&gt;# ...and so on&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✨ &lt;strong&gt;Built with Modern Tech:&lt;/strong&gt; Textual makes building TUIs in Python an absolute joy. It’s responsive, looks great, and makes features like path autocompletion easy to implement. Plus, since it’s all Python, it’s cross-platform and easy for anyone to hack on.&lt;/p&gt;

&lt;h3&gt;
  
  
  Target Audience
&lt;/h3&gt;

&lt;p&gt;This project is for people who:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Love tiling&lt;/strong&gt;, but want it to work instantly without extra setup.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Prefer a simple config file&lt;/strong&gt; over writing shell scripts.&lt;/li&gt;
&lt;li&gt;  Are curious about what’s possible with &lt;strong&gt;modern TUI libraries like Textual&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;  Just want to try something &lt;strong&gt;new and fun&lt;/strong&gt;!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Comparison
&lt;/h3&gt;

&lt;p&gt;I want to be clear: similar tools like range those tools are incredible, and &lt;code&gt;veld&lt;/code&gt; stands on the shoulders of giants. This project isn’t trying to replace them, but to offer a different flavor for people who:&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Give It a Spin!
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;veld&lt;/code&gt; is open-source (MIT license), and I would be absolutely thrilled if you checked it out. The best projects are built with community feedback, so I'm hungry for your thoughts, feature ideas, and bug reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can find the project on GitHub:&lt;/strong&gt;&lt;br&gt;
➡️ &lt;strong&gt;&lt;a href="https://github.com/BranBushes/veld-fm" rel="noopener noreferrer"&gt;https://github.com/BranBushes/veld-fm&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Installation
&lt;/h4&gt;

&lt;p&gt;You'll need Python 3.9+ and &lt;code&gt;pip&lt;/code&gt;. You can install the latest version directly from GitHub:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;git+https://github.com/BranBushes/veld-fm.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;(You can also use &lt;code&gt;uv pip install ...&lt;/code&gt; if you're on the &lt;code&gt;uv&lt;/code&gt; train!)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This will install the &lt;code&gt;veld&lt;/code&gt; command on your system. Just run it from your terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Start in your home directory&lt;/span&gt;
veld

&lt;span class="c"&gt;# Or start in a specific directory&lt;/span&gt;
veld ~/Projects
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  What's Next?
&lt;/h3&gt;

&lt;p&gt;I have a few ideas, like adding file previews and improving performance, but I'm most excited to hear what the community wants. What's a must-have feature for you in a file manager? Have you found a bug I missed?&lt;/p&gt;

&lt;p&gt;Let me know in the comments below or open an issue on GitHub. Thanks for reading, and happy hacking!&lt;/p&gt;

</description>
      <category>python</category>
      <category>terminal</category>
      <category>linux</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
