TheJare / jm

A simple, cross-platform terminal-based file manager written in Go
Apache License 2.0
4 stars 1 forks source link

JM 1.1.1

A simple, cross-platform terminal-based file manager written in Go.

Screencap

Usage

jm [left path] [right path] [flags]

Flags
  -c, --config string   config file (default "$HOME/.jm")
  -l, --log             verbose log (to "$HOME/.jm-log" file)
  -V, --version         print version

The configuration file contains the state of your last session. It is read on startup and saved when you quit.

If the paths are not given in the command line and the configuration file does not exist, jm defaults to your current and $HOME folders.

DISCLAIMER: USE JM AT YOUR OWN RISK. None of the authors or contributors can be held responsible for any losses or damages connected to your use of this program. We have done our best to ensure correct, predictable and safe operation, but can't offer any guarantees that it will do so for you.

The latest version of jm can usually be found at https://github.com/TheJare/jm

Docs

The interface displays two side by side panels, each with the contents of a directory. You can toggle between panels with the TAB key. Exit with the q or ESC keys.

Navigation

File operations

Operations targeting the root folder are aborted for safety reasons.

Misc

Notes

The shell invoked from jm should be considered unstable and used sparingly, due to technical reasons in the Go runtime. For example, I have found that Ctrl-C inside this shell is likely to kill jm and leave both the parent and child shells running simultaneously. There are likely other strange states lurking that I haven't caught yet.

File operations involving hidden, readonly or otherwise protected files may have corner cases I have not caught. Use with care.

jm works fine under normal conditions in Windows, Linux and OSX, using the default terminals as well as inside iTerm2, ConEmu, Putty, terminator, tmux, screen and even Visual Studio Code's embedded terminal.

jm is currently known to NOT run properly on at least the following environments:

Technical

jm is written in Go and runs on Windows, Linux and OSX. Besides the go standard library, it uses a number of wonderful packages written by others:

I wrote jm to practice programming in Go, and to have a simple, portable and easy to build terminal file manager. It is clearly inspired by the likes of unix-focused Midnight Commander and vifm, but more adequate for my personal taste and use cases.

All the code was written and debugged using the delightful Visual Studio Code editor and lukehoban's vscode-go extension.

Future

License

Copyright 2017 Javier Arevalo jare@iguanademos.com

jm is released under the Apache 2.0 license. See LICENSE.txt