Fork me on GitHub

JumpFm

A file manager that lets you jump

JumpFm
Download

About

JumpFm is a minimalistic dual panel file manager for Linux that lets you navigate your file system very efficiently. It is highly configurable and extendible and it comes with some builtin super-powers.

Jumping

Jumping

Press j to jump directly to your favorites folders. No manual bookmarking is needed, JumpFm will learn where you want to go.

Git Awareness

Git Awareness

Files are displayed according to thier git status.

plugins

Plugins

Powerful plugin system based on NPM.

Jumping

Filtering

Press f to quickly find the files you are looking for.

Flat Mode

Flat Mode

Press r and all directories are gone. Press it again to bring them back.

Gist

Instant Gist

Press ctrl + g to create instant gist from selected files.

Before You Jump

Instant gists are public !!! don't gist your private ssh key or any other private information.

There are no confirmation dialogs in JumpFm, whenever you hit the DEL key a file is gone.

Key Bindings

The default keybindings can be configured by editing tde keybinding file. Not all keybindings are available in filter mode.

Default Bindings

Navigation
j Open the jump dialog
down / [ Down
page down / ctrl + [ Page down
up / ] Up
shift + up up and select
page up page up
shift + page up page up and select
home go to start
end go to end
enter enter folder / open file
backspace up the directory tree
ctrl + home go to home directory
ctrl + right open directory in right panel
ctrl + left open directory in left panel
alt + left go to previous directory
alt + right go to next directory

* Holding the shift key while navigating also triggers file selection.

Selection
space Toggle selection
ctrl + a Select all
esc Clear selection
File Operations
del Delete selected files
F4 Edit file
Shift + F4 New File
F7 New Folder
F2 Rename File
z Zip selected files
u Unzip current file
P Copy full path of active panel
p Copy full path of current file to clipboard
F5 Copy selected files
F6 Move selected files
Panels
tab Switch panel
s Swap panels
Filters
f Enter filter mode
l Use selected files extension as a filter
h Toggle hidden mode
r Toggle flat mode
Miscellaneous
ctrl + g Create a public gist from selected files
ctrl + = Increase font size
ctrl + - Decrease font size
ctrl + 0 Reset font size

Settings

All settings files are located under the ~/.jumpfm directory. You can edit the settings files to make JumpFm your own. You can also safely delete the settings folder and restart JumpFm to restore the default settings.

Default Settings:

Key Default Value Description
timeFormat HH:mm:ss Set the time format (e.g. for the clock plugin)
dateFormat MM/DD/YYYY Set the date format (e.g. for the clock plugin)
flatModeMaxSize 200 Set the maximum number of files the flat mode can display
historyMaxSize 20 Set the maximum history stack size
jumpMaxDbSize 300 Set the maximum number of folders that JumpFm index for fast jumping
jumpDbSaveInterval 5 Controls how often JumpFm update the jumps database
weatherLocation Haifa, IL Default weather location
editor gedit Default editor to edit files

Plugins

Plugins control every aspect of JumpFm. You can enable/disable them, install new once and also write your own. They are located under ~/.jumpfm/plugins and are managed with npm/yarn.

Builtin plugins:

Plugin Enabled Description Safely Disable
jumpfm-version true Displays the current version of JumpFm. yes
jumpfm-clock true Displays the date and time. yes
jumpfm-weather true Displays local (need to set the weatherLocation value) weather yes
jumpfm-fs true List the files in the directory. no
jumpfm-key-nav true Enable keyboard shortcuts. no
jumpfm-file-ops true Enable file operations such as renaming, editing, etc... no
jumpfm-copy true Enable file copying. no
jumpfm-jump true Enable directory jumping. yes (but why?)
jumpfm-history true Enable history navigation. yes (but why?)
jumpfm-flat-mode true Enable flat mode. yes
jumpfm-zip true Enable zipping and unzipping files. yes
jumpfm-git-status true Enable git status awareness. Might cause some performance degradation when browsing large git repositories. yes
jumpfm-gist true Allow sharing files via public gists. If you decide to enable this plugin make sure you know what public means. yes

Feature Request

Please feel free to open an issue.

<plugins/>

Want to write your own plugin ? great, it is as easy as writing an npm package. Here is the source code of the jumpfm-clock plugin and here is the full API.


import { JumpFm } from 'jumpfm-api'

import * as moment from 'moment'

export const load = (jumpFm: JumpFm) => {
    const update = () => {
        const m = moment(Date.now())
        jumpFm.statusBar.info('clock', {
            txt: m.format(
                jumpFm.settings.getStr('timeFormat', 'HH:mm:ss')
            ),
            dataTitle: m.format(
                jumpFm.settings.getStr('dateFormat', 'MM/DD/YYYY ')
            ),
        })
    }

    update()
    setInterval(update, 1000)
}