A fast and intuitive alternative to the unix "cd" command.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.idea
src/main
.gitignore
LICENSE
README.md
pom.xml
scd
scd_function.sh
scd_function_minified.sh

README.md

SpeedCD

A fast and intuitive alternative to the UNIX "cd" command

About

SpeedCD is a CLI program that allows you to navigate any filesystem at the speed of light! SpeedCD is not a file manager, it will not open/manipulate files. Check out a demo here (ignore the flickering, it's because of the recording software): asciicast The usage of SpeedCD starts at: 0:27

Usage

SpeedCD is designed to be as intuitive as possible so instructions are not really necessary (but here is one anyways):

Press: + to add a column (SpeedCD defaults to 3 columns on startup)
Press: - to remove a column
Press: Backspace to go up the directory tree
Press: Enter to enter a directory
Press: CTRL+r to refresh the view (if files have been added/removed from the directory)
Press: CTRL+h to hide/show hidden files
Press: CTRL+f to hide/show files
Use the arrow keys to move the cursor.
Type anything to search for files in the current directory.
Press: ESC to open a shell in the current directory (if you have a search running, this will cancel the search).

Configuration

Configuration settings are available by passing in command-line arguments:

  • --shell=: Specify the shell to be opened when ESC is pressed. Example: --shell=zsh
  • --pathFile=: Specify a file to write the resulting path to when ESC is pressed. Overrides --shell= Example: --pathFile=/tmp/speedcd.123456.tmp
  • --clearSearchOnDirectorySwitch: true or false, specifies whether or not to clear the current search (if any) when you move into a new directory. Defaults to true.
  • --caseSensitiveSearch: true or false, specifies whether or not searching is case sensitive.

Installation

  1. Download and install the Java 7 runtime.
  2. Download a binary from the releases section.
  3. Create an alias to the jar file by adding APTB="---> REPLACE ME <---";scd() { t=$(mktemp /tmp/speedcd.XXXXXX);java -jar "$APTB" "--pathFile=$t";s=$(cat "$t");cd "$s";rm "$t";} to the end of your ~/.bashrc file (replace ---> REPLACE ME <--- with the path to the SpeedCD binary).
  4. Restart your terminal/shell.
  5. You are ready to go!

Libraries Used

The only library used is lanterna.