Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
95 lines (69 sloc) 4.99 KB
title tags mode header article_header
Marta - The MacOS Finder for developers
MacOS
Tools
immersive
theme
dark
type theme background_color background_image
overlay
dark
#203028
gradient src
linear-gradient(135deg, rgba(34, 139, 87 , .4), rgba(139, 34, 139, .4))
assets/images/2020-01-14-marta/cover.jpg

Ever since I've fully switched from Windows to MacOS for my daily development, I was looking for a good Finder replacement. On Windows I was just using Windows Explorer, which wasn't great, but good enough. On MacOS however, the native Finder application is far beyond being developer friendly. It might be that I've missed to change some secret setting, but some of the pain points I had (back then) were:

  • Copying paths from directories or files
  • Navigating to paths from the clipboard
  • No dual mode
  • No tab support
  • Directories and files are mixed in order

I tried several alternatives, like TotalFinder, muCommander, PathFinder, or ForkLift. They all look quite polished, but very often I missed some ways of configuration, or it was too overloaded or too mouse-driven. Until today, I went with TotalFinder, as it was the tool that came closest to my requirements.

Meet Marta

At some point, Marta popped up in my Twitter timeline. I don't remember who posted it. It might have been a colleague. Marta comes with dual mode (similar to FarManager), an integrated terminal, tab support, customizable columns, and DirStat (similar to WinDirStat):

Marta overview{:width="650px" .shadow}

Surprising background

My first and foremost thought about Marta was: Wow! This feels a bit like working in JetBrains Rider / IntelliJ IDEA. That was mostly because of the way how you search and select file items. Just type a search term, which will be shown in the bottom right, and then navigate with arrow keys through the results:

Searching and selecting{:width="650px" .shadow}

Another reason is the Lookup search, which pops up in the upper middle of the application and allows to search for just anything:

Lookup search{:width="650px" .shadow}

I was even recommending Marta to a colleague of mine, with whom I occasionally share tool recommendations. Then, another week later, while I was looking for the public repository to raise an issue, I found a few information about the author:

Searching in popups{:width="550px" .shadow}

Okay, this is crazy! 🤯 My initial thought was not too bad. Yan is working in the Kotlin team. The (developer) world is kinda small. 😅

More Configuration

If you know JetBrains IDEs, you also know how customizable they are. Marta is actually similar in that regards. So my first act was to align all shortcuts with the ones I'm using in Rider. Again, the functionality feels very familiar:

|---------+-------------| | Action | Explanation | |:--------|:------------| | core.lookup | Similar to Search Everywhere navigation but with additional prefixes | | core.actions | Similar to Navigate to action | | core.favorites | Similar to the Favorites window whereas entries can be modified via Edit favorites action | | core.toggle.terminal | Similar to the Terminal Emulator, which will automatically show/hide depending on the active pane | | core.rename | Similar to the rename refactoring |

Of course, there are much more options. Like file-system specific actions, or the existential Dark theme. My configuration looks like this:

{% highlight groovy linenos %} behavior { theme "Dark" }

environment { terminal "iTerm" textEditor "Visual Studio Code" }

keyBindings { "Shift+Cmd+A" { id "core.actions" } "Cmd+Shift+T" { id "core.lookup" }

"Cmd+1" { id "core.favorites" }
"Cmd+E" { id "core.recent.directories" }
"Cmd+3" { id "core.toggle.terminal" }
"Cmd+Shift+3" { id "core.open.terminal.here" }
"Cmd+4" { id "core.open.editor.here" }

"Cmd+Alt+N" { id "core.new.directory" }
"Cmd+Shift+N" { id "core.new.file" }

"Cmd+R" { id "core.rename" }

"Return" { id "core.open" }
"Cmd+Return" { id "core.edit" }

} {% endhighlight %}

Yan, thank you so much for completing my MacOS developer experience! 👏

You can’t perform that action at this time.