#tui #directory #browser #school #magic #bus #cross-platform

app magic-school-bus

Cross-platform TUI filesystem browser with Vi-like keybinds

9 releases (breaking)

0.7.0 Mar 1, 2019
0.6.0 Dec 10, 2018
0.5.0 Nov 11, 2018
0.4.0 Nov 8, 2018
0.1.0 Nov 7, 2018

#1159 in Filesystem

26 downloads per month

MIT license

405KB
1K SLoC

Magic School Bus

Current crates.io version

Seatbelts, everyone!

Magic School Bus is a terminal UI filesystem browser with Vi-inspired keybindings.

It's a work in progress, but runs on Windows, MacOS, and Linux!

Installation

Windows

Pre-built binaries are available on the GitHub Releases page.

Other Platforms and Rust Developers

Magic School Bus needs Rust 1.31 or newer to build.

If you already have Rust installed, you can grab Magic School Bus with:

cargo install magic-school-bus

# To upgrade, add --force to overwrite your current installation
cargo install --force magic-school-bus

Usage

To start up Magic School Bus, just run:

# Start in the current directory
msb

# You can also pass a directory to start in
msb ../some-directory

This will start you on an educational adventure in your current directory:

Example of Magic School Bus

For detailed information on all options and flags, run:

msb --help

Actions

Actions marked with '(repeatable)' can be prefixed by a number, which will repeat the command N times.

  • q: Exit
  • j or <down arrow>: Move down in the list (repeatable)
  • k or <up arrow>: Move up in the list (repeatable)
  • g: Move to the top of the list
  • G: Move to the bottom of the list
  • <return>: Activate an item in the list
    • If the item is a folder, it'll become the focus
    • If the item is a file, it will be opened according to your operating system preferences
  • f: Find an entry starting with the given input
    • Use <tab> to cycle between options matching the current input
    • Use <return> or <escape> to exit find mode
  • ;: Jump to the next entry matching the most recent find command (repeatable)
  • ,: Jump to the previous entry matching the most recent find command (repeatable)
  • n: Create a new file, prompted for the name
    • Use <escape> to cancel
  • N: Create a new directory, prompted for the name
    • Use <escape> to cancel
  • x: Prompt to delete the selected entry
    • Press y to confirm or <escape> to cancel
  • r: Refresh the directory list, useful for when an outside program modifies the directory

Changing shell working directory on exit

Magic School Bus has a special mode intended to help move your shell to the location you navigated to when you exit!

Passing --pwd will cause the last working directory to be printed to stderr. You can set up an alias or function to capture stderr and cd to it if msb exited successfully!

The function I have configured in my .profile for Bash is:

function brw() {
	{ error=$(msb --pwd "$@" 2>&1 1>&$out); } {out}>&1

	if [ "$?" -eq 0 ]
	then
		cd "$error"
	fi
}

I can type brw anywhere to be dropped into a filesystem explorer, navigate around, and when I pop out, I'll be in the right spot!

License

This project is available under the MIT license. Details are available in LICENSE.txt.

Dependencies

~1.4–2MB
~27K SLoC